Bring back the ease of 80s and 90s personal computing
medium.com
medium.com
We seem to have two very different experiences of past technology.
One last thing. I installed Elementary OS on an old computer recently, and every app opened instantly. As in, I clicked it, and it was just there. No perceptible delay. I’m not entirely sure how they do it, but it seems they’re close to the goal in that department.
I had Windows reset itself in the middle of a long-running calculation overnight, because obviously 100% CPU usage and programs that refuse to quit is a signal it’s safe to power cycle the computer.
I routinely have to fight my devices to do what I say, because they re-interpreted valid words into other ones.
I think modern tech reliability is as overstated as historic rosiness — this turd is polished, but it’s not more functional.
But Windows NT was much more stable as a server.
Another situation is that I'm running virtual machines on a Windows 10 host. I want those machines to be available continuously, and I want any system reboots to be planned and manually executed. Windows 10 has taken that control away.
Windows 10 restarting itself on its own whims is a regular occurrence. It's completely and utterly unacceptable. Even if you change all the settings to prevent it, it still occurs.
I'd much prefer the MacOS or Linux approach which is to notify you but still requires you to action it. Nag me all you like. But always leave the "reboot" step under my control to explicitly sanction. Then I can ensure it happens at my convenience and that it doesn't interrupt any business-critical work in process.
I suspect some kind of DRM or video codec is freezing the whole machine when it crashes.
Windows 7 was great.
I guess not working at all is simple, but I would say the quality and reliability increase has been wonderful.
It also sounds a lot like my experience with much of my Android setup that includes games I've let my kids install.
Wow, what OS do you run?
The crazy part is that the webcam driver I used on the MacBook was reverse engineered and never actually reached "stability" or got added to the kernel. I just compiled it and packaged it with DKMS and then forgot all about it.
I haven't reinstalled Windows since I got Windows 10 when it was released.
Seeing my family try and throw bargain bin components at a computer is a painful experience. Worse, as now things are likely to be malware vectors.
And heaven help you if you are trying to get by with a cheap computer. At least a raspberry pi is just slow, similar ideas with windows leave me baffled at how bad it is.
Or the fact that 80% of what you do nowadays is Google, Facebook, Apple, or Amazon.
Wings of Fire, Spirit Animals, and Pokemon? Now you are talking.
That said, I would still count this as having nice things. When we got rid of our ancient printer and bought a current one, it does work more often. Ironically, better from Linux, as I don't have to install drivers; because of course it came with a windows disk that has installed some crap on that computer.
So, try this with what you could find at Goodwill some day. Or work with a budget where you stay trying to get refills to work.
I remember cables with screws (which didn't actually need to be screwed, really.) They were quite easy to use; not any harder than configuring WiFi is, and much more reliable. Less convenient as far as choosing locations, though.
> And installing drivers which then crashed or hung your computer?
I've been using PCs since before OS-level printer drivers were a thing and through the whole era where they were, and I've never had problems with printer drivers on PC (well, outside of mismanagement by IT on work computers.) I've had problems with drivers on Linux, and with printer support apps (effectively drivers) on Android on personal devices, though.
When I watch the 8-bit guy, I see him turn on a computer from 1984 and while it sometimes fails for hardware related issues due to age and use, when it works it frequently just starts up in a few seconds, right into a basic prompt.
Meanwhile my laptop will sometimes get stuck displaying the boot logo when I start it with the button on the dock, sometimes it will refuse to see the external screen.
Not to mention there’s no way to hook these computers to the internet which is what most people want to use.
There’s a lot to improve on modern computers but comparing them to a c64 is just ridiculous.
I am fully aware that modern computers are supposed to be easier to use for the average person and they are certainly easier to _start_ to use, but having spent time teaching my grandparents to use their computer I am honestly not sure they wouldn't benefit from a simpler text based interface with less bullshit, random confusing crap that appears to change (live tiles in win10 is a specially annoying example) programs that ask/demand to be updated) and so on.
Of course they would have to learn to use it, and it would somehow have to access their garden websites, but it is not ridiculous. Not if you are a very new computer user and not if you are a very advanced computer user.
Anyway my childhood computer was a win98 computer, so I don't approach this from a nostalgic perspective but from the point of view that a modern computer should be better in all cases than an old machine.
Why don't you tell us why it should?
On an SSD it boots in <1min which is a feat considering how much functionality is just there on boot, unlike a C64 which literally does nothing on boot except show a BASIC prompt.
A modern computer can boot into UEFI shell in seconds which is comparable to what a C64 boots to... but why would I do that?
Even if you get your OS to a bare minimum like a bare Arch Linux install it takes a while to load for a reason.
We trade off some boot time for a lot of functionality and smooth experience once the initial RAM has been set up with the needed data structures for normal operation.
https://youtube.com/watch?v=r2gro6XUJVk
When my dad's new job meant we needed a PC instead, we all grumbled that Windows 95 took longer to load.
From pressing enter on grub to desktop is ~6 seconds on a cold boot.
It was noticeably faster than booting from even a sata ssd.
Was pleasantly surprised.
Because each core is 4 orders of magnitude faster and it has multiple cores?
Then you have to open a book, to see how to load data from a tape.
Windows 95(?) solved this issue by implementing autorun (insert cd, wait, window pops up, "install"/"play", click the one you want, and you're done).
But you could also say the same for Windows 95 though, after you inserted the CD and had the window open then what? You still had to read a manual or whatever to figure out how the application worked.
Or even Windows 95 itself. Which isn't something that modern PCs have solved either - people who haven't used computers before to this day treat them as (black) magic boxes that they might break if they do something slightly odd because of how complex things are. And a modern Windows 10 computer has a ton more stuff on screen than a Windows 95 computer ever had.
Or you are talking about two different aspects. Older systems were more fragile, sure, but that doesn't have much to do with their usability. You can have a simpler UX on a strong foundation.
I didn't grew up with classic Mac (so no rosy glasses here) but the few times i used it (mainly via emulation, though i did use one real 'pizza box' Macintosh at the past) i really liked how downright simple the system is. This is a sentiment that was also echoed by my aunt who used classic Mac both at work and home back in the day and switched to Mac OS X at some point - decades later she still says that the classic Mac was much simpler and easier to use (she said that it was so approachable that one of her coworkers was actually referring to it as if it was some pet :-P). Note that when she started using computers she was already a full grown adult, so she hasn't associated classic Mac with her childhood or anything like that that people sometimes like to claim as reason for liking simpler stuff (which, i'll admit that it is partially true, but that only holds up for when you haven't used the stuff you claim to be simple any time recently and with modern tech and emulators this is really easy to confirm).
Also hardware is still sucky at times - my RX 5700 XT powered PC was randomly hanging and crashing all the time until AMD managed to stabilize things a bit a few months after the GPU's release. I still do not update regularly the drivers and keep an archive with the older drivers that worked around just in case something breaks because i do not trust the newer drivers to work without issues. Similarly on another system with a 2400G APU i installed Linux which would randomly lock up at startup - that was a brand new system BTW, it was just a system i bought with the cheapest components i could find.
You could name your files whatever you wanted, as one should, no magical dot 3 letters extension at the end required.
There was a one to one relationship between a folder and a window and the files within it. One folder had always one window showing its contents which where always arranged in the way you set up. The arrangement was even preserved if you copied it to another drive.
I could go on and on. Memory management, process isolation and multitasking were deeply flawed and bolted on, but the rest of the experience was incredibly simple and cohesive and hasn’t been matched since.
(not attcking you, the fact that it is a hidden setting probably proves your point. just find it interesting that this stuff is around still)
The internet has provided us a way to handle much more complex issues in much less time just by offering immediate access to shared knowledge. That alone makes things much easier these days than back then.
But I feel it makes us dumber as well in a sense. Before the internet you couldn't start a major project without knowing all about it before you started. Now often we will just start, and google any problems on the way, often realising only later on that the initial approach was poorly chosen.
Can you have that ready by tomorrow, they asked after lunch...
I seem to remember that they intended to simulate WAN links.
Classic MacOS had no memory protection, memory management itself was terrible and not particularly dynamic (reserve N bytes for this app etc.), and the multitasking in System 7 was bolted on in an awkward way, and the migration from 68k to PowerPC introduced a boatload of bugs.
The screenshots on the article's page shows System 7.5. Those were the dark ages for the Macintosh frankly. The _concept_ was "it just works" and "computer for the rest of us" but that was the reality only if you stayed on a fairly narrow path, frankly.
System 8 was a major improvement.
It was kind of like "git bisect" before that was a thing.
This craziness is no longer necessary.
I mean... when you DID get like 20 extensions all running together stably though, it was AWESOME.
Maybe the fact that it was slower, less connected, less parts overall too and that you had to get into it.
I mean I'm a dev with experience but I have near zero control over my smartphone. There's tons of nice stuff on it (hardware and software) but it doesn't feel much nicer because I actually have no clue about what happens now what I can do.
Most people, they want it to just work (tm).
We're complex animals we like feeling stuff. For instance I've heard people miss playing LPs. You have to fiddle with it, setup the player, take time to install the disc, the arm.. etc It's 100x more complicated than an ipod .. yet people miss it. Ease of use is not all.
Now we're basically all cargo culting. Every few hours one of my USB devices reconnects itself and I'm genuinely not sure whether it's because of a firmware bug in my docking station or what.
Also, macOS still has a nice GUI to set startup disk, and most of the other features he shows old macOS having.
And the rest of this multi-OS pipe-dream, who wants any of this?
I tried to explain to my wife what "Linux" was but had to explain what "Operating System" is first, and I don't think I ever made much of an inroad on either. It's just not interesting or relevant to her life at all. My in-laws, foggedaboutit.
This is the key point I think a lot of tech people don't get. My dad's smart. He worked in pharma for many years and knows tons about a lot of the science (and business) related to that.
He just never had any interest in learning about things like file systems and so forth. A tablet for him was my best gift to myself ever. (And he now just uses a large smartphone. He doesn't use the vast majority of its capabilities because he's just not interested in them; he uses what's of interest to him.)
Most people (especially today in 2020) don't know what a file is. And that's okay, or great even. A filesystem is a leap yet beyond that.
Apple takes great pains to hide the filesystem from the user in iOS. And that was probably a really, really good move. They have the freedom to change how the internals of devices use files and may have gotten some security benefit as well.
Mobile computing provided a great opportunity to enable some cool tech that breaks backwards compatibility. Like signed bootloaders, indexed-database-as-filesystem, permissions/capabilities. All of these were available on desktop OSs but haven't found a wide audience. Or hadn't, until much more recently. Sorry- bit of a tangent there.
Point being: way back when, in order to be productive with a computer you had to know more about its design. But today, many things "just work" without need to understand how/why.
That said, I was having trouble getting sound working on a Linux laptop one day, and it turned out to be because my user didn't belong to the "audio" group and so didn't have permission to play sound. I explained this to her, and she told me she understood why that would make sense, and why someone would want to design a system to work that way, even though it is not a system she, personally, would use.
Aaaand this is why she is my girlfriend. :)
Not to take away from your wife, I'm sure she's lovely. I'm just glad to be with someone who's both smart and empathetic enough to understand why I do what I do, and why I like the weird computer shit I like. (My girlfriend on the Amiga 500 I bought: "I like this. Why didn't this take over?")
"I used to be dismissive about tech issues; I started caring when I realized that tech is where the power struggles of this era will take place." -friend of mine
I love sharing this quote because it is so prescient. Sleep too long, and we may wake in chains.
If the enormous hypetrain behind Windows 95 did one thing, it was to make "operating system" a household term -- because in order to care about Windows 95, people had to care about operating systems.
People don't do it now because it's ridiculously difficult to do for limited utility.
- BSOD
- Running out of memory and trying to shift stuff to high mem.
- Software would come with 20 install floppies. Good luck if it failed on #18.
- Running out of ports for external devices.
- Plug 'n Play that didn't play.
- Modems over analog telephony.
There's a long list.
As for the fact that interfaces change - I noticed that it's an issue mostly with Windows&Linux. MacOS has a high consistency of interfaces across the apps - might be due to a HIG that Apple publishes?
We called it "Plug 'n Pray".
Computer Man.
- knowing right IRQs to have sound in a game
- editing autoexec.bat to get your cd drive to work
- hoping your game and your graphics card are compatible (as much as we can hate Microsoft, DirectX was a good thing they did)
- wanna chat with girls? First dialup modem, then knowing AT commands to disable "wait for dial tone", because somehow that didn't work in my country, installing an irc client, knowing the right server address and port to connect to, to be finaly able to send "asl?" to some random "_HornyGirl_" and getting back "13/f/cali"
...
I spent the good part of a week thinking my Smartlink 2400 was defective before I figured that one out...
"Can we make a friendly Libre Desktop operating system with focus on simplicity, minimalist elegance, and usability?"
I like that idea.
Having lived through the 80s and 90s personal computing era, I can say there was very little that was easy. Especially the 80s. Everything was also super expensive. Things crashed all the time, I can remember hitting Save and having a program crash and losing work. Because I saved, so I wouldn't lose work. It took so much work to do anything back then. I guess it's easy to forget how much everything sucked.
I don't disagree with the central idea here though. I do think something that focuses on simplicity, minimalist elegance, and usability is a nice idea. Though I can't imagine many people agree.
Everything about that is amazing
> I don't disagree with the central idea here though. I do think something that focuses on simplicity, minimalist elegance, and usability is a nice idea.
Indeed. I've been playing around with OpenBSD on a old ThinkPad I picked out of some recycling, and I think I'm getting there. I'm also looking at throwing Plan9 on a spare Raspberry Pi I have floating around and playing with that.
And pretty important back in the day, eventhough they didn't exist yet. Viri and malware, well still a thing, are nothing like they used to be.
The author mentions "Decoupling of the hardware from the OS and of the OS from the applications"
I've been fooling around with Raspberry Pis, and like the idea of bare metal programming. Unfortunately, it isn't so easy, because something like USB requires a software stack. How much better it would be if all the hardware was memory-mapped!
Then we wouldn't need an OS at all if we didn't want one.
So, I'm still waiting for Raspberry Pis to be what they should have been in the first place. Pi's seem to be going the wrong way simplicity-wise.
Maybe one day someone will come up with a RISC-V machine that satisfies this niche. Such a machine would be many many years away, though.
- boot from a read only, immutable OS on easily-replaceable media. (Ahem containers, nixOS) - applications should be encapsulated in a single object which can be executed from anywhere in your filesystem. (Flatpak, containers) - applications and the OS should be designed for offline by default. (Any user of EA games would back this idea) - only persist user settings across boots, ideally in an OS neutral format (containers) - expose less to zero UI configuration to the user (core design concept in Apple land, I gather) - single user no login by design (many linux distros, windows until recently...)
There are more but you should read TFA. These are not radical concepts, they're the norm in other contexts.
Yes and yes! That's actually exactly what I've been working on with Actually Portable Executable. https://justine.storage.googleapis.com/ape.html
> How could we simplify: Write a GUI bootloader
Nooo. There's the problem. GUIs have always been a shitshow w.r.t. compatibility. I've pretty much come to the conclusion at this point that, if we want simple, we have to give up on wanting it with GUIs. Vendors just aren't going to ever agree. There's too much vision and financial incentive to compete. However terminals, are boring, and operating systems no longer have any reason to engineer incompatibilities. As of last year, they've all pretty much been like, yeah, we'll implement vt100 because we don't care anymore. Even Windows CMD prompt! It's great. This new consensus is going to make so much toil go away.
For example, here's an app I wrote a few months ago. It's a single file TUI application. The binary runs on all the different operating systems and looks exactly the same. Truly build-once run-anywhere. It literally looks the same on Linux as it does in Windows command prompt and Mac too etc. It doesn't have any dependencies. It's about 200kb. https://justine.storage.googleapis.com/blinkenlights/index.h...
I've been using it lately testing tool, because I want these single file programs to boot from BIOS on bare metal too. I've got it working for stdio so far. So once I add a virtio ethernet driver it'll be golden. Especially for cloud deploys. Every program you compile is its own operating system which runs on all the other ones too. I call it the Cosmopolitan C Library (NOTE: this page is work in progress!) https://justine.storage.googleapis.com/cosmopolitan/index.ht...
I completely agree with your assessment that vendors will never agree on a common GUI toolkit.
However, if one were to think about it, anything shown on the screen is a gui of sorts. It's just that text mode was long ago standardised with the use of ascii and the corresponding cga/ega/vga drivers.
> Before 1963, computer manufacturers had over sixty different ways of representing characters in computers. Machines could not communicate with one another [0]
There were some wild inconsistencies with the different display drivers back in early days. It's just that no one seemed to want to standardise on renderable gui elements afaik. Every platform has redesigned the wheel, so to speak, giving us the mess we've always had.
It'd be interesting to see hardware level support for UI elements, but as you suggest, we're probably too far down the road for anyone to give up their niche GUI library.
You're absolutely right that the inconsistencies with textmode used to be about as awful as the inconsistencies we see with GUIs today. I'm certain things will get better if we consider that GUIs are a relatively recent invention by comparison. So it'll probably take another fifty years for widget authors to forge out a consensus that's as good and widely supported as the one we have now for terminals.
Today, everyone can use one. They are very powerful, do a lot of things, and are comparatively simple to use - I mean, my MOM can use the damn things, which she never could have done in the 80's and 90's. And with very little support for me!
Some of the points contradict with each other - he praises having independent OSes (and read-only disks) in one point, and then he wishes for settings to be consistent through OSes.
Also, some of the things he mentions already exist in MacOS, which is weird because he uses an old MacOS as an example. For example one application-one file is still true - most apps are packages, and you can have multiple versions of each app on the same MacOS, and it doesn't matter where you run them from.
Sure, the settings are stored in separate directories, but this was also a conscious decision. In the times of DOS, you had your user files and folders scattered everywhere, and now it's in your home folder.
He also postulates for an abandonment of linking ("each object representing a file, not a link to a file") - that's actually quite interesting. I think it would go badly quick, but a nice idea.
Ah, and finally - no auto updates. Sorry, but if we have persistent internet, we need auto-updates for security reasons. I absolutely hate it at times (especially on Windows), but it's a necessity to keep the security :/
I'm having 90's flashbacks to debugging nonworking printers and my girlfriend asking why, after many months since the installation, "is Netscape showing up as a hard drive"?
And then there's "no, you just closed all the windows; you didn't close the app"
iPad is only great for taking notes + consuming long form content. Browsing the internet requires keyboard input.
Creating long form content absolutely requires a keyboard, but the parent even mentions that as part of the "it just works" of a tablet.
We had mediocre on-device voice dictation when Pentiums + 486's were all the rage; (ie. Dragon Naturally Speaking 1.0 in 1997) why can't we get on-device voice dictation on these ARM devices at similar or slightly better quality, since these SoC's are 10x what we could do in the 90s?
Do you feel the same?
The classic Macintosh system software is a reasonable example of this. Up to System 7.5 the operating system and the bulk of software only exposed components that were intended to be manipulated by the end user. For example: you could install a printer driver by dropping the appropriate file into System Folder:Extensions or install a font by dropping the appropriate file into System Folder:Fonts. If you wanted to remove a component, you could drag it to the trash. While you would lose access to a particular feature, everything else would continue to function. Much of that was facilitated by structured files, since everything could be bundled into the component's resource fork. Application software behaved in much the same way.
Of course, that changed around System 7.5. The function of the various components were less evident than a printer driver, font, or application dictionary. Dependencies increasingly became things that must exist for the software to function, rather than being optional features. Mac OS eventually dropped the concept of resource forks, so things that used to be contained in one file were distributed across many.
There are many reasons for those changes and the complexity of modern software likely makes returning to that old model impractical, if not impossible. That being said, for all of the improvements we have seen a lot of control has been lost.
As for System 6 being the pinnacle, I have a hard time deciding between System 6 and System 7.1. The early versions of System 7 added a few quality-of-life improvements while maintaining most of the simplicity of System 6. System 7.5 (or maybe System 7.1 Pro) is when the Macintosh System Software went off the rails in my opinion.
* Some programs let you launch another program without quitting. If I recall correctly, those programs would remain in memory but would not run in the background. If you wanted to return to the original program, you would have to exit the program it launched. This was typically available in development tools.
* Desk accessories were device drivers that looked like programs. This allowed the end user to run small programs, like a calculator or clipboard manager, while continuing to use another piece of software.
The more interesting question is how did the system behave with multitasking turned on, since the original system software did not support multitasking. For a while multitasking support could be added with a separate piece of software. System 6 was the first version of the Macintosh system software to incorporate multitasking and it was turned off by default (if I recall correctly). System 7 was the first version where multitasking could not be disabled.
I suspect that multitasking could be added in a relatively seamless fashion to the system software since developers were supposed to use the Macintosh Toolbox (API), so things like memory management were always mediated by the operating system. The main user-visible quirk was the ability to partition memory, which ensured that properly written software would not overwrite the memory of other applications. (Granted, there was no memory protection, so it could happen.)
Resource forks are still supported, if not commonly used, even in APFS. For example, according to https://en.wikipedia.org/wiki/Apple_File_System#Compression , transparent compression is implemented that way.
With that said, things certainly were not easier. Plug in a device now days and viola it works! Transfer a archive from Linux -> OS X -> Windows and you can view it (and even using the same multi-platform apps) across the board. ...the list goes on forever.
Can things be easier? Sure? Simplicity? Yes! Is it all rainbows and unicorns? Nah (as people have pointed out already you lose control).
Many systems exist for things like single file applications. Of course no one can agree on what that should look like it seems. AppImages, .apks (which are just Zip files), static binaries, containerized applications, etc. OS X has had .app's for a long time which are just a folder of files (and the common way to transfer that is a mountable image or archive).
People have tried many times to come up with embedded icons in ELF. Why some Linux users push back is still beyond me. Yes we know we need multiple formats and resolutions. OK, support that. .desktop files are nice, but that shouldn't be something I have to mess around with generally. Most systems still don't have a nice way to even create these files (which let's be honest: are just the Windows equivalent to a .lnk desktop shortcut).
Oof I could go on forever here. I think I'll stop.
By the way, a Mac still lets you select a boot drive in the exact same way. And current Macs still remember the positioning of icons and on a Mac you can still run apps from anywhere (unless the developer didn't follow Apple's standards but that's not Apple's fault). If you take his comments purely within the Mac field of view which he seems to do, some of these statements are simply false. And the unrestricted, non-password users? Well yeah it would be nice but the cold dark world of the internet has caught up with that. Good luck with your botnets.
I don't think he's ever edited config.sys and autoexec.bat files, struggled with setting nonconflicting IRQs with jumpers and set up XMS/EMS high-memory drivers, just to have enough to load all the TSRs you needed and have enough real memory available available to run a program.
Or used Word Perfect which required a 'cheat sheet' with all the different function key combos. Most programs required classroom training for all non-geek people to use them.
I loved that time too. But it was definitely not easier than it is now.
By the way, someone looking for this simpler experience can find it in the mobile OSes. An iPad already provides most of these things while being secure (but at the expense of Apple deciding what you can and can't do with your device). A lot of people already use a mobile or tablet as their sole computing device.
2) 500ms go by
3) Computer prints "READY" and shows a blinking cursor.
At this point you can start typing code.
That is what I miss about 80s computing.
5) Scream at the tape the next day because it stretched a bit and the computer now won't read it back, or your little sister recorded the spice girls over it :P
I did love that time too though! But it did have its drawbacks.
But really, this experience is not far away if you're looking for it. A raspberry pi kinda offers that. Maybe not the 500ms, but it boots in seconds to a CLI and it's cheap enough to just leave running. Windows 10 is also really fast at booting (basically because it secretly just hibernates its kernel but it's a smart and useful trick).
My 1010 tape drive also had really really thin plastic stems under the buttons, which pressed on quite heavy mechanical tape controls.. Obviously they didn't last much longer than the warranty period :X I removed the front panel and pushed the metal parts by hand for a while until the whole thing just gave out.
The new-style XE tape drive I got after that was better but still had the poor reliability.
There was also a disk drive option but it cost more than the computer itself (and in fact it was almost another computer as it was powered by a similar CPU, just with less RAM). So being a schoolboy I never owned one.
Just fullscreen a terminal and start your favorite repl. You can even have basic if you want.
Quick, what stovepipe of software would let you type "PLOT 10, 10: DRAW 20, 20" to draw a line :)
PS: You also used an Atari? I think it was DRAWTO there :)
It is designed for kids and it looks a bit goofy with all those drag-and-drop programming commands, but don't be fooled -- it is a pretty modern language, with flow control, variables, functions and all.
At the same time it is great for "just start creating" things -- you start by drawing pictures, then you animate an object and the next thing you know you have a fun game :)
Yes, it does take decades to wrap one’s head around all that stuff, but you don’t have to in order to have a straightforward programming experience.
Take this for example: https://docs.racket-lang.org/quick/
Almost as simple, vastly better to learn.
And it’s not like we understood how graphics worked, or how the basic interpreter was built in order to type those commands anyway. Even if some of us do now, most people who used those machines never understood them.
I do agree with you in essence - I want that simplicity back, but I don’t miss actually using those machines. I wrote some quite complex software in BASIC, and have no desire to return to that.
I want something with the immediacy and programmability of that era, but with modern capabilities and programming concepts.
Through this, I have found networking to be a significant design pressure on the rest of the system, inviting complexity. The comparison of retrobsd and litebsd in the pic32 paper talks about this.
Another conclusion - if you want the platform to be relevant on high end hardware, you must use Windows or Linux as part of your foundation due to the gpu driver situation.
But I do feel like the world is ripe for a revolution in a few directions here.
-- Browser
To your point that a conventional browser creates unavoidable complexity: I agree.
It may be possible to disrupt that stack entirely, by creating something that developers would prefer to develop for.
The new conversational interaction between whatsapp users and corporate chatbots (e.g. airline rebooking over whatsapp) shows developer and user appetite for non-HTTP internet activity. As does Slack, somewhat.
This gopher-like 'Gemini' thing that has been popping up recently is interesting.
On the Dinghy website, there is a proposal for an engine, /Limit/. It would be a Forth VM that would maintain an async connection back to a webserver-like server. Instead of having HTTP+HTML+CSS+Javascript, you would deliver sites as forth bytecode. This could be tighter yet more flexible than a web browser. An Everything-Is-A-X based overthrow of the current web browser model.
/Limit/ could be simulated in a browser (using javascript and websockets) so that people who only had a browser could browse a Limit server without adding new software.
Hypothesis: /Limit/ would have common purpose with alt-OS communities that do not have first-class browsers: Haiku, Plan9, Amiga, Suckless, people who run old SGIs for fun. Imagine if you could just recompile a C codebase, and change some headers, and get a full-featured browser-like thing running on these systems.
-- Networking
I am confident that there is a non-complex path through this problem.
Hypothesis: interaction with the systems API should be purely asynchronous, and TCP interaction will look nothing like the Berkeley sockets API.
Tanenbaum warns of the dangers of an async systems API (http://songseed.org/dinghy/tanenbaum.html).
But there is an occam-based OS, RMoX, that looks to be a demonstration of the async OS concept. I hit obstacles trying to evaluate/verify this.
On the Dinghy website, there is a paper for "Drift". This proposes an async OS for the amd64 architecture. I noticed drafting problems in this paper earlier, will revise soon.
The addition of io_uring to Linux may allow another approach: create an async API mezzanine on io_uring; regard this as your Bedrock, rather than the hardware itself.
Once io_uring is mature, it may be possible to fork Linux in order to discard /all/ syscalls except io_uring. This kernel would have ongoing Linux driver support, but with a much smaller kernel surface area.
-- Your requirements
Regarding your stated requirements, 'SD card navigation, text editor, image and audio file player, simple graphics', you could build this on top of the Maximite architecture. But it would lack networking.
Whereas the Dinghy concept goes beyond your stated requirements.
It sounds like y'all are trying to build the original internet OS (iOS, but years before Apple took the term) that Carl Sassenrath of Amiga and Rebol fame was trying to build. Rebol is a lot like both lisp and forth, and is very powerful. Carl thought users would just share Rebol scripts over the network. To give some context, a fully graphical tetris is like 3/4 a page of Rebol code. If only he had open sourced it sooner.
There may be a challenge bootstrapping that ecosystem on obscure platforms. If I remember correctly, you need an existing Red or Rebol in order to build the latest Red.
I will update the Limit page with a reference to this.
$ python3
Python 3.6.9 (default, Oct 8 2020, 12:12:24)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from turtle import *
>>> penup()
>>> setposition(10, 10)
>>> pendown()
>>> setposition(100, 100)
Not quite the same commands, but pretty close. And you have more modern things like "bgpic", "onclick" and entire Python library.If you want to play with sprites and lines and stuff, use modern PC. It does the things that poor C64 never dreamed of, and if you want constraints, there are always things like "1k demos" which let one express their creativity while keeping the minimal amount of code around.
if you want to understand stuff down to the metal, there is a whole embedded world out there. From the simple 8051 with a half-dozen registers to 32 bit ARMs where you can learn how to set up DMA transfers. (My favorite one is 8-bit AVR: the datasheet is small enough you can read it end to end, there are plenty of peripherals, but at the same time it is slow enough you have to occasionally solve "how to code this quickly" puzzle)
I see no reason to mix those two, except because of nostalgia. Yes, in the past you had to be blacksmith and woodworker -- but those are gone. You can still mix those two, and the very first rasp you made still feels very special, but let's not pretend it was somehow better than the modern store-bought one.
Most of the complexity in those things you mention comes from asynchrony.
Come on. I think you're remembering the past with rose colored glasses. I loved my C64 in the 80s but it was not user friendly, compared to say an iPad running playgrounds.
This is what is was like when things worked. https://dfarq.homeip.net/load-commodore-64-games/
When things didn't work...
4) Tape does not load for some reason, retry.
5) Tape still does not load, retry.
6) You remember your friends brought some games yesterday and you had to tweak tape player's head position. Where is your screwdriver again?
7) Spend 20 minutes trying to re-align the heads so you can load the tape.
...
If you want "turn on and start coding" experience, then programmable calculators are your friend. Really, give them a try -- they have the same BASIC, support your familiar "PLOT 10,0" commands, but at the same time do not lose all your data when you turn then off, and do not require tapes.
The UI might be similar here, but the experience is vastly different. Back in The Day it was pretty common to build customized System Folders by hand to fit your personal needs and your machine's resource limits, e.g. to fit in a RAM Disk on a PowerBook to save battery on the go. The minimum bootable (note: not "usable") blessed folder could be just two files — a System suitcase and the Finder executable.
In front of me I have an Amiga 600 (with an accelerator) and the whole OS can be installed from 5 floppy disks and is roughly equivalent to MacOS. I also have an Atari ST 1040 with TOS. No autoexec or IRQ madness to deal with. They mainly just work.
A large chunk of the problems we have now are because no-one thought about security in the 80's and 90's when the various protocols we use were being invented.
It was only kinda safe because not connected to the internet. As soon as the internet came along all those simple protocols got abused royally, and all those simple OS's got pwned routinely.
I remember those days. Being the family IT support, once a month I had to clean my sister's laptop of all the viral crap she kept clicking on. Today is better. Much, much better.
I can't speak for the author, but I think a lot of this industry sacrifices way way too much in the name of nebulous "security". Case in point: Spectre and Meltdown are not likely to ever be a significant threat to any desktop computer user, nor to any server that is only running trusted code, yet a lot of IT people lost their shit over it and were willing to significantly degrade their performance via heavy handed mitigations.
The vast vast majority of targeted attacks today are by exploiting the least secure part of the system: the meat bag in front of it.
But if the whole shebang had been built with multi-user, online, and hostile as a default we wouldn't have spent 20 years dealing with the failure of protocols in the face of black hats, and the meat bags would be more secure in their ignorance.
re: the article, as much as I have a lot of fond memories of System 7, I don't think today's modern OS seem that bad.
MS has been trying to abstract away legacy complexity bit by bit, it's very difficult to just throw everything away, the worst one being flaky file sharing functions.
But over time, I'm sure we'll get to better place.
Enough that I always realize they're there and sometimes they annoy me but overall, having a computer and having access to all the awesome things computers can do is worth the hassle.
HN: Some other stuff was worse though, so your point is invalid.
I really hate this place sometimes.
To which my comment makes a number of counter points. You had to configure a lot. And things rarely just worked. And if they worked, they were rarely consistent.
The article is an interesting read, but on nearly every point of it, I prefer today’s computers to any of the past. The exception being his point about apps requiring internet access and being generally hard to keep in multiple copy form.
They typically also sported a tiny black and white display (vs. 27" or larger 5K or 4K full/wide color and HDR displays), extremely primitive multimedia capabilities (Macromedia director vs. the web, iMovie, Unity...), much slower storage (slow floppy disks and hard drives vs. modern flash storage), and was more likely to crash or freeze due to lack of memory protection and preemptive multitasking (though it didn't have the problem of breaking when you lose internet connectivity like modern macOS.)
Modern IP networking is powerful and connects you to the world, but AppleTalk was largely plug-and-play and had nice dynamic resource discovery (which influenced the design of Bonjour/mDNS.) Note classic Macs could be connected to the IP internet, but they lacked web browsers until ~1992. ;-)
As far as Apple is concerned, I think iOS may be the inheritor of much of the simplicity of the classic Macintosh: one app at a time, simplified multitasking, hood welded shut with minimal user-serviceable components inside. But an iPhone also does much more than a typical Macintosh of the 1980s or early 1990s, notably full wireless, mobile internet access with modern web support, streaming video, television, and music, wireless/mobile voice and video calls, multimedia messaging and email, full speech recognition and automatic dictation, Siri/digital assistant, full voice control of the device, automatic language translation, accelerated 3D graphics with augmented reality support, automatic computational photography, high-resolution, color digital painting and photo editing with dozens of layers, video editing, CD-quality sampling, music synthesis, and multitrack recording, millions of downloadable apps, etc.. And it runs all day on batteries and fits in your pocket.
For the record, iMovie originally ran on Classic macOS 8 in 1999.
Note I said "Classic Macs" (think compact Macintosh models with 68000 processors) rather than classic Mac OS.
By 1999 the shift to OS X was also underway, with Mac OS X Server 1.0 released that year.
Because in the 80s things would boot to a DOS prompt or a basic interpreter and you had to know some commands to type to get anything to happen. Today they boot to GUI with useful applications to run. Well, except for Windows.
Any given hardware platform tended to be a more stable target over it's lifetime in the pre-PC era, which is a kind of simplicity (not really ease, but once you've climbed the learning curve the ground isn't shifting under you.) OTOH, any given hardware platform was likely to fade into irrelevance sooner and if you wanted to swap to something with decent current support more of what you learned would be irrelevant, so even that stability was of fairly limited utility.
Of course, if you just want a simpler GUI for Linux, then that is indeed possible. But that's an uphill battle for another reason... the underlying libraries that you'd build you hypothetical GUI on are all built with the assumption that the user wants a rich command-line and config file interface to everything. Also you'll have to give up modularity. If you build a GUI frontend for ALSA, you'll also need to make it work with PulseAudio and Jack.
To pick on an example given in the article:
File managers that “seamlessly” (air quotes intentional) support multiple network protocols and archive formats have a supposedly flat learning curve; so flat that no mental effort is expected.
Indeed there is plenty and very confusing for anyone not prepared to it upfront.
Firing up a dedicated - specific purpose - application primes the users’ attention and makes eventual struggles expected and even gratifying to solve.
It’s a hunch, no hard proof for this; maybe some behavioral scientist can chime in
OSX finally added preemptive multitasking but, for a long time, it continued to provide little in the way of user customization. It was the Apple way or the highway. If you happened to like the Apple way this was fine. If you had other ideas, it was painful. Linux and Windows were both far more customizable.
On the Windows side of things, DOS was beautifully simple but horribly limited and, at times, not very simple to use. Half the challenge of PC gaming in the 90's was just getting the games to run! Who remembers what IRQ their soundcard used?
Things have gotten easier to use, but also more complicated. Complexity and ease of use are not necessarily opposing or entwined.
Some Windows applications are contained entirely within their program folder. Executables, libraries, configuration files, all in one place. If you move it to another drive, all you have to do is update the shortcut and it will work. If you move it to a new PC, just run the executable and it will work, complete will all your old settings. If you want to mess with its config files, you know where they are.
Other applications have bits and pieces widely distributed across various system folders hidden deep within hidden directories. If you try to move it, it will break. If you try to copy it to a new PC, it won't work. If you try to edit the config files, there might be two or three copies in different locations, one of which supersedes the others.
We don't need to return to the dark days of MacOS and DOS to make things simpler under the hood and easier for users to mess around with. We all want to write programs that are intuitive when they're running, but perhaps we also need to make them intuitive to mess around with when they're not running. OS's and programs can still be complex and user friendly even if we embrace simpler and more hackable installation footprints. Heck, just leaving comments in the config files to explain what things do would be a giant leap forward for some programs.
Stop treating software like turnkey installations and more like cars. Expect some of your customers to look under the hood and make modifications.
Not if you run RISC OS. You can even boot directly to a BBC BASIC prompt to get a full early 1980s PC experience! Turn it on, start entering code....
Ancient computer magazines seem like magical treasure troves. I recently linked to an issue of Creative Computing which included the source listing for the Oregon Trail game that you could type in and run, as well as an article describing the game and a transcript of someone playing (and actually winning, haha.)
I'd say that's pretty interesting and educational because the code has to go through your brain and out your fingers, and then you have to debug it afterward. It cracks the black box open and shows you the inside components inside; even if you might not fully understand them immediately you can see what they are made of and how they work at a micro level. And limited system memory, page count, and and finger endurance seem to have kept source listings reasonably short and manageable, while still enabling interesting and non-trivial applications. There may also be more incentive to explore both the gameplay and its implementation in some detail since you put so much effort into it, rather than just clicking on the next opaque binary download.
That being said... github is also a magical treasure trove, but usually without the friendly magazine articles explaining the software, so the onramp is steeper even if you don't have to type the code in yourself. I'd like to see a github index of short-form, relatively self-contained software of this sort. Ideally with accompanying articles. ;-)
I'd also like to see more modern magazines like the MagPi.
So another level of abstraction will make things easier? I doubt!
seriously? what godforsaken obscure unmaintained linux distro is _this_ guy using?
There’s a million ways OSX is a work of art in OS design.
More than anything, it just works and multitasks smooth as a Swiss watch.
Simple, intuitive, consistent.
Yesterday I was using my iPhone and it said “share network password fro your Mac?” And it connected my to my local wireless. That’s beyond belief ease of use.
OSX knows what it is.... a powerful consistent desktop OS, 1000x better than anything from the 1980s or 1990s.
I was there in the 1980s and 1990s and it just wasn’t easy to use. Nothing was.
But...why? Why would I ever need to interact with any of the application files? Why would I need to move it to another portion of the disk? Give it a shortcut to click on to activate it and who cares? It could be running one file or a million files. The only files I care about are the ones I create and edit. I can't imagine any need to interact with the application files. If your users need to interact with the application files or move them around in any way, you've already failed at usability.
Now if you don't ever need to interact with application files why invent all this complexity when you can just expose the files individually and not ever care about that again.
This way, the application developer does get all the benefits of a file system, while the user all of having a single file. While you don't need to do this constantly, being able to relocate an application on your file system is a very nice thing. Like moving it to a different volume or disk. Having it an a users home or the system application directory. Especially, having any amount of compies of the application (different versions) in as many places as you want.
Not having the need to "install" an application is a big advantage, not having to "deinstall" an even bigger. Having the application doesn't change your system. This is especially great if you run your systems for many years. Having to do a "clean install" is a symptom of a not cleanly separated system.
Sometimes you want to store applications on different disks. Like say a removable USB drive so you can use it at multiple computers, or you want to run some from an SSD but others are ok running from a larger slower disk. Or maybe you just want to run them directly off the network. "Installation" is just a copy operation from one media to another, "uninstallation" is just a delete operation. In other words: there is a minimum of abstraction, the application is a single file and performing the same operations you do on any other file to them does exactly what you think it does and the application is stored exactly where you think it is stored.