Thursday, April 02, 2009

Why Linux sucks?

It is a strange world, I'll admit. One thing that I tell people looking at adoption is "get ready to relearn everything you thought you knew about your computer". I find your signature particularly ironic because I think Linux philosophy has many close parallels to the philosophy of conservatism and virtually immune to the damning effects of democracy.

One of the things that I feel has hurt Windows over the years is that Microsoft has lost touch with what works. Development is strongly driven by criticism, and what people want is what they will get. This is most apparent in Vista where their top down development model was strongly influenced by user feedback. It SEEMS like a great idea, and honestly it is almost difficult to understand why it failed so miserably.

This is where Linux takes almost the opposite approach, but 'approach' seems to imply a type of central control that does not exist, but looking past that; Linux is COMPLETELY decentralized. Not only is development bottom-up, but so is influence, criticism, standards, motivation, and anything that might be interpreted as 'marketing'. With the money being removed from the structure of Linux development, it is really one of the purest / idealistic forms of liberty to have ever existed. While today I don't think many fundamentally understand the difference between Liberty and Anarchy, I think many are dumbfounded that a pure merit based system that completely relies on personally responsibility could have accomplished anything. I consider myself a pretty hard core libertarian compared to some (but that may have something to do with living in California), but as I get more involved in Ubuntu development, I often don't understand why anything developed this way doesn't just cause all my hardware to burst into flames.

On the flip side, you can only get so far making people do things they don't want to do. In Linux, If I want something that doesn't exist, it is my personal responsibility to develop it or get it developed. Yelling at the computer and flaming message boards only gets you so far, and it should be of little surprise that no one is intimidated let alone motivated to rush out on their free time fix that issue for you. At the end of the day, someone must actually write the code, and do all the things that are involved in getting that code to you, and in by far MOST cases, writing a code patch and emailing it to you won't be good enough. You don't want me to code it; if you use Ubuntu, you want me to write a blue print, register the appropriate branch, put together a team, write the code, debug it, test it, share it, get it reviewed, revise it, propose for merge, voted on and approved, merge, package, and integrate into repository; and as if that wasn't good enough, you want it for your platform, back-ported, automatically updated on your system, and then maintained indefinitely. Sorry, but the only way I am doing that in my free time, for free, is that I really want it myself, and even then, if we disagree, if I am stuck doing all the work, I am going to implement and design parts however I feel like.

So while it may seem really rude or a brush off when people say "do it yourself", it isn't that they are heartless or lazy, I think they are really trying to save you some effort. If you consider the greatly consolidated steps mentioned above as 'X', and 'Y' as the amount of effort it may take to convince someone else to do the work, does it really need to be explained that 'X < X + Y', ALWAYS. The common defense is that 'X' is somehow less for a seasoned developer than for a novice / non-programmer. Sure, but why is that a problem for the developer? Further, which programmer specifically subsidize your ignorance? Are you asking me to do it? Hmm.. let me check my inbox... nope; let me check my launchpad account for new blueprints or teams I have been subscribed to... nope. *Whew* well that was a relief. You must have been talking about someone else.

If you don't want to develop, and you don't manage a team and pay for development, and you kinda just want it to work, people will be happy to let you know that a that level of influence, and that level of personal responsibility, that level of merit earns you "whatever exists". No one dictates these rules, it is just nature. Imagine being stranded on an island, whose responsibility is it that you survive? If ALL your faith is in the coast guard to come bail you out, you could put all your effort into waiting patiently, screaming at the sky, or setting the island ablaze to get their attention. Any of those things may very well be effective. In this brave new world we live in, you will likely be lucky enough to be picked up on a big brother satellite that will see your movement and come out to investigate what you are doing there before you even realize you aren't in Hawaii. But what if they DON'T rescue you? Is your last dying breath going to be made writing a letter to your senator via bottle, explaining your martyrism to poor naval patrol? And while after you are long dead and there is some boat out there named in your honor, maybe you could have taken a little effort to just see what kind of resources are available on the island that could be out to use to start a new life for yourself.

Yeah, personal responsibility is a bitch that way sometimes, huh?

The thing I find interesting is that all bureaucracy is optional. There are great standards, and the only punishment for not following them are completely intrinsic; rare are there real rules with real consequences compared to so many things are fake rules with fake consequences made up by people in the name of "the greater good". Sovereignty and liberty are strange creatures.

If all this seems somewhere between 'too much work' or 'fan boy drivel', and personal responsibility is unrealistic or just a buzz word, then it really doesn't matter what OS you pick and more than your vote actually means anything in an election. It will always come down to picking the lesser of two evils, and being upset either way.

And really, in such a case, I'll agree that Linux is likely your worst possible choice.

No comments: