DivisionByZero.620: The last few years have seen an unprecedented increase in digital abuse against the average person.
-Government intrusion/snooping/"e-spying" is on the rise, both in Western and non-Western nations.
-Corporate snooping and collaboration with government snooping is also on the rise.
Corporate authoritarianism and government compliance with the later has been on the rise for at least 3 decades.
The internet is no more immune to it than other facets of your daily lives.
DivisionByZero.620: -Every year there are an increasing number of vulnerabilities found in various operating systems and even network-enabled devices that people wouldn't normally think of as computers. For example, about a month ago there was a news article about a flaw in a vehicle's software that allowed some types of dangerous remote control.
Even if you're tech savvy and your computers/network never get compromised, there's always the chance of losing privacy if a web site that collects any data about you gets compromised.
Usually, companies only rush to deploy software patches to close highly publicized or particularly dangerous flaws.
The vast majority of software flaws tend to be slowly patched or even swept under the rug.
For web sites, companies truly are irresponsible with user info.
They collect more info than they need and fail to discard it when they no longer need it.
Again, I find it's yet another syndrome of corporate authoritarianism. Laws are lax when corporations are concerned and thus, corporations are no longer accountable.
For security overall, the sad truth is that most people are not that security savvy and they don't care.
While they won't go with software that they know is compromised, they will accept uncertainty for a discount. You give them a piece of software that went through rigorous security testing at 150% the price and they'll opt for the less secure version.
Also, the pace of technology is crazy. New things keep coming in all the time which makes current software perpetually immature and prone to security flaws that get ironed out over the years.
DivisionByZero.620: A lot of software companies prioritize implementation features and functionality with rewards. All too often, quality checking and testing go underappreciated, earning fewer rewards, promotion, and recognition.
Conventional wisdom in the industry says that you have to reward innovation in features and functionality to keep competitive. The result: Massive amounts of flawed/low-quality software that gets patched whenever any of these occurs:
(A) enough people demand that the problems be fixed
(B) the developers get around to it
(C) delaying a patch would damage profits too much
(D) the government orders the company to deploy a patch ASAP
Part of it is corporate greed, but as said above, part of it is that end users don't really want to pay for security and that current technologies are perpetually immature.
DivisionByZero.620: Another modern software development paradigm: Computers and programming tools keep getting better. While it's a convenience for everyone, it has the side effect of enabling people who really shouldn't be programming to program.
A lot of programmers are incredibly selfish. They don't spend the time to document their code and they generally don't code with the idea of a newcomer looking at their code from the outside.
Part of it is competence, but part of it is that software developers don't really care about what happens to their current employer once they move on to another place.
Believe me, I've worked with enough "It's my code. *I* know what it means. I don't give a shit about you." code to know.
DivisionByZero.620: With modern hardware and software, programmers can afford to write incredibly shoddy software with no problems visible to the end-user. Often, it's easier for companies to hire lousy programmers for cheap and "throw hardware at the problem" than to pay big bucks for really good software engineers.
The hidden problem: ****ty low-quality programmers tend to write ****ty low-quality programs, which may be riddled with structural problems and/or dangerous defects.
You know, I can live with software that is not optimised to pump all the juice out of the hardware if the usual hardware the software will run on is more than enough.
If you're gonna spend an extra week to get an extra 5%-10% performance, it's probably not worth is for most real world use cases.
What really pisses me off is: code that is not maintainable, code that is incorrect or code that is insecure.
DivisionByZero.620: And guess who gets to use the ****ty low quality programs?... The customer.
-------------------------
#3. A lot of people demand free software no matter what the hidden price is
There's a lot of crappy "free" software out there that really isn't free. For example, on Android, there are way too many apps that are "free" but they snoop on the user, spawn advertisement popups, etc.
Another problem: There's no incentive for a developer to maintain a free program.
Yes there is. There is no incentive for a developper to maintain a free end-user full fledged application.
For lower level code (databases, OSes, libraries, etc) that see lots of re-use across multiple projects, you see many vibrant communities working on those mostly for free.
DivisionByZero.620: Oh, and it gets even worse. There have been plenty of reports of similar crap in Windows 10 (advertised as a "free upgrade" for some Windows 7/8/8.1 users).
-Some built in programs having microtransactions. I found an article about Solitaire in Windows 10 having advertisements until you pay a fee, and the default DVD reader software being paywalled.
-An extensive laundry list of data collection (read: snooping) features that are enabled by default. It takes a well-informed or tech savvy user to find them all and disable them.
Ditch Windows, go with Linux.