Ask HN: 90s programmers, what did you expect the future of tech to look like?

246 points by Dracophoenix ↗ HN
Specifically, what did you think was plausible and what did you think was around the corner (even if either really never came to fruition)?

468 comments

[ 3.7 ms ] story [ 404 ms ] thread
I expected more VR. Much more VR.

From the perspective of early-90s, I was all-in on Plan 9 and expected to see a lot more influence from it. Unfortunately that didn't really happen, with a few exceptions (/proc).

With this hindsight, any predictions for the future? 30 years from now?
My prediction is that once the capability reaches contact lenses, it'll become mass adoption. The physicality of wearing a headset while walking or moving is difficult for lots of people, and tiring. Contact lenses weigh a lot less, and are less intrusive to others.

Of course, it doesn't come without pitfalls, but that's just my prediction.

I think glasses/goggles are less intrusive than contact lenses. Lenses are irritating and difficult to insert. It's also impossible to share contact lenses. I think VR is already pretty close with the Quest 2, to what it needs to be to get mainstream adoption. A little lighter, a little thinner, maybe 5-10 more years of iterative improvements and we'll be there.
I've been wearing lenses for 15 years and do not think they are difficult to insert or irritating. But it does take some getting used to.
I wore lenses for 4 years and couldn't stand it. So I had them blast laser beams into my eyes in an attempt to fix it, so that I never had to wear lenses again. And it worked!
My hindsight also shows me that I trashed the WWW as "yet another system like gopher and WAIS that probably won't amount to much", so I should not be trusted with predicting the future, or even possibly the present.
Man I see some really neat concepts in operating systems that were created in the 80s and 90s and somehow we got stuck with a handful of Unix-likes and Windows with small parts of operating systems of the past frankensteined in occasionally.
Rob Pike has a page on this where he laments that Unix-likes and Windows have become the only dominant OSs so OS innovation these days has mostly died. While there certainly is a resurgence of new ideas in OSs like GenodeOS, Fuschia, and others, OS development has slowed down a lot. It makes sense. Every time an OS is rewritten, applications need to make huge fundamental changes to how they work, for little gain for application developers and users. Until there can be a set of incentives to push OS development forward, there won't be much progress.
Given rob's disdain for academic research and the literature in general, I'm not sure he'd be my go-to guy for analyses about this, but I agree that we don't see the kind of OS research we saw in the 90s.

I think a lot of the things we were seeing at the OS level in the early 90s are now feasible to do in user space. That, plus the fact that it is prohibitively hard to talk to devices [1], has reduced the innovation in this area but also moved it elsewhere.

Having dealt with the pain of writing OS code, or libraries that have to function in one or more OS's, I can see why people prefer to innovate elsewhere if they possibly can.

That being said, there's a lot of possible "systems" work or work that could be described as "operating systems" in the broad sense that isn't in-kernel, and that work seems to have tailed off too.

[1] My favorite data point on this, which isn't even one of the more complex devices: back when I TA'ed CMUs "build a preemptive kernel" 15-410 class, the students wrote a kernel that would really boot. We had an old machine for their kernels if they wanted to see things working on a real machine not SIMICS. However, it had to be an old machine with a PS/2 keyboard, as the complexity of talking to a USB keyboard (or so I was told; I never verified this) was roughly equivalent to the "build a entire preemptive multitasking kernel" - and obviously far less pedagogically useful.

Didn't expect FoxPro to die so fast.
Half the data for my dissertation came from a little known and abandoned FoxPro database maintained by an obscure government agency.

Accessing was a nightmare. I miss those simpler days.

Because Visual Basic was the next hot thing.
"90s" programmer only by the skin of my teeth, but I didn't the internet centralizing. It just seemed like every company and person would have their site (and possibly domain) and they'd use that to communicate in their own way. My peers went to college before facebook and even friendster- we communicated by personal websites and blogs. These aren't technologists, but that was what was available to us so they picked up just enough html to publish.

I thought the future was making that publishing easier. I wasn't wrong about that- twitter and facebook are easy. I just missed the consequences of "easy" becoming "walled garden."

Yeah I was big into the idea of how the Internet was going to completely democratize information and education and knowledge. Not everyone predominantly choosing to plug into a few different major ecosystems run by giga corporations.
> democratize information and education and knowledge

Wikipedia is still up and running ;)

A lot more visible (i.e. on the street) robots.

We see robots in manufacturing plants (e.g. cars), but not too many visible when you walk down the street. Of course, they're there, but hidden inside various normal looking objects. Automatic street lights, driverless trains, boom gates for public transport.

Robot/bot can mean many things, but typically means a humanoid object. I suppose controlling street lights used to be an entirely human job, but when the automated version of it looks nothing like a human, is it really a robot? Chat bots lack a physical similarity to the human body, but in text mode communications do resemble human activity.
Skynet won't send terminators. It'll use invisible surveillance, and use automated control systems to gradually increase accident rates and pollute the air, water, and food supplies just enough so that death rates exceed birth rates. Skynet can afford to be patient.
That's already the case in most first world countries.

