If anything, CLIs are thriving on Macs and Linux boxes (in the cloud). Few people of my generation (70s/80s) would have ever predicted a whole new generation of hipster programmers and web designers today who think nothing of dropping to bash and ssh'ing and running npm. Or using vim and REPLs. We thought the whole world would go full GUI by the early late 90s (and it has, yet the console has continued to dominate).
Kids these days are more comfortable with the command-line than a whole generation of Windows programmers before them.
As for AS/400, I can't say I've interacted with it too much apart from a few brief occasions interfacing with DB2 on AS/400 and it was less than elegant (involved lots of emulation). We had a hard time building anything on top of it. The interoperability of AS/400 with non-IBM systems didn't seem to be that great, even though the system itself was rock-solid and ran mission-critical workloads extremely reliably.
I do miss the warm glow of a Turbo Vision IDE (I wrote my first real TUI application on Borland Paradox 4.0) and how quickly one could zip around and get stuff done.
I agree with the rest of the take but you seem to be coming from a developer's standpoint and I am talking about the user side. Developers back then also had access to terminal and knew how to use it. It's just that the entire software industry has grown.
When I was 10 years old, we had to write a turtle program in DOS. Tell me which 10 year olds today know CLI? They're all plastered to their iPads.
Prime example of juvenoia and biased stereotypical thinking right there. "Back in my days ..." ™
I know more kids in the ages up to 13 who are interested in actually exploring and working with technical stuff (programming and electronics for example) than kids who spend their most time just "consuming" and using these things. The main reason is that these things are much more accessible these days. YMMV, depending on your social and demographic environment I guess ...
Granted, I also set the bar relatively high. (Example: are those skills transferable.)
It does give me some hope that future generations will still use computers and not just tablets.
I'm not saying that's what you should do with Minecraft, but it could be interesting to see how such an interface is usable.
As I understand it, one would definitely need training/study to interface with it.
Though, to be fair, I started using a computer in the early 90s which was a DOS machine and only had the command line. So I grew up using a computer this way.
Making one-off tools to automate tasks, or even building a set of internal tools for handling certain operations is much more feasible when you can churn it out in an hour and be done with it.
Just today I spent an hour modifying an old cli tool to help process some customers that I could get as Csv. If I was to make a gui tool for this job, it might take a week or two and the result would be way less flexible.
(Not my favourite language, by far. But I did appreciate what it gave you. And some of my friends did amazing things with it.)
Yes. This week I set up a new Windows 10 laptop for an elderly gentleman, who wanted to continue to play the classic Solitaire game. I eventually found the edition that shipped with Windows 3.0 and installed that. I then tried some of the standard Microsoft free games you get now and had a poor experience:
Horribly slow to load. Advertisements in your face constantly. Demands that you "sign in" to Xbox Live. Not having internet connectivity is treated as weird. Noisy user interface; multiple clicks to start a game.
Compare this with the old-fashioned games e.g. Solitaire, Minesweeper:
Loads instantly, ready to play. No advertisements, connectivity requirements, or user data harvesting. Even the simple graphics add an aesthetic all of their own, but that of course is a subjective opinion.
I agree with you.
I'm even more outraged when I see popular video games that are clearly targeting children to become addicted and buy in-game currency to progress (or worse- not do anything at all like Fortnite skins). I played fucking The Legend of Zelda on my Nintendo and it was great. What ever happened to creating a product and selling that product once? If it doesn't suck we might buy the next product(s) you make.
* status games - I have this old/hard to get/expensive skin and you do not.
* social games - me and my buddies all dress identically/similarly. Gang colors, the All-Shrek Squad, GTA’s roving gangs of purple/green alien gangs...
* role play games - does dressing up like Superman make you want to play the game differently than dressing up like Little Bo Peep, or like Freddy Krueger?
This has very little effect on a single player game (though I know I sure do spend a while making my character look cool in games with character creation and visible equipment) but “choosing your visual style” is an important part of social signaling.
And of course selling this stuff to the captive audience in your popular game is a pretty nice way to keep a small army of artists busy cranking out stuff, so you don’t have to worry about firing them while the next big project is in the planning stages. Or to just have a giant cash cow of a gentle IAP funnel with a few bits of whale bait here and there.
(Can you flood a subnet with DNS A responses, or does that not work due to sequence numbering?)
At a price that doesn't actually fund the quality you expect.
Graphics and art got harder, but gamers didn't get any less broke or salty. So you gotta subsidize with Whales.
My wife really likes Scrabble, in-person ideally, but on-line as well. The iOS app was something you could sign in to, or play as guest, but with login you could play your friends. It was clearly buggy as hell, unstable, with all sorts of weird quirks. When it worked though, it was fine (enough).
They've basically started shoving users away, and now there's a new app. I think you might have to sign in with Facebook or some such nonsense, but anyway, it's like the expectation is that it's hung over a baby's crib. Flashy blinking cruft everywhere, and of course the board is shrunk to make room for the superfluous, distracting crap.
I'm sure the latter version is only populated by bots now, because it's well nigh unplayable for a human.
Back before the web was prominent, software had to be distributed via physical media, usually floppies and later CDs. This inherently limited the reach and complexity of software - physical media is expensive, especially floppies - so it required either the mailing of software by the creator(s) to users, who would have to pay a fee, or a substantial investment by a publisher, which again incurs a (larger) cost to the end user. Almost any widespread software would require a middleman (publisher) and the end user having to go to a store to purchase it.
Allowing anyone to create and distribute software in a format simple enough to be used easily by anyone has democratized this system. With more programmers who might not practice the craft professionally, and a desire for speedy development, higher-level languages and frameworks sprung up to fill the knowledge gap and enable even easier development.
That's not to say that we should not appreciate older software - as you wrote, the aesthetics ought not belie the challenge and art of software which had to fit into tight spaces, and the constraints required usually forced developers to place function over form. It's a different, not necessarily better or worse, software development paradigm, and older software can be as impressive as or even more so than newer software. But we shouldn't write off the new things either, even if they're worse in areas.
(I don't think all of it looks completely ugly, either: Windows 3.1, for example, exhibits a number of traits of modern flat design - single colors, mostly a lack of shadows, many simple icons and interface elements. Windows 1.0 even used the hamburger menu icon. What's old is new again.)
Apart from the speed and convenience of clicking a link to visit a web app, those attributes all sound to me like tradeoffs that benefit the developer at the expense of the user.
The software I remember, from the 90’s and earlier, put the user in control. Licenses were one time costs and they were perpetual. Software was much more thoroughly tested before being released to manufacturing (through the golden master process) since it was a major gaffe to release a broken app that had to be updated with fresh physical media.
Unlike today, there was never any sense that the developer could pull the rug out from under your feet, at any moment. The title of the article is a testament to the (now archaic) notion that software might be considered “complete”. That it seems so quaint is such a terrible shame.
Now we have so much software offered for rental only, like Adobe stuff, or ad-driven free sites which are liable to changed drastically (with no option to skip the “upgrade”) or cancelled outright like so many Google products [1].
Somehow, in the past few years I’ve picked up a nostalgic fever for retro computing [2] which has only intensified since Covid began. I don’t know how to explain it, but here we are. Perhaps I’m just getting old and finding it increasingly difficult to relate to young people, who seem to jump from one social media fad to another, like locusts.
[1] https://killedbygoogle.com/
[2] https://medium.com/message/networks-without-networks-7644933...
Your comment reminds me of a pretty jarring experience moving from embedded systems into mobile (iOS) apps. I asked the lead how we know the software is “done” and can ship. He looked at me like I had horns growing out of my head. “We are never done. We just keep developing and releasing until they tell us to work on something else.” This idea that your program can be done and you release the final version is turning into a relic from a lost age.
It’s also sad from the user’s point of view: as updates get more automatic, you have to take deliberate action to stay on an old, working, familiar version. If you’re not careful, you can reboot and your software looks and behaves entirely different. And in the web world it’s impossible! You don’t even have a choice. You are running whatever version the developer decrees you should be running.
It'll reappear eventually. But until it does, Mozilla has decreed that I shall use an out of date web browser.
Bring on the vulnerabilities...?
Well, with maybe the exception of Office 6.0 which I heard described as 'so full of bugs it practically walks itself' It came on about 9 floppy disks. I had to install it in an office with about 15 standalone PCs and so had to do the disk 1, disk 2,.. shuffle for each PC.
Not everything was better back then.
The same can not be said of present-day stuff, which seems to change on a weekly basis. I don’t know how anyone will ever be able to use the old Facebook again once they shut it off.
Today that isn't the case. It's all about continuous rollover. So in 20 years the software that "survived" will be the same old software that we're talking about now (from the 90s and earlier). All of the present-day software will be continually updated and may be unrecognizable in 20 years.
Oh, and the keys were prone to hardware failure, and replacement took weeks to arrive.
Someone wrote a whole kernel for Tic80 on RPi : https://github.com/msx80/BareMetalTic80
I can imagine a modern retro computer with modest specs running on A8 processor, in a compact form, with a super minimal kernel and TCP stack that can do 90% of tasks we need to do today.
Checking weather, ordering delivery, booking tickets, reading email, chatting, calls, etc.
I want this to exist!
I went to a restaurant tonight. Because of COVID-19, we were seated outside. Instead of being given a menu, we were told to scan a laminated QR code on the table. That loaded a website with the menu.
From one point of view, this is a huge waste of compute. The phone camera is scanning for QR code whenever it’s open, which is a waste. We’re calling up cell towers to do megabytes worth of downloading to get a website, when the text of the menu is at most a couple of dozen items.
On the other hand, the restaurant knew we’d have phones and didn’t want to either sanitize laminated menus or print and toss plain paper menus. You could imagine a system in the 80s where you’d use a CueCat style scanner to get a simple barcode for a text menu… but nothing was ever as widespread then as smartphones are now. The sheer ubiquity of computing makes it easy to solve a novel problem with overwhelming resources.
For example, Pico-8 gaming engine: https://www.lexaloffle.com/pico-8.php
and TIC-80 computer: https://tic80.com/
These are way too limited, but I could imagine something a little more powerful - 1024x768 pixel buffer, 64 MB ram and 100 MB space. All apps natively running on this (or even emulation) would instantly load and the latency would be unreal.
As a developer, I think the whole thing is so convoluted and asinine it should curl up and die in a fire. It will spawn an entirely new area of bespoke, non-maintainable yet critical business tooling.
On the plus side, they chose the environmentally friendly option, the alternative would have been disposable paper menus.
ESP-CAMs combine a 2-megapixel OV2640 with an ESP32 clocked at 240MHz that has a Wi-Fi b/g/n + Bluetooth 4.2 baseband integrated into the chip.
Finished/working flashable boards run for about $6 apiece on Aliexpress.
Compare that to the CueCat, which was made in 2000 and much more finicky about scanning: https://en.wikipedia.org/wiki/CueCat
You're conflating "web apps" with "distributing through Internet" and forgetting that between floppies and web apps, for about 15 years the main way of getting applications was downloading regular pieces of software through FTP and HTTP ("download the installer" in Windows world, a package manager in Unix-like worlds, etc.).
1. Find the site: not always easy. Still, same level of difficulty for webapps.
2. Find the HUGE download button: not easy, it's incredible how many people don't figure it out. Still, same difficulty as creating an account or logging in.
3. Download the file: might be blocked by security policies or corrupted by overzealous antiviruses.
4. Find the downloaded file: quite challenging for a good chunk of people, so challenging that mobile apps try to do everything possible to hide files to not scare users (ergo the app-centric OS models).
5.Launch the installer: see security policies, installer bugs, corrupted or out of date local OSes, plain old user error, memory or disk space issues.
6. Find the installed app afterwards: not an easy challenge for many people.
The desktop funnel was so long and fraught with peril that the vast majority of desktop users would get help from family or people they'd know. There were/are thriving PC help businesses around. Also, despite me being a PC fan, PCs could never reach ubiquity, unlike mobile devices, despite being the only option for 30 years and the web helping them with usability.
Back then you had to be super careful about creating a strong product that wouldn't require too many updates. Now you have CI churning out multiple new versions a day, but one could argue we've got lazy about quality & documentation. And for the power user it was good to have complete control over whether you installed an update (and equally bad for the company because it was hard to know who had what version).
These days you have to look for release notes, newsgroups, Slack channels, Discord channels, tweets, FAQs, KBs, and so on to make sure you know what's going on. Gets a bit tiring. As a web developer I of course love the fact that I always know what version of the software my users are on, modulo browser differences.
Not arguing for a return to the past, not at all. I'm just saying that after 30+ years as a developer I don't feel that we've served customers any better in 2020 than in 1985.
- All weapons special effects would never trigger - They failed to dereference the index for critical hits, so the higher index the weapon had, the better its critical rate - A bunch of spells either don't work or have the opposite effect they are supposed to - The code for calculating run chance is so terribly messed up, it reads the wrong field from 2 characters down (so the last two characters read from some coincidental memory location causing them to be unlikely to run)
[edit]
Found a fairly comprehensive list of bugs; totaling nearly 50:
https://gamefaqs.gamespot.com/boards/522595-final-fantasy/45...
I guess it mostly comes down to the fact that players just didn't notice a lot of things (the "blind" status effect in Final Fantasy 6 did nothing, but this is really hard to notice as the hit chance it affects is called a chance for a reason) because they didn't know how things were supposed to work or they just worked around bugs if possible because patches often weren't an option.
[Edit]: I'm not trying to argue that the current way of things is in any way better than the old, both have their fair share of pros and cons.
> Back before the web was prominent, software had to be distributed via physical media, usually floppies and later CDs.
This is blatantly false. Home users could digitally obtain software via online services or BBSes, businesses with minis or mainframes could obtain software from their vendor or reseller via modem, and universities could trade software via ftp. All these sources could (and did) cross-pollinate.
Was anyone actually selling software over the internet in the 80's/early 90's at scale? I was under the impression that the answer is "no", but if there is a counterexample I'd love to see it.
https://en.wikipedia.org/wiki/3D_Realms#The_Apogee_Model_(19...
And lest we forget, a lot of shareware was based on nothing more than an appeal in a readme.txt and the hope that users would send money if they felt the software was useful - nothing more formal than that.
The users of Prodigy and CompuServe were very much part of the "general public."
I'm sure me and all my high school friends thought of ourselves as somewhat elite for dialing into BBSes, but that's just because we were jerks. It's not like we were a secret society or something, and there were plenty of us. (You might think of computer users as an elite of that era, since they were middle class tools and not for everybody, but users of online services or BBSes were not an elite subset of that group at all. Maybe that's the big lesson here.)
> Most computer users bought boxed software, and that was it.
You've obviously unfamiliar with shareware. Adorable. (the wiki page on Shareware is inadequate enough that I guess I shouldn't wonder too much about it)
It's too bad, though, because the very lightweight and high quality software that people used to make for each other and sell or give away serves as a counterexample to a number of the assertions about the web and software you made in the grandparent post. A bigger topic, honestly...
> Was anyone actually selling software over the internet in the 80's/early 90's at scale?
Okay, first of all, you need to abandon the idea that "the internet" was the entirety of digital software distribution in the late eighties or early nineties, since you're talking about the last few years when really interesting networked systems might not rely much, or at all, on TCP/IP. I wouldn't blame you for not including that era's CompuServe users as part of "the internet," since their connection to the internet involved nothing more than exchanging email with internet users at that time (I'm not even sure when they got that ability). Although they were definitely part of the "general public." Anyway.
> Was anyone actually selling software over the internet in the 80's/early 90's at scale?
The video game companies and individual developers of games or utilities were probably the first to do it at scale. Doom, in 1993, was probably the biggest example of the era but it was relying on a well established method of distribution.
Doom fulfills the "scale" part of your question but it's a little deceptive - most software isn't like that. The great thing about early digital software distribution was that tools and games that weren't necessarily big enough to justify creating a company had a path to get into consumer's hands. Doom would have got out there regardless, but a tool like, just as one example you might have heard of, pkzip, really was a product of that environment. It eventually was shrink wrapped, but only after it'd established itself a decade prior.
https://en.wikipedia.org/wiki/Modem#300_baud
It's a great indicator of how software download size has exploded over the decades.
https://en.wikipedia.org/wiki/Bulletin_board_system
That was in 1994, shortly before everything tilted toward ISPs and dedicated internet access, so I assume that was the peak. Still, though.
That said, much of the inefficiency of the web comes down to implementation. A site like HN is efficient since it has a well defined purpose and the design reflects that purpose. Many websites have less clearly defined purposes, provide a much larger scope of functionality, of depends upon general purpose frameworks. Those are all ways to diminish performance with little perceptible benefit to the end user, a.k.a. bloat.
As for modern development, I'm not sure it is much more accessible than it was in years past. Yes, a big part of the appeal of web development in the 1990's was its accessibility. On the other hand, that was comparing mature general purpose development tools to one that had limited scope. You certainly weren't developing standalone applications in HTML/CSS/JS in the early days, and most of what was developed for online use was geared towards accessing data an less so to content creation.
1985, 512k ram, 1.2MB floppy drive, 20MB hard disk, 1.2kbps modem. ~1 MIPS.
2020, 8GB ram, 4.7GB DVD-R, 1TB storage, 50Mbps internet link. >2000 MIPS.
Running older software on modern hardware is a great way of seeing what we've lost along the way.
It's always pleasant booting up one of my classic Macs, whether I'm running System 7.5 or Mac OS 8.1 or Mac OS 9, and using programs like Microsoft Word 5.1 or ClarisWorks. These environments are quite simple compared to the desktops and applications of today, yet they are so complete. Microsoft Word 5.1 and Microsoft Excel 4 on my Power Macintosh 7200 are more comfortable for me to use than LibreOffice on my 2013 Mac Pro. There is a lot that software developers could learn from the classic Mac OS and Apple's UI guidelines of the era.
Also, taking “design” to mean “how it looks” instead of “how it works”.
Sent from eww.
But all the capabilities are there to turn a "down" cursor into going to the next form element down, or having CTRL- shortcuts for popular fields, etc. A nontrivial part of the problem is just that people don't even think about expert-mode users, let alone start trying to program for them. People see a web page and they are in a mindset of novice-mode UI, both developers and users.
A Web 1.0 interface with Javascript expert-mode shortcuts, and some selective pre-loading of things like form screens could probably just about match a mainframe UI on its own turf, then be able to extend it with modern touches. And while applying All The CSS could possibly slow it down again, the results could still be at least a bit prettier than a mainframe form.
At my job I am currently trying to mitigate XSS issues because the web application that is in place uses jquery. It is a security risk by default. Rewriting the entire application would be the only secure solution but it is too costly.
If it was an old fashioned desktop application we would not be in this mess...
Web applications are really hard to get and keep them secure.
With VSCode, I got an editor which mostly just works. Which is maintained actively, major bugs fixed, which doesn't require me to maintain and version it's configuration, experimenting with different options and plugin combinations. Which has much lower learning threshold on plugin development, and a much friendlier development environment - JS for both the editor and plugins is just so much more convenient than VimScript and C.
Yes, Vim is much faster and more minimalistic, and after learning it, I install vim-emulation plugins into every editor I use (including VSCode). But being fast is not the only thing an editor can be.
I'm not a personal trainer, or motivational speaker, but brighten up.
As a mathematician, everything since the 1960s has to me been this cycle, and I think the key way to approach this is from the perspective of knowledge.
Don't look at software or data, but look at fundamental science, and you'll have less of this sort of burn out.
I read papers from 1950, and I pretend that I could have a coffee with the author later that day, and savour the fact that you can't take people's discoveries away from them, even if history or humanity has.
My last job people complained about printers being shitty.. they were fine. Jam would happen, bugs at times but really low error rate and proper function. The complaints were mostly due to extremely depressing work environment.
When work becomes too much a drag people seek scapegoat (organic or digital)
Though I'm not a big gamer, one thing I like about game software is the combination of interesting interfaces and speed.
This is a weird thing to suggest.
It's now possible to run a complete productivity suite in an office. Web mail is WAY more usable now than it was in 2005. Dynamic web apps made this kind of thing possible. I absolutely do not want to regress back to the time when every web app change required a submit; I mean, come ON.
At the same time, it's assailably true that most apps - web, native, phone, or otherwise - are crap. But don't confuse bad developer choices with a bad platform, and don't let nostalgia convince you that everything was better in $some_prior_era.
Modern web apps are so much more inferior in certain areas when speed, immediacy and efficiency is required. They do have their upsides but more often than not, it is just a mess. I recently logged into my medical insurance website and the fucking thing ajaxing all day and I have no idea what part of the page is waiting to load. I don't have a speedy internet connection. I actually prefer the page to refresh than some small segment of it reload without any indication. Sometimes spinners are fixed in place to indicate "loading" but it is just a frustrating thing to look at.
I've used IBM AS400 and a bunch of factory management software - it is an absolute pleasure to use. Yet, most operators on the factory floor complain "We are just stuck with this old archaic system". Every single day. I feel like one of these days some asshole consultant company is going to convince our upper management for a web-based MRP.
Large percentage of people do not appreciate old pieces of software. They look at the aesthetics of it and write it off. I really think an average joe off the streets can be completely bedazzled by a modern React app with animations and frivolous bells and whistles that takes 5 seconds to load. Joe does not know the difference between aesthetics and functionlism. Jill on the other hand is a linux aficionado and goes out of her way to make things hard. Spends ages perfecting her vim config file, and looks down on anyone that doesn't use Arch Linux and some form of a window manager.
Perhaps there is a sweet spot between Joe and Jill's philosophy towards useful, easy to learn and efficient software that doesn't require an obsessive linux nerd to use. Like WordPerfect 6.2.
The world is really a sad place. :-(