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.
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.)