Back in the good old days, everyone who owned a computer was either a crazy Rissian hacker kid with 1337 skills, or an FBI agent under cover. and they would tinker with their computers in every imaginable way. No sane normal person in their right mind would get a computer, because computers didn’t do much back then, and costed an arm and a leg. Nowadays, computers (not only desktops, but also cellphones, handheld consoles, embedded, etc) are dirt cheap, and everyone has a few. People would get a computer just to check emails, browse the web, or play a few games. For the average Joe, that’s good. More accessible technology and all that. For us (potential hackers/programmers/developers/computer engineers…), though, I think it’s a Bad Thing ™.
An ancient geek joke goes like this –
Programming today is a race between software engineers stirring to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning.
Sarcasm aside, I think it is sadly quite true.
Nowadays, people has largely taken the “big brother” approach to the developer-user relationships. Developers make things that “just work” (that’s the intention, anyways), and hide as much as possible from the user – dumbing down the interface, expose as few options as possible, and make error messages as cryptic as possible, so that users will have to rely on developers to fix their problems. Modern developers are trying hard to distance themselves from the users, for the sake of what they claim to be professionalism.
The problem? Well, in this time and age, when we are surrounded by computers all the time (cellphones, PSPs, iPods, laptops, refridgerators, Roombas, cats, dogs, bats… uh nvm =P), one would think it should be a heaven for computer-inquisitive people. That’s not the case. Take, for example, the PSP. With a MIPS-based 333mhz CPU, 64MB RAM, 4″ screen, and wifi capabilities, possibilities should be endless, if you happen to be a programmer. It’s like a ultra-ultra-portable computer… if not for Sony’s dirty business decision to restrict the PSP to only run code from game companies who paid large sums of money to Sony just to get a digital signature. Sony has essentially and intentionally dumbed down the PSP to just a game console, when you have paid for the hardware! The same can also be said for cellphones (Java 2 Mobile Edition requires applications to acquire digital signatures, for a fee, to unlock many useful library functions), and iPods (Apple even went as far as encrypting the firmware to block attempts to run unsigned code). I have attempted to program for all those platforms, with varying degrees of success. It’s not easy. You have to first wait for Russian hackers to crack the “protections”, which, contrarily to what they want you to believe, are not for the users’ privacy or security, but for the companys’ business interests.
The situation is not much better on the desktop side, although we do enjoy the luxury of being able to run aribitrary code. For instance, Windows, a somewhat popular OS made by the only company in history that can get away with treating all their paying customers like criminal suspects. Just because you bought, with your own money, a computer and a copy of Windows, does not mean you have control over your computer. It can still automatically restart your computer while you are taking a shower to install a Windows update, because it thinks it is smarter than you, and updating Windows is more important than your unsaved work. It can also refuse to play your music or videos that it suspect was pirated. Or, it can force you to phone Micro$oft after a Windows reinstallation due to virus infections, and threaten to lock your computer up otherwise. It’s amazing how this OS works, and its market share is equally amazing.
I think the root of all evil is the fact that our computing industry is controlled by a few big mega-corporation, with very little competition. They are simply trying to meet the expectation of the average Joes, because that’s where the money is. And the average Joes don’t want to get their hands dirty. Because programmers are in such a small minority, they don’t feel motivated to meet our needs, by making things developer-friendly. They probably wouldn’t have implemented accessibility features, too, for the disabled, if not for laws and regulations.
The solution? Unfortunately, I have no idea. I personally use as much opensource/free (both as in speech and as in beer) software as I practically can – GNU/Linux, OpenOffice, GIMP, Firefox, Thunderbird, and much more. Developers-users relationships are much warmer here. I have personally talked to a few developers of programs I use, and asked them to implement features or fix bugs for me, and they have actually done so. I have also done the same for users who emailed me about my programs. Try to convince Micro$oft to add a feature to Windows for you, and see what they say – you probably won’t even get a reply from a real human being. Open source softwares are truly user-oriented, because they don’t need to satisfy business agendas, and really transfer the control back to the user. You generally won’t find nonsenses like those mentioned above in free software.
Free software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and that manufacturers of consumer-facing hardware allow user modifications to their hardware. Free software is available gratis (free of charge) in most cases.
Put the fun back to into computing. Use Linux, BSD. 🙂