Most people theorize that's it's due to access to birth control and education, but what if it's a long ploy by someone to reduce human population?

Moving to Berkeley last year the most amazing thing was those little soup-delivery robots with the cute anime faces.
Well, I certainly didn't expect to still be coding for loops by hand in a text editor after 30 years. Guess it could be worse, at least I (mostly) don't have to worry about memory leaks anymore. So that's something I guess.
(comment deleted)
data.for_each( |x| : x-> map ( blah blah blah )))))))
my @result = map { blah blah blah with $_ } @data;

I became a Perl developer at the tail end of the 90's. I learned a lot of functional development and Lisp before I had any idea what they were.

And who'da thunk that all modern language ecosystems would completely ignore the few good parts of CPAN?
No offense kiddo, but that's just sugar. I was passing function pointers and arrays 30 years ago. <old man grumbling ensues>
Haskell, Lisp and APL have been avoiding for loops for decades.
tbf computer science has not changed. Despite all the tech, we humans still use language to express our ideas so i don't think the coding of thoughts into serial text will go away
So many 'trends' back then. A few that come to mind (from the pre-web days, anyway):

* Thin clients: everybody was going to have a 'dumb terminal', and all the computing/storage would happen elsewhere. There were many variations on this idea.

* PIMs: Palm Pilots and all the variations. I knew a guy who quit his job to develop Palm Pilot wares, claiming it was 'the future'. In a way, he was right.

* Windows: Linux was barely there, Unix was for neckbeards and universities, and it looked like Mac was mostly dead. It looked like Microsoft was about to swallow the world.

* The end of mice and keyboards: Yes, it sounds silly today. but supposedly VR/voice/whatever was going to replace it all.

When it comes to thin clients, a lot of computing does happen via web services these days, albeit mostly video streaming and REST-based applications. Did you envision things a little differently?
I think he probably imagined it being a little thinner. The box on the desk hasn't changed size much.

But certainly the majority of "stuff" people do at home now takes place in data centers. And as a percentage of all computing cycles day by day, data centers do effectively all of it.

I realized I move very little data from install to install -- most of my data is in various web services.

I relatively painlessly can work both from Windows and Linux - most of what I need is in web browsers and remote systems..

certainly a success of "thin clients" - especially the browser.

More like VDIs everywhere, rather than SaaS suites, I think.
(comment deleted)
In a way most of these came true.

> Thin clients

The cloud.

> Palm pilots.

Cell phones.

> Windows, Mac, Linux

Windows is still for business/economy. Linux is still for neckbeards. Although Mac is bigger than it was, the same people are still waiting for Apple silicon to catch on.

> Keyboards and mice

Have largely been supplanted by touch or gesture and consumer VR is becoming more and more viable every day.

Linux did eat the world, in the form of Android and all its variations. Every TV, most cellphones, many game consoles, and even your watch, are all probably running a Linux kernel.

(And there's also ChromeOS, eating the education sector.)

Linux in that case ate the embedded OS world. vxworks and so on. When trying to make a cheap device the OS can become the dominant cost. If it had not been linux it would have been one of the BSDs eventually. In those markets the margin is thin.
Keyboards and mice being supplanted by touch or gesture is only true for phones and tablets, which are new devices that really aren't equivalent to the general computing devices in the 90's: desktops and laptops. If anything, I'd say that tablets are just televisions that became small, light, and interactive, and smart phones are partly that and partly handheld gaming devices with multiplayer capability. Neither are equivalent to a computer (though they have computers built-in.)

Of course, as a software developer, I've always used computers differently than the masses. The computers I need are far more powerful than anything they need.

(comment deleted)
You actually nailed all the ones everyone missed, just missed the brand name.

What's your prediction for the next 20 years?

I’m embarrassed to say this on HN, but straight up I thought 9600 baud connections were the shit in the late eighties - who would ever need more bandwidth than this?!? Now I get pissed off when the 4K video on my phone stutters for a second.
I made fun of my friend for buying a 9600 baud modem. Because, _duh_: nobody can read faster than 600 baud.
I would be impressed by that. Our first modem was 300 baud, and that's apparently exactly the speed you can still keep up with the text as it comes in.
Calls us fools, but we thought Linux on the desktop would happen. I guess it finally did, in a way, with chromebooks.
> chromebooks

Huh, that's a name I haven't heard in a while.

WSL, on the other hand...

The idea of WSL would have been laughable back then. I'm really curious what other unthinkable things will happen in the next 30 years.
Check out Interix and Services for Unix. The surprising thing about WSL from a 90s perspective is that it's Linux-flavored instead of Solaris-flavored.
It was already there in Windows NT, had Microsoft been more serious about it, and very few would have bothered with GNU/Linux.
Opening up a Linux tab in the open source Windows Terminal from Microsoft would have seemed like dark magic to someone in the '90s. Or maybe I am a witch...
There are way more chromebooks in the wild than there are installations of WSL
If we constrain the market to US, maybe.
30.7 million sold just in 2020. 40 million has been forecasted for 2021. Various stats for the number of software developers on the planet cite numbers between 24 and 26 million.

MS doesn't, to my knowledge, post stats on WSL installations, but it's not 30 million+

I bet the amount of Windows PC sold worldwide beats that.

Yes not everyone installs WSL, because it is a tool for sell PCs to GNU/Linux developers that rather pay Apple and are neither buying Chromebooks nor Apple laptops.

Sure it did, google runs on Linux. Every time you go to google you are using Linux
My current company allows us to pick Linux or Windows. So for me, it did happen. Linux on the laptop at home and at work :)

