Occasionally I read stuff about programming to see if there are any new ideas under the sun. Often articles written about the process of writing software are amusingly bad, and I found an example recently called On Modern Software Development about how the business of programming has changed in the last couple of decades.
I'm old enough to remember quite well what programming was like a couple of decades ago. Some things have changed, some things havn't.
"In the old days, things were very clear. Windows was the operating system and a computer was a desktop. No smartphone, no tablet, no cloud."
In the 1990s there was however something called the "personal digital organizer". A company called Psion made the most well known models. There were also Palm Pilots. These were the forerunners of the smartphones and tablets which we have now. They were also quite popular and used by businesses. One of my first software jobs included extracting data from Psion handheld computers and feeding it into accounting systems. So it's not the case that computing in the 1990s was a homogeneous landscape of exclusively desktop PCs.
Yes there was Windows, but there was Windows 3.1, Windows 95 and Windows 98, all of which had their own unique foibles. One of the major themes of that time was also the clash between people who favoured DOS and the command line and those who favoured the Windows GUI. DOS was considered more reliable for serious business uses, and it continued to be used and developed for throughout the decade.
"You had to rely on your skills and the books on your shelf."
That much is true. Giant programming language reference books were common. I'm glad that's no longer a thing.
"Open Source had barely begun so you actually had to pay for the software. It is quite understandable that this time-consuming process gave no other choice than to implement lots of functionality on your own."
It's not the case that most software in the 1990s was written from scratch. There was definitely a market in software components, such as dynamic link libraries or ActiveX modules. The commercial software development which I did in the latter half of the 1990s was mostly not about writing things from scratch in C, and I actually do much more of that now than I did back then. I was often using languages such as Visual Basic together with various pre-built libraries.
So this characterisation that software development 20 years ago was on homogeneous platforms and typically about writing everything from scratch requiring expert knowledge of algorithm optimisation is just wrong. I'm also pretty sure that my experience back then was not purely parochial, since I got to see how software development was being done by some big companies and the sorts of problems they had.