Blog / 150 Million Reasons … A Rainy-day Topic About Why Microsoft Software Needs To Be Upgraded.
It’s summertime in Alberta and that means the rains have started. I’m most likely not the only person who spent Canada Day indoors watching the downpour. With summer comes time for an article or two about WHY. The recent announcement that Microsoft are retiring Windows 7 and a host of server operating systems and applications, have spawned more than one WHY question.
Many users are suspicious of software vendor motives, preferring to think it’s just an excuse for a cash grab. However, over the years, I’ve been involved in more than one software development project, and so I can offer a glimpse into why software needs to be updated, what’s involved – and why it periodically needs to be replaced with a whole new system. The short answer can be summed up in three words: Compatibility – Security – Features. But that hardly does justice to understanding the true “why” behind the constant cycle of upgrades. Let me put a programmer’s perspective on this, to help you understand the complexity of software development.
Software is usually written in a pseudo-English language that forms the instructions to make a computer “do something”; the Software Development Language (SDL). Of course, the CPU doesn’t respond to English, so the code is compiled into digital machine instructions by the SDL that the CPU understands.
Many of you will remember writing simple programs in “BASIC”, as part of a Physics school course. If you look at the written code, it looks more like poetry than a storybook: Lots of short and repeatable lines with odd-looking punctuation. You’ll also remember that one comma or letter out of place would cause the program to be unpredictable or precipitate it to fail completely.
A very general way of determining the overall complexity of a software program is to count the number of lines of code. Software engineers will warn that counting code lines as a measure of software complexity can be misleading, but it will serve our purposes. Our BASIC programs from school had a couple-of-dozen code lines; at most – fifty. MS-DOS (Disk Operating System) version 1.25 was Microsoft’s first computer operating system released in 1983, and it had just under 14,000 lines of code.
By conservative estimates, Windows 7 has 50 million code lines. It takes a small army of software engineers, design specialists, and testers to maintain this code. With this much code, there are bound to be mistakes; perhaps many thousands, that we call bugs. Some bugs are apparent in that the program doesn’t perform as the user intended. Other bugs are hidden and may affect the way information is processed and stored. Hidden bugs are what hackers exploit to gain illegal access to your computer and cause a Cyber Security Breach.
In addition to bugs, programmers often take intentional shortcuts to make processing an instruction faster or easier. It’s a constant trade-off between speed, reliability, and security. Still more problems arise when 3rd party code – called software libraries – are embedded in a larger application. A typical example is a print driver. Rather than Microsoft writing the instructions to send a document from Windows to a printer, the printer manufacturer provides the software code library that specifically interfaces with the new printer and its features. But it can introduce its own bugs.
And then there are advancements in hardware. Chip manufacturers strive to change the way CPU’s process instructions in search of greater speed. They add capabilities and processing cores. This means that software programmers must adapt to new code instructions and ways of designing their software, if they want to take advantage of the speed and capability of a new computer. This can lead to a complete re-design of the software.
So far, we’ve focused on the Windows operating system. Of course, a popular application like Office has its own code base, estimated to be about the same number of lines as the Windows operating system. Windows 10 is estimated to have about 65 million lines; add another 60+ million for Office, and then throw in another 10 or 15 million for some other applications (Adobe Acrobat, Google Chrome, and Trend Micro Anti-Virus for example), and you quickly get to 150 million-plus lines of code making up the software on your computer.
It’s a minor miracle most software works as well as it does.
Software development is a constant tension between eliminating bugs to improve reliability and preventing Cyber Security breaches – and adding new features to take advantage of the hardware improvements and user demands.
Once released to the public, software engineers keep their code up-to-date by releasing
patches, which are segments of code with new lines to address a bug or add a feature. However, patches often involve compromises – fixes on top of fixes. Microsoft release software patches for the operating systems and applications, about once a month.
Sometimes, you have to start over with a completely new code design that is optimized for new hardware. That’s when you see a new version – I.E.: Windows 10, Server 2016, or Office 2019.
Microsoft are well-paid for their software and services; as their deep pockets and global reach will attest to. But it’s not an easy task and considering the incredible strides in computing technology within the last decade alone, I don’t begrudge them a few of my dollars for their efforts. However, I do get upset with yet-another-round of Windows Updates that take over my computer with increasing regularity!
In the coming months, we’ll have much more information about the best way to prepare for the Windows 7 retirement and upgrade to Windows 10. We’ll also have some advice on the other Microsoft server-software retirees. Should you have questions, please contact me or your TRINUS Account Manager for some stress-free software upgrade help.
And, as I write this, it hasn’t rained (yet)…