Work laptop is a Dell, works fine.

Ubiquitous wireless networking and tablet computers. (That one came true!)

Programming environments based on something other than editing text files directly. (See the Self, Smalltalk, or Dylan environments.)

Object-oriented programming world domination. (That came true but we’re slowly recovering.)

Oh god, there were so many boneheaded 90s predictions about computers.

1) We just expected single core performance to double forever every 2 years or so. Many of us were ignorant of single-core performance scaling and the memory wall issues. I want to be clear: Computer Architects were warning people about this in the early 90s but many ignored their inconvenient truth.

2) 2D GUIs would evolve into 3D GUIs - maybe VR? Maybe something else? And the CLI would be gone

3) Low/no code drag-and-drop style programming tools would take away many dev jobs

4) Microsoft taking over and Unix dying

5) All programming would be object-oriented (We are talking 90s style definition here)

> We just expected single core performance to double forever every 2 years or so.

I don't get that. Moore's law is about transistor size shrinking, but that has an obvious end — transistors can't be smaller than one atom across. I feel like "everyone" did know that, even in the 90s. Or, at least, it was mentioned in every explanation of Moore's law itself.

> Low/no code drag-and-drop style programming tools would take away many dev jobs

I mean, they did, but they also created consultant jobs to replace the ones they took away. See: Salesforce.

The need to write source code can be taken away; but the need to do requirements analysis and deliberate architectural design cannot. So you end up with people who do 80% of a programmers' job, except for the coding part.

The expectation was low/no code tools would put many devs out of work and it would only be a niche job. The idea that we would have a decade+ labor shortage was unheard of until the craziness of the dotcom bubble (which then popped and people moved to assuming dev work would be permanently outsourced like textiles and never coming back due to high US labor costs)
People seem to be in a permanent state of lump-of-labor fallacy and not understanding comparative advantage. The current one is thinking we'll run out of jobs because of AI. (Their scenarios seem to end up with a few rich business guy types owning all the AIs and trading with each other while the rest of the world is somehow unemployed - which I'm pretty sure was the plot of Atlas Shrugged.)
> Computer perf was doubling from transistors getting smaller. But transistors can't get smaller than an atom. What did y'all expect would save you and keep things going?

We are nowhere near an atom well into 2005 at least, but things were getting pipelined and there was a ton of SRAM on each die, there were improvements to fetch pipelines (well, SPECTRE and friends really), everything was happening as fast as it could with out-of-order pipelines, with prefetch and every other speedup out there including auto-vec.

The "how big is an atom?" is sort of post-2010 thinking, at least the way I saw it happen.

Modems was one place where this sort of thing I saw personally happen - 9600 baud modems to 56kbps happened so fast and it almost looked it would keep going that way (Edge was 115kbps, now I can't even do a page load over it) with DSL suddenly dropping in to keep the same copper moving even faster again.

>Moore's law is about transistor size shrinking, but that has an obvious end

Yes, but by itself that isn't a single core vs. multicore issue. It's a process node question generally.

That said, Intel in particular did try to push single-core frequency at least a beat too far. They demoed a 10GHz prototype at one IDF--and other companies were mocking them for it.

The story that a very senior Intel exec gave me at the time was something to the effect that, of course, they knew that they were going to have to go multi-core but Microsoft was really pushing back because they weren't confident in multicore desktop performance in particular.

I’d argue that the larger problem is not that transistors can’t shrink forever, but that we stopped finding ways for additional transistors to usefully increase the speed of processors.

For example, these techniques improve instructions per clock, at the cost of adding transistors:

* pipelining (late 80’s early 90’s) MIPS R3000, Intel 486, Motorola 68040

* superscalarity (early 90’s) Pentium, DEC Alpha 21064, MIPS R8000, Sun SuperSparc, HP PA-7100

* out of order execution (mid 90’s) Intel Pentium Pro and later, DEC Alpha 21264, Sun UltraSparc, HP PA-8000

* SIMD (vector) instructions (mid/late 90’s) Pentium MMX (integer) Pentium III (floating point), DEC Alpha 21264

* multithreading (early 2000’s) Pentium 4, planned chips from DEC and MIPS

We also got improved branch predictors and larger, more-associative caches.

But it feels like most of that progress stopped in the early 2000’s, and the only progress is slapping more cores on a die. I mean, if you can put 8 cores in a consumer level CPU, you have 8 times as many transistor (give or take) as you need to implement a CPU. Nobody seems to be building a higher IPC CPU with 2x transistors, even though they clearly have the transistors to do it.

On the contrary, we got a number of improvements for novel workloads by first inventing new things we expected computers to need to do all the time (e.g. encryption-at-rest, signature validation), and then giving the ISA special-purpose accelerator ISA ops for those same operations.

> Nobody seems to be building a higher IPC CPU with 2x transistors

I mean, there are designs like this, but they run into problems of cache invalidation and internal bus contention.

The way to get around this is to enforce rules about how much can be shared between cores, i.e. make the NUMA cores not present a UMA abstraction to the developer but rather be truly NUMA, with each core having its own partition of main memory.

But then you lose backward compatibility with... basically everything. (You could run Erlang pretty well, but that’s basically it.)

> [...] number of improvements for novel workloads by [...] (e.g. encryption-at-rest, signature validation) [...]

Sure, but that's not helping the general case. Only specific types of workloads. You could argue that adding lots of special-purpose hardware doesn't hurt from a transistor count (we have plenty) or power perspective (turn them off when not needed), but it can make layout tricky and reduce clock speed (which slows down everything else).

> [...] cache invalidation and internal bus contention [...] NUMA

Sure, but the context from spamizbad was specifically single-core performance. (I probably opened up a can of worms by mentioning hypertheading). The problem is many real-world workloads that add business value are not embarrassingly parallel problems. If it worked like that, Thinking Machines would have swept the court since the 1980's (they had NUMA like you are describing).

The point is that, since about 2005-2010ish, single-thread performance has mostly stalled. Intel CPUs can issue slightly more instructions per clock. AMD has a slightly better branch predictor. But performance growth has mostly been the result of adding more cores (Except Apple's M1 has some magic).

The things I previously mentioned gave big IPC gains on a diverse set of real workloads. Some innovations, like pipelining and multi-issue were responsible for 2x-4x IPC each. Pipelining, in particular, was a trick that also helped clock speeds.

All those innovations happened between the late 1980's and early 2000's. So an observer during that time might have just assumed that similar innovations would keep coming. But they haven't. A Pentium III has probably around 15x IPC compared to an i386 (maybe 60x if you include SIMD), in addition to a 40x higher clock speed (some of which came from adding more transistors).

How can you add transistors (say 2x or 3x) to a CPU to double performance on diverse, real-world problems that don't parallelize well? My point is, I don't think anyone knows, so it is irrelevant whether there is a physical limit to transistor shrinkage. We don't even know what to do with the transistors we have, so who cares if we can't have more?

> Low/no code drag-and-drop style programming tools would take away many dev jobs

this is still something some of us think about today

We keep on chasing and chasing. I think the closest we’ve come so far is excel and most in programming scorn it instead of revering it.
IKR. Excel and the other spreadsheet variants are the gateway drug to software development. There is no other tool that has such a low entry to barrier and is so enticing to scale up into a ridiculously complex product. It eventually does get to a point that when the original user/developer is ready to change their job someone says 'OK can we turn this into a webapp or something... this is nuts. Lets hire someone from guru.com to do this.'
> Excel and the other spreadsheet variants are the gateway drug to software development

Ah, HyperCard ... RIP.

> 3) Low/no code drag-and-drop style programming tools would take away many dev jobs

I started programming as a kid in the early 90s, and went to college in the late 90s/early 00s. It might sound crazy in hindsight, but between these tools and outsourcing, everyone I talked to thought being a programmer was going to be a dead end minimum wage type job, and I was strongly advised by many to pick a different major.

During my college internship (2010) I was told that my CS degree would be totally worthless and I should focus on electrical engineering (though that would've been fine too tbh)...oh, and that I should put all the money I could into gold and guns...the dude was a nut is what I'm saying.
I mean, to be fair, gold has sextupled in price in the past twenty years, and Smith and Wesson is worth roughly 20x as much, depending on the point in 2000. So, yes, a nut, but not horrible investment advice, per se
In fairness, lots of tech jobs have died out like there are nowhere near as many system administrators, database admins as there were since the cloud has become bigger.

Equally, tools like Wordpress has killed off/deskilled the old 'webmaster' role - I mean sure, there are still people making money doing Wordpress sites for businesses but it's nowhere near as lucrative as it was at the start of the dot-com boom era.

> In fairness, lots of tech jobs have died out like there are nowhere near as many system administrators, database admins as there were since the cloud has become bigger.

Yes, now they are all Cloud admins.

A friend's mother, the only professional programmer I knew, told us that all the US programming jobs would be done remotely from China/India.

He: Civil engineer, ending up working in China (stealing their jobs!)

Me: MechE, but fell into data science, and now work with a local team that's plurality 1st gen Indian, and majority 1st gen non-US.

How would I grade her prediction? ¯\_(ツ)_/¯

dead end minimum wage type job

Don't worry, the big tech companies are spending ungodly amounts to make this happen.

Will probably be about as successful as last time.
What "last time"? They've been pretty successful so far. There's more programmer jobs today than ever.
I started my CS degree in 2000, I heard the same, companies would rather fly someone from India over then hire you. Also my CS advisor said "Java will be the only language anyone uses in 20 years"
(comment deleted)
> Low/no code drag-and-drop style programming tools would take away many dev jobs

When I was a kid my dad refused to teach me to program, he thought it would be a useless skill to learn because he believed in the future there would be no more programmers, as everyone would be able to program anything they wanted through drag and drop interfaces.

Was your dad a programmer?
He was an electrical engineer who loves computers and programming, although he didnt do software development for a living.
I expected RISC to overtake CISC much sooner than it did.

I expected IPv6 to be adopted quickly.

I expected 6GB to be more storage than I could ever fill.

I expected Windows to be quickly dismissed and Unix to become the standard.

I expected to have a screen built into my glasses by now.

Regarding screens in glasses: where is the hold up? I've been thinking of prototyping something for the past few weeks (only thinking, hence my question).
Well, Google Glass was launched big some years ago, and everybody mocked it.
The device was pretty slick, which it should be for 1500$ (Typical devkit prices I guess), I enjoyed recoding tutorials where I needed both hands - it reliably captured what I was looking at, and it was lightweight and didn’t get in the way, great tool.

Problem was the only stories about it were about the “glass-holes” walking into bars with a camera on their face. I thought it was an interesting “intervention” style art piece that showed people still expected obscurity, if not privacy.

Yeah and now plenty adults are running around with powered-up Tamagotchi's on their wrists. Probably the same people who laughed at google glass would insist on wearing it now or in the near future.
I think fewer people would have mocked it if it were in anyway accessible to ordinary folks. They set the wrong price point, which made it an easy target for ridicule because only 'rich' people with sufficient disposable income even had them.
It makes sense that the first version of something like that is going to be expensive, though. And compared to some of the high-end smartphones of today, it wasn't even that outrageous, was it? It was aimed at early adopters, which makes sense. If successful, prices would drop, cheap knock-offs would appear, and more people could afford it.
The built in camera had a huge creepy factor to it.
Enough battery for all-day power being able to fit in a device that doesn't look like complete shit (i.e. looks sufficiently like normal glasses or sunglasses) seems to be the problem.

However, as far as I can tell every major tech company still expects that problem to be solved and for them to be the Next Big Thing. I don't know why else they'd be putting so much money & PR into consumer AR efforts when it's niche at best, so long as you have to hold up a device to use it, unless they fully expect hardware development to come through in the nearish future and make AR glasses the next smartphone, in terms of becoming must-have and driving the next wave of human-computer interaction.

Well, someone has tried "screen in glasses".

I've tried the glasses from North, which has been bought by Google a few years ago. The projection of the screen on the lens looks cool, but the glasses had no traction in the market and the company tried to charge me C$1100+ for a pair of prescription smart glasses.

> I expected Windows to be quickly dismissed and Unix to become the standard.

If you count iOS and Android having a Unix core...

It hardly matters when POSIX is hardly part of the public SDK, no one is running CLI or init daemons on iOS/Android.
I remember talking in mid 99 about ipv6, while I was at a web company. Immediately on seeing it I said "this is crazy, and isn't going to take off". "Why not?" I got from some of the network folks there.

My response then is mostly as it is now - it's just too confusing to read and write. The UIs - even at the time - telling people to put in a dotted quad - were... manageable. 4 is an easy number to understand. Numbers only is easy to understand.

I still maintain that had some intermedia come out adding 2 (or possibly 4) more spaces and we transitioned from

187.43.250.198 to 0.0.187.43.250.198, and defaulted most UIs to just prefixing with the 0.0 then grew from there, we'd have had much faster adoption, and still given ourselves 64k 4 billion address spaces.

But... I'm not a network technician, nor am I on the committees... I'm just someone who's had to live with the last 20 years of "ipv6 is coming, we're running out of ipv4 addresses!!" and... the last 5-10 years of trying to mess around with ipv6 and realizing it's still mostly out of my control (home ISPs, ime, do not, support it still).

tldr, I never expected ipv6 to be adopted quickly. I'm surprised it's made it this far.

I have had native IPv6 at home for over 10 years.
our regional TWC didn't offer it, and our local spectrum doesn't offer it for residential. I can get it for our office now, and might, but my own desire to experiment/learn isn't there, and no one else in the office here is asking for it right now.
I've been working with IPv4 since 1993, back when getting a SLIP or PPP connection was uncommon. I set up my first IPv6 tunnel back in 2007. When properly configured, IPv6 is no more difficult to set up than a IPv4 connection with DHCP: It just works.

It's actually simpler than IPv4 in many respects. For example, prefix delegation: My router is getting an IPv6 /56 block from my ISP using DHCPv6. It is then handing out /64 blocks of on several different subnets with minor configuration.

The average user doesn't care about IP addresses. They're using DNS.

That's why we have the DNS. People know names, not numbers. Use AAAA records.
Today people don't even remember DNS names anymore. They just use the search engine/advertisement provider of choice. DNS is of course still very useful to separate service names from physical architecture so you can move stuff around. But I hardly ever see people typing in DNS names or using bookmarks these days.
> But I hardly ever see people typing in DNS names or using bookmarks these days.

How often do you watch other people browse the web?

I think you were right in RISC prediction.

Starting from some point (Pentium Pro I suppose?) even x86 CPUs became RISC internally CISC externally.

> 5) All programming would be object-oriented (We are talking 90s style definition here)

During the 00s and early 10s, it felt like it is.

On number 4… imagine the idea back then that Apple would be as big now
#3 - I believe this did happen much more than people realize.

In the 90s and 00s, every company with more than 1-2000 employees would have an internal dev staff. I worked in some companies with 20 devs, some with half a dozen, but there was always a dev team in the IT group.

Today, companies do low code via SharePoint and Salesforce. The do BI with Tableau and Power BI instead of internal BI teams. Their external web presence is done with Wordpress instead of a custom site. Sprinkle in some SaaS, and the internal dev teams of corporations are way smaller than they used to be, with some companies not having any internal devs.

Low-code also applies to the day to day management of web content. It used to fall to the 'webmaster', who needed to know HTML/CSS, maybe multiple scripting languages, cybersecurity practices, etc.

Now you can hire content writers with experience in using CMS systems and leave the security/infrastructure part of it to developers.

By the late 90s it was fully expected that Java would take over everything.

And it did kinda for a while.

Oh yes, servlets were such a breath of fresh air.

However that was more of an afterthought- I remember that when it came out I initially bought into the write-once-run-anywhere hype and the idea that Java was for writing applets.

The UIs were too clunky (AWT) or foreign (Swing, the second attempt) and the Java SDKs buggy so in the end HTML just improved faster and took over the presentation layer together with Futuresplash (later renamed to Flash).

> 4) Microsoft taking over and Unix dying

It only did not happened because they messed up with UNIX subsystem on Windows NT/2000.

Those that give Apple money to develop GNU/Linux software would be just as happy with the POSIX subsystem.

> 3) Low/no code drag-and-drop style programming tools would take away many dev jobs

I think it's safe to say that we were close with this one, with jetbrains java (awt / swing) and wpf / winforms visual studio.

Then dot com, mobile and responsiveness arrived.

#2 - remember the hype around VRML and how we would have virtual words in the browser?

I remember working with Silicon Graphics gear back then and the 3D guys were quite enthusiastic about it. Of course, we had all devoured William Gibson’s novels like Neuromancer so we were naturally attracted.

We even built some 3D desktop apps as portals to the wider internet. They were too static and too hard to build so the Internet with HTML had much more pull for producers and consumers as well.

In practice, I think the 3D stuff that really worked at the time was more games like Quake and avatar-based web apps like Habbo Hotel.

It would still be fun to go back and read Jaron Lanier’s writing from that era.

For #1, did people really believe this? In hindsight, granted, it just sounds obvious that the doubling would have to slow down pretty quickly. Was there some magical feeling in the culture that’s no longer present?
Definitely thought that consumer software (the thing sold in boxes on store shelves) would continue to get bigger as a category rather than die out completely. Anyone remember that famous photo of the guy jumping with joy after snagging a launch copy of Windows 95?

