soeren says

Remix

October 27th, 2006

The WordPress website states that “Code is Poetry”. I think that, more generally, good code is art.

Now, by ‘good code’, I certainly don’t mean something that resulted from commissioned work with unrealistically short deadlines and ludicrously complex goals. I specifically mean the type of software that developers pour their heart into. That kind of code is an art, just like a song, a painting, a novel or a poem.

That makes the honest, devoted developer an artist, and much like a song-writer, painter, novelist or poet, such a developer consider his work their child. Therefore, it must meet their vision, their standards, their ideals, just like a good parent would try and teach a child their vision, standards and ideals. If the child turns out differently, one could almost call it impure.

Unfortunately, reaching purity in a software project is an arduous process. After a bit of experience, one learns that, almost invariably, the reached goals deviate from the original ones, and you might as well forget about setting a deadline right from the start, no matter what. If you set the deadline too conservatively, you will want to use the added space and time you gave yourself, and then you still won’t meet it. If you set it too strictly, you will miss out on a feature or two, if not a dozen, and you will be dissatisfied with reliability, you will want to fix those problems, and then you won’t meet the deadline either.

Setting artificial dates for when you ought to be done is futile; this is not just the case for hobbyist projects, but also for big-corporation massive ones (Windows Vista being an example with massive press coverage on this problem). The reason, once again, is in the artistic nature of code. Some will have you believe that code is logical, rational, and ultimately based on mathematics — they may feel free to think that, but I don’t think they have much real-life experience. You can perhaps predict with reasonable accuracy how long the implementation of one particular algorithm will take you, but to foresee the same for the amount of algorithms you’ll need, let alone which ones they’ll be, is near-impossible. As has been known for decades, the formula of “if we have twice as many developers working on it, we can cut the deadline in half” doesn’t work either; in extreme cases, that strategy will go as far as to further extend the deadline: more artists always means more division of opinions.

So, absurd as it may sound, the reality of software development is that you, as a developer, don’t know the slightest bit about what you’ll end up writing, how you’ll write it, and how long it will take you to perform that work. And you have to make this clear to yourself right from the start: practise, in this case, doesn’t make perfect. It enables you to look up API functionality faster, and to come up with optimization tricks earlier on. But it does not take any of the real thought processing away. Practise does not take the art away.

Some developers hold their child so dear that they feel they must protect it at all costs. This, again, is something all artists do: they have a tendency of becoming egomaniac; over-protective; afraid of competition. They start looking at other artists as rivals, not inspiring, fellow minds with similar ideals and just the same amount of genius.

In the realm of music, this is most evident with covers and remixes: based on another song, therefore evidently sharing some of its original inspiration, yet different, and perhaps ultimately resulting in something the original artist will dislike, often to an unreasonable extent. Many songwriters, even today, feel that such re-workings of their works ruin the experience, or that they are even a form of theft. They feel the need to limit and control what is done with their works. Some allow it to be shared, modified, perhaps even sold in that new, modified version. Some just want it played everywhere and as much and often as possible, but not modified. Some don’t even allow it to be recorded and shared. Some go so far as to sue.

The idea of controlling one’s work strikes me as an absurd one, which is hypocritical, because I frequently find myself tempted of the same — take SafroFormats, a project I haven’t worked on in a long time (my sincere apologies; you know who you are). From very early on, I had been convinced that this would be my first commercial project. Not open-source, not even gratis. But now that I’m not working on it, why not share the source? If I don’t sell it, don’t even give it away for free, don’t do anything with it, wouldn’t it be a gain to let others do that? I’d lose control.

An artist runs risk of becoming a control freak, hopelessly trying to protect their works and what is being done with them by others. But that misses the entire point of making and sharing the work to begin with. By creating and releasing art, you want to make the world a better place. Everything else is secondary. You want to make it happier, by enjoying listening to your song, reading your novel or poem, using your software. No developer is happy to do commission work that results in a piece-of-junk program that people only use because, try as they may, they don’t find a better alternative. And as many depressing songs and poems as there are, artists don’t make them to demoralize people; they make them to teach lessons.

You could go broke because your song, poem or software is “pirated” and shared around the Internet for free and you don’t see a dime, but you’d still be happy because, ultimately, those people share it because they love it, regardless of whether they pay for it or not. They may not find it worth its price tag, but they find it worth the effort it takes to find and access it.

This is why I will never understand the concepts of “share-alike”, “copyleft”, “general public” or whichever you wish to call it next. You may call it “free software”; I think calling it “software by egomaniacs and control freaks” is, unfortunately, much more to the point. Face it: you want to control how exactly people use your works. It’s not enough for you to analyze it, to pull up statistics, or to do polls. You want to ensure that they use it as you see fit. How can people be creative and inspired when the first thing they see when they use your work is an exception, not a permission? If people truly want to make money off your works, why don’t you let them? It’s not your money that you’re losing, because you never asked for any anyway, and therefore, it’s not unfair either.

Please: Share. Inspire. Be an artist.

Posted in Ethics, OpenSource, Programming, Software

Share

Your Own Thoughts

I'd love to hear your input. Just try to stick to a few rules:

Before you comment for the first time (or, after you have deleted cookies), you will have to answer a little challenge to prove that you are not a spammer.

Comments are written in Markdown.

Leave the country the same, but correct the continent, and end the sentence with a period instead.