Did programming go through the "PC revolution" too...
# thinking-together
i
Did programming go through the "PC revolution" too? Because to me, programming pre-PC, during PC, and now post-PC (tablet, etc) seems to have changed far less than hardware and other software, especially with respect to the qualitative nature of the changes the PC revolution brought about. Change my mind? Anyone else ever talk about this with this lens?
šŸ¤” 1
t
When I started programming, my code was running on a pc with only ram and no hard drives, it loaded os from 5.25'’ floppy disks (attached). The current code of mine runs in CloudFlare servers which, I think, are also all in ram mostly. The only difference is that my code was running locally, and now it’s distributed worldwide. Well, this was an attempt to hilariously say that there was little revolution. Whilst in reality, heck, it changed gazzilion times! Back then 25 ago I was coding with PolyPascal on monochromic monitor, writting loops and if conditions. Now my screen shows VSCode in almost nearly-monochromic color scheme, am still writting ifs and loops mostly:). Really - not much has changed. So - agree 100%.
😁 1
šŸ° 1
i
(I think I'm not the only one here who still uses floppy disks, though not the five-and-a-quarter ones thank goodness. My trusty Mac SE says hi crunch crunch.)
šŸ™‚ 2
e
@Ivan Reese I want to figure out how to hack my MNT Reform so it has a floppy drive in it
t
@Eric Gade - just googled what
MNT Reform
is, watched the intro video. You have it already? What are experiences? thanks for sharing!
m
"the mobile revolution hasn't happened yet?" šŸ˜‰
ā˜ļø 1
at least the creative part of it
e
@Tomas Čerkasas The Reform is a great device. I have already modded the keyboard a bit and I'm not really a "hardware" person. It's got a great keyboard and the trackball kicks ass. The SOC on it is admittedly on the slower side, but that only encourages a kind of "slow computing"
šŸ‘ 1
I can't use it for heavy day to day web dev work, but pretty much everything else that matters to me runs fine. In short, I really like it!
šŸ‘ 1
a
Yep, programming goes through these revolutions. Each one rolls us back to C/C++, because the new shiny device is so slooowww! šŸ˜„ No I mean it. By the end of Mainframes and Workstations era they developed very advanced high-level languages and developing environments. PCs threw all of that out of a window because everything had to be done from scratch in Assembly! How many bytes of RAM 8086 had? By the time we came to decent languages and IDEs on PCs, Apple revolutionized the platform with iPhone which had to be programmed in what? You guessed that, Objective-C with totally manual memory management! It took them almost two decades to transition to a decent high-level and safe Swift language. And now IoT revolution is coming. Guess what it means for programming languages? šŸ˜‰
šŸ‘€ 1
n
That’s a really great way to think of it! And wasn’t C originally developed for a device considered resource-constrained at the time (the actual ā€œeunuchā€ of UNIX), which is why we keep returning to it in subsequent evolutionary cycles?
e
@Ivan Reese Part of the answer might reside in the fact that we generally program for hardware systems that no longer actually exist. That point was an important part of this talk:

https://www.youtube.com/watch?v=36myc8wQhLoā–¾

šŸ¤” 1
I'm not sure hardware resources are "constrained" so much as the hardware makers feel the need to constantly improve performance by "faking" an architecture that is amenable to the Unix/C worldview. It's another way that the monoculture limits what we can actually do
a
@n1ckfg yep, compared to mainframes PDP-11 (or was it PDP-9 even?) was very resource-constrained. But the main constraint was the lack of everything but an assembler, that's why Kernighan and Ritchie had to do everything from scratch: a programming language, an OS kernel, a FS, a text editor and so on, and so forth. The C language was or become a "portable Assembly language" and when you have one you don't need another one, that's why we always go back to C (when we can avoid "naked" Assembly language).
šŸ’” 1
m
The distance between using the machine and programming the machine seems to be constantly growing. • In the 80's, computers such as the Apple IIe dump you directly into a programming environment. You can start typing programs and run them immediately. (10 PRINT "HELLO") • Unix/Linux - the compiler is generally included. Creating a simple program involves a writing a text file and a compile step. • Windows/Macs - you have to install additional software to program them. Managing GUI interactions is a bit harder than just "main" • Tablets/phones - you need a separate computer plus install additional software to program them. And there's no longer a single entry point to the program - there are multiple entry points defined by the app lifecycle.
āž• 6
a
@Mark Dewing technically in a Unix/Linux Shell you still "typing programs and running them immediately". šŸ™‚
On the other hand "The distance between using the machine and programming the machine seems to be constantly growing" is a good thing at least as long as "programming" is "typing the source code of a program into a file and then running it somehow". For instance, I don't want to "program" in this way even when I build an ML pipeline, I like to do that visually in Orange. šŸ™‚
k