No one knew what the internet really was and what it would become. Not Bill Gates, not anyone else.

Developers believed that processing power, RAM, storage etc. would continue to grow exponentially to the point where there would just be too much of it and we wouldn't need to care about any resource constraints when writing code.

Writing code line by line in a text editor was supposedly on its way out, to be replaced by fancy IDEs, WYSIWYG, UML etc.

All the jobs were supposed to go to India. Programming as a profession has always been on the brink of death for one reason or another, and yet here we are.

Everyone knew the internet was going to change things massively. It’s just that nobody with any sort of power in the industry knew how exactly things were going to change. A lot of people overshot by trying to work on video streaming, video chat, document editors (Google Docs like) decades before the technology got there. Microsoft had a demo of Excel running in the browser by 1999.
>Writing code line by line in a text editor was supposedly on its way out, to be replaced by fancy IDEs, WYSIWYG, UML etc.

If you're using something like Visual Studio then that's is a very fancy IDE and a long long way from writing C in a text editor and dealing with arcane compile errors.

> guy jumping with joy after snagging a launch copy of Windows 95?

I was pretty excited about it too... And I was a kid in the 90s. I once worked with a guy who got excited about new releases of directx... Which I also admit could be a little exciting

Its funny I used to get excited about new API stacks coming out. They enabled such amazing things. Now I look at them as this thing we drag around, (hope you know the latest ones to get a job, and spend 4 months figuring it out). I look at them as this thing that will be quickly abandoned in 4 years and something I will end up supporting once the cool kids have wandered off to something new.
Innovation is exciting. Serious, exciting innovation in most of the computing world has ground to a near halt for over a decade now. Most things, hardware, software, web etc are just iterative, and often a step backward. Nothing to be excited about anymore.

