Year after year, developers all over the world donate their expensive time to rich corporations like Microsoft or Linden Labs for free... and for no added value to themselves or their products. Not only that, but the time and money also just get thrown away by the corporations they donate it to! Why? Let's see.
Let's take Microsoft as the first example.
Every time you design a web site, you can do it one of two ways: standard-compliant, or Microsoft. These two are mutually exclusive, since Microsoft decided to take the otherwise standard tags, CSS rules etc, and render them differently from everybody else. There are scores of websites dedicated to how to work around "misapplications of standards" (which are, in my opinions, bugs and not a separate class of problem.)
Every web designer who wants his website to be viewed both by IE users, and by everybody else, basically has to develop his web site twice, or at least spend a lot of time learning the incompatibilities of IE to other browsers, and IE7 to IE6 to IE5 and so on, and ways to make his web site work with every one of those more-or-less properly -- since all of those browsers have different sets of problems. Most people I know who stopped doing web design, have stopped for this exact reason.
Why does this problem exist? Because Microsoft considers it more important to fix some bugs then others (as can be read frequently on Chris Wilson's blog), completely disregarding the fact that fixing some bugs will either make IE-recognizing code fail, or the browser will be recognized as IE but will not render the web page as expected, resulting in the necessity to add yet another version of the same web page, to cater for yet another partially correct version of IE. (See also, IE8 announced. Opt in? Does this mean, I have to go back to all my pages and add new code that will cause IE8 to render it the same as Firefox already does it?)
To sum it up: because Microsoft doesn't want to invest money in standard compliance, every single web developer has to invest money out of his own pocket to fix Microsoft's problems.
WOW! This is a perfect example of capitalism: extracting surplus value from somebody who isn't even your employee!
Except... the amount of money wasted worldwide in this operation is -- even by a conservative estimate -- hundreds of times larger than the amount of money Microsoft would have to invest to fix the problem. (Just compare the number of website developers worldwide that have to cope with the problem to the amount of developers working on IE.)
And with this, we arrive at Linden Labs.
There has been a lot of attention to Second Life, the Linden Labs' 3D environment, lately. As I noted earlier on a different blog (I will re-post it here eventually), Second Life is neither unique, nor technologically more advanced than similar solutions (e.g. There.com). What makes them unique is that creating new content is really cheap: the environment has a (crappy) built-in object editor, and uploading new textures costs only L$10 -- about 3 cents. They also allow you to sell stuff, and earn L$, which can be easily converted into real (US) Dollars, at a price.
Many a developer starts, starry-eyed, to develop new content for the system, thinking of what great things you could potentially do in a 3D environment. Some of them do manage to create decent things (and some of them, even, to sell them), before they ultimately collide with the technological barriers of the Linden Scripting Language and Second Life physics. Which, to put it gently, suck ocean liners through cocktail straws. For example, until March 2007 you could not create animals that actually moved their legs, without writing a distributed swarm-like system of scripts -- one for every joint. And if you actually manage to write something that doesn't collapse under the weight of its own code, you would discover that the physics system has bugs that prevent the "animal" from working properly anyway.
But I digress.
The really interesting fact about Second Life is that most of the content
- every time you upload anything
- every time you change dollars into L$
- every time you change L$ into dollars
- every month -- if you "own" a piece of virtual property
In fact, now that they open-sourced the Second Life client, they don't even have to maintain their 3D client themselves, as hundreds of enthusiasts are fixing their code for them too -- donating their time to a company that is bathing in money. Money enough, in fact, so that they can just buy additional servers, and not worry about the fact that the server code is as inefficient as it is... But that is a subject of a different discussion.
And you know what? They waste most of the users' efforts, too.
Almost every Wednesday, the entire Second Life network goes down for maintenance. When it comes back, often enough, many objects that worked perfectly before, don't any more. Because, for example, a five-year-old bug that everybody had to work around, and which had been incorporated into every moving object as a feature, got "fixed". Which means, just as with every version of IE (which, luckily for us, doesn't come around quite that often), every programmer has to check every script after every update. Not many do, which means that a significant percentage of scripts, objects and weapons in Second Life are broken at any given time.
The interesting difference between Linden Labs and Microsoft is: Microsoft is just a wannabe monopolist of the Web, while Linden Labs has absolute control over Second Life. Linden Scripting Language is their own invention, used nowhere but in Second Life -- so if they choose to say "everybody uses this, we should not fix it", nobody would complain, because unlike the case of Microsoft and the web standards, it would be a fact, with "everybody" actually being 100% of Second Life developers who use the given function, since there is no alternative.
So, what do we learn from these examples?
If we donate our time and money to corporations that don't actually need it, they will not say "thank you" -- they will, in fact, not even think about it, respect it, or pay any attention to it.
So if you are a developer... just don't do it. If you want to donate your time and your knowledge to something, choose an Open Source project. At least in this case, the user community will profit, instead of it being a complete waste of your time.
No comments:
Post a Comment