It seems, year to year, that we have not less, but more compromised businesses, Facebook scandals and data hacks. There's a few mitigating factors; rising crime online as old-school mafia and gangs gradually acquaint themselves with new ways of defrauding people. A rise in India, China, Pakistan, Russia and Mongolia of scam-based enterprises (those phone calls you get 'about your computer'). And of course there's the proliferation of the internet in almost every aspect of our daily lives, from banking to satnav equipment, to fridges!
But another big reason is complexity. As software grows it has to accommodate new patterns of use, new scenarios; and the more scenarios it is used in, the more complex it becomes. Theoretically, with software it should be easy to restructure back down into a simpler model once it becomes too complex.
But business practices and pragmatism often get in the way of this. Take Microsoft for example; their internal motto used to be "extend, embrace, extinguish", a code for working with companies making technology that got in the way of their business interests. And one of the ways they achieve this is by supplying proprietary software frameworks that programmers have to use in order to build software for Windows.
That makes it tricky for programmers to develop the same applications for other platforms like Mac or Linux. But the major downside of this is that Windows is now awash with old technologies that they initially developed in order to screen out competitors, and then they had to support for all future versions of Windows. That means there's more places a hacker can get in.
The same principle applies to web browsers, which have had to support a myriad of different technologies as the internet developed over the past 30 years, and now are unwieldy beasts which must be updated every week to prevent something breaking. At some point people have to say, "enough's enough", retire old technologies and risk annoying a few people who're still using those things. Otherwise our software just gets too complex and slow.
With that technobabble out of the way, what's the takeaway for you, as the consumer? Well, software companies like to tell you things are better when they're newer, because that's how you sell product. But often newer simply means less well-tested and more insecure. Because software companies are always expanding the number of features they have, they increase their complexity and create more opportunities for bugs and security holes to arise. So avoid excessive software which tries to do everything if you can, like Microsoft's Outlook or Adobe's PDF reader.
Instead, look for lightweight, stable, focused software which does only one or two things, but does them well. A good example of this is Mozilla Thunderbird (an email client) or Sumatra PDF viewer. Larger software companies tend to make more complex software as they have greater numbers of users to cater for, with more scenarios. Smaller companies will tend to make more more simpler software. In general, you should only applaud a developer when they make their product smaller and better, not bigger or newer.
Click here to go back to the main page.
© 2019 Matthew Bentley. All Rights Reserved