In the 90s, not getting an expensive new PC every 2 years or so meant you were screwed if you wanted to play any of the cool new games coming out. I haven't upgraded my system in over 5 years, and I can still play most new titles with a few minor graphic settings turned down or off.

> Not Bill Gates, not anyone else.

Didnt Bill Gates send a memo to MS employees in the 90's that internet is going to be very important and they have to take it seriously.

Yeah, and they responded to it by launching WebTV and Windows Mobile. At least the latter became something of a market standard, although firmly in 3rd/4th place behind Nokia, BlackBerry and Palm.
Thought for sure windows would have been replaced with one of Microsoft’s concept OS’s

Did not see the workstation companies going away so fast

Disk storage and networking got really, really cheap

Did not expect such fast mobile phones (cpu and bandwidth wise)

I genuinely thought using a unix-style command-line was already archaic in 1998, and that GUIs were obviously better in every way.
I thought WebTV was on to something big, in my mind more people would be spending time in interactive environments/encyclopedias and playing with 3d toys in their living rooms instead of passively watching television

now people watch more static video content than ever and are damaged to a point where it will take a generation or two to recover if it all -- whooops

well I was about 10 years ahead of the first app-stores.. lol

Good grief

I was kinda hoping we'd have ubiquitous flying cars by now, but hey Uber right...lol

I thought that giving everyone in the world access to the sum total of human knowledge via the internet would be all upside.

And I thought that conspiracy theories were harmless fun.

I thought everyone in the future would spend their free time reading science journals, which I discovered via Usenet (because no one in my physical environment read them). Two decades later we elected a president who has said that climate change is a Chinese hoax and wind turbines cause cancer.
I mean, no amount of reading science journals convinced us to leave Iraq and Afghanistan until after we sunk multiple trillions of dollars into it and all we got out was an anti-American, pro-Iranian government in Iraq and the Taliban de facto ruling Afghanistan...
This. At bare minimum, a better-informed population that would be increasingly resistant to gov’t and corporate propaganda.

And in a sense, that kind of came to pass. Nobody believes _anything_ the government says anymore, and skepticism is at all-time highs. It’s just… everything.

I also bet very heavily against the widespread popularity of video on the net, not due to any technical limitations, but simply because reading is so much faster.

> a better-informed population that would be increasingly resistant to gov’t and corporate propaganda.

This never came to be, because it has one gaping flaw; it assumes governments and corporations wouldn't also figure out how to use the Internet.

I don't understand the use of video to teach many things. Particularly when it's not just a "Building this together" tutorial, it's a "teaching core concepts" video. You can't go back and forth on a video without quickly skipping through it, you really have to watch the whole thing. And listening to human speech is much slower than reading. I understand it for some things (Gaming, DIY, etc) but not teaching thinking subjects.
I hoped for a future free of Microsoft software, and free of UIs designed by software developers. I hoped for a future with no drive letters. The first two are successful: I use no Microsoft software in my life, and many user experiences are now designed by specialists. Although I don't have to deal with drive letters, it is odd that Microsoft still has them.
> Although I don't have to deal with drive letters, it is odd that Microsoft still has them.

They don't, really. The Windows NT kernel has a unified namespace — it's just not one with a filesystem at its root, but rather an object namespace, so users (and even developers) are almost never exposed to it.

C:\ is just win32.dll-wrapper-ese for the NT object path \\?\Volume{some-guid}\, where \\? is the NT object (local) namespace root. You can find the GUID of your filesystem in diskmgmt.msc and navigate Explorer to \\?\Volume{some-guid}\ just fine. Look ma, no drive letters!

Perhaps surprisingly, despite \\?\Volume{some-guid} being the name of a Volume object, what you find under \\?\Volume{some-guid}\ is a regular filesystem of Directory and File objects.

It's as if Linux was set up such that / was a hybrid of procfs+sysfs+devfs, and all the filesystems were accessed by going to /dev/disk/by-uuid/... and navigating "into" one of the block-device nodes there.

Awesome thank you for this, will dig some more on this, kinda interesting to me. Anything else you may want to share with us?

I use storage spaces on Windows 10 on 1 machine with 2 drives to mirror them.. so basically a software raid. It's pretty interesting and it just works, I don't have to babysit it. Same with Zfs mirroring. Wonder by how much these two software mirroring techniques differ from each other.

I was hoping for more even better UI's designed by programmers
Yeah, that is another way to go: that developers become substantially better at UI design. I probably won't be one of those developers.
Can you please expand on your dislike for drive letters? Why should we prefer to not have them? What will be in their place and how will it improve things?

