Refers to the increased complexity of software. Modern operating systems and applications are huge in size and complexity in comparison to the software products running in the first personal computers back in the late 1970s and early 1980s.|
Larger with Each Version
Software tends to get larger and more complex with each version. It is due to many reasons, including the ever-increasing capacities of the computer's resources (memory, disk, network, etc.), which allow programmers to become much less concerned with conservation.
It is also due to the increased number of functions placed in an application for marketing purposes (see bloatware), most of which are not needed by 95% of the users. Another major reason is human nature. People love to do their own thing. The more designers and programmers try to reinvent the wheel, the more effort it takes to put it all back together again. Modern operating systems have to deal with the myriad patches and variations made over the years to accommodate the major applications, which tend to hang on for years longer than expected. After numerous versions, a program's logic can become unbelievably convoluted. See Wirth's law and Freedman's law.
A Note from the Author
From 1963 to 1966, I worked for the Pennsylvania Drivers License Division, programming an IBM 1401 computer. One of the most successful transistor-based computers of its time, our 1401 managed the data for all six million drivers in the state.
The machine had 12K of memory. That's 12,000 characters (there were no bytes then). The master file of all the drivers was some 40 odd reels of magnetic tape (I do regret not taking more pictures back then).
The point is that our department never ordered the extra 4K memory module from IBM, bringing the machine up to its whopping maximum of 16K... it cost many thousands of dollars, and we never found it necessary. Our programs, written in IBM assembly language, first on paper and then transcribed to punch cards, were extremely compact. We saved instructions wherever we could.
There was no graphical interface because there was no screen. We had to get printouts of the contents of memory to debug our programs. We didn't even have an operating system. What for? We just wrote our own input and output routines.
But, we processed an entire state!
Know anyone these days processing a state on their desktop computer with 250,000 times as much memory as we had back then? Software bloat. You betcha. Happy computing!
Looking rather geeky (on the left) in those days, I was clowning around with our IBM tech rep for this snapshot. IBMers were always on staff at our installation. Having the relatively new title of "computer programmer" in the early 1960s, we were obligated to wear suits. Love that tie!