Genuine question, trying to imagine how/why I would not want drive letters. Maybe each device should just use the uuid set by the manufacturer? But then that's too ugly to display in a file explorer.. and often I don't just have 1 partition per physical device, so multiple mount points.. and other times I have 1 mount point with multiple backing devices (mirrors/raid).

Definitely did not predict Javascript.
Probably a lot of people hoped for the demise of Javascript.
The alternatives back then were Java applets, VBScript, or Flash. Javascript was nowhere near the worst of the lot.
We wouldn’t make applications. Rather we’d deliver components which could interoperate via a binary contract.

Components would be “snapped” together by non-programmers to make an application.

I suppose that pieces of this became true with the proliferation and adoption of open source. Rather than a binary protocol, HTTP came out on top.

SharePoint brought us WebParts which tried to put the power in the hands of business users, but it turned out they were still too technical and not flexible enough.

I don’t see the role of software developer/engineer going away anytime soon.

This is really interesting and reflected in some things like dreamweaver and Oracle Apex.

I can actually see some of this happening in the crypto space. Things like MetaMask and now chainlink combining into some form of low code smart contract app tool. As you say though even in this scenario devs don’t go away.

Yes, it's very profitable for devs because you can just steal everyone's money, since the smart contract language was invented by people who did zero reading about safe program design.
So just like normal payment processing code then.
Except half the time the bank is also a scam and there's no legal recourse.
> Components would be “snapped” together by non-programmers to make an application.

I’ve seen this with tools like Zapier. I know many non-technical people that put together amazing workflows just piecing things together with webhooks and similar tools.

Bret Victor alluded to these pieces in his digs on APIs:

https://vimeo.com/71278954

Wow, thanks for sharing that!

Hearing him name drop terms like markup language, stylesheets and internet is mind blowing. If only the promise of “no delay in response” had been achieved :-)

> components which could interoperate via a binary contract

COM still underlies an abhorrent amount of the Windows architecture.

In the 90's COM didn't make a lot of sense to me because I never needed it. Then, around 2001, I needed it to solve some problems and I finally invested the time to figure it out. It's actually pretty neat as long as it isn't in your web browser (ActiveX).

Around that time I too thought I was seeing the future - component-based development that's language and platform agnostic.

COM was pretty neat indeed
UWP/WinRT is basically an improved COM, it never went away, rather took over most of the modern Windows APIs since XP.

Pity that WinDev keeps producing the same tools as back in MDIL 1.0 days though, the only good tool C++/CX, got killed by them.

At least it's possible to write COM in a measurable time. I did it in C++ although that was a pain. It became much easier in .NET.

CORBA - I did not even finish reading "Introduction to CORBA". A book of 500+ pages.

> We wouldn’t make applications. Rather we’d deliver components which could interoperate via a binary contract. Components would be “snapped” together by non-programmers to make an application.

This is how .net got it's crappy generic name. Back in it's early days it (and SOAP) was sold as the glue that would stitch all this together, just add a web reference and you'd have all this functionality in your project. It was incredibly disappointing to get through all this marketing and eventually realize it was just an MS version of java. Enterprise java beans, CORBA, COM and probably some others were also efforts in this direction. These days it's REST and microservices.

There was also OLE before ActiveX/COM and later DCOM. But the DLL’s were always a constant.
sounds like a beefed up unix philosophy, I think command pipes in the shell gave us something very similar to this idea way back, except that it doesn't really lend itself to complex programs like I think you're suggesting
> Components would be “snapped” together by non-programmers to make an application.

That's basically what Salesforce is.

I thought x86 was on its way out in the 90s. It was, but amd64 gave it a new lease on life.

We had search back in the 90s. Archie, Yahoo, Lycos, Altavista, etc. But Google brought better ... advertising.

What did I expect? I expected hardware to get better. I didn't expect the phone to be so dominant. The iPhone 12 to someone from the 90s might as well be a Cray tricorder.

Hardware is a LOT better now. Dunno if software is that different. JITs are crap; they re-invent the same thing over and over. Linux re-invents what VMS and other commercial operating systems have already done. Most progress has been either hardware or enabled by hardware.

I expected distributed parallel computing to be the norm, for software to get faster, not slower, and for advances in algorithm design to lead to more efficient, robust, advanced solutions to common problems.

We still build ETL pipelines to process text files into new text files on a single machine like it's 1995. Oh, but it's a virtual machine now. Progress?

When building ETL tools it struck me how much it looked like what mainframes did in the 60’s before timesharing and terminals became the norm.
Run Perl in the browser!
I wanted this to happen so much. I really thought type="javascript" meant that other languages would become available, and that Perl's dominance server-side and embed-ability meant that it would definitely become a client-side option.
How much spam there is.
Funny enough I thought the whole idea of public communication areas might be washed away by a constant deluge of spam of the old "Vi4g|2a" sort.
I did not expect the internet would become so ephemeral.
This hit me the hardest. We are becoming the feed.

And we're going to find out just how short attention spans can become and how information overload interferes with memory formation.