On code legacy

Submitted by Larry on 14 June 2007 - 1:16am

Dries has been commenting recently, both on his blog and elsewhere, about one of the chief advantages of using open source: All developers/users are on equal footing. If you try to learn a proprietary app or framework, you know what the main developer feels like deigning to let you know. Anything else is either a mystery or, in some cases, illegal for you to find out (if there's any encryption or copy-prevention involved). You can never be as good an expert as the author, because the author has access to the Holy Book (code) and you don't. With an open source project, everyone gets the same access to the code. The only thing stopping you from being the best expert on the planet is your own skills and time.

He's very right about why you should choose to use an open source project. But what about why you should start one, or release your own code open source? As a developer, that's a far more interesting question for me.

The answer is simple, too: I want the opportunity to show that I'm the best. Not just be the best, but put my skills to the test against others.

Let's say you're working on a project. You have some problem in front of you, and you solve it in a ridiculously cool (fast, efficient, elegant, whatever) way. You should feel proud of that. If you're working on a proprietary system, then you get a pat on the back and the marketing team takes credit for delivering something spiffy. No one ever gets to see your solution, except maybe a few colleagues at your company. You can't share the code with others to demonstrate how good you are; you can't publish it and get feedback from people who aren't on a tight deadline and don't care as long as it works; and worst of all, you don't get to use it again. You eventually move to some other company and you don't get to take the code with you. It belongs to your previous employer. In most cases no one notices how cool it is, and it withers. Your code dies.

That's so sad. :-(

But now, you write whatever it is you're writing and release it under an open source license. If it's really as cool as you think, people will take notice. You can get it peer reviewed by hundreds of people, for better or worse. You can refine it into a general solution, possibly with help. You get recognized for doing something cool. And most importantly, once it's "out there" you can keep using it if you change jobs. Sure your previous employer may hold the copyright (or a portion of it if it's had other contributors), but your name is on there as the person who actually wrote it. Because it's open source, you can keep on using it at your next company, and get your job done faster and better.

That's what makes open source so attractive.

But wait! What if you're not that cool, and your code isn't as novel as you think? Well, you won't know until you try, now will you? And even if you're not the best there is, it means you get to work with and learn from the best, because they're doing the same thing. Sharing, showing off, and truly building something that will last and out-live them.

Open source code makes a far greater legacy than a proprietary app that will die in an OS upgrade in a few years.

That's what drives me to open source, as a developer. The flexibility, the freedom to use my own work, and the legacy.

What brings you here?

Your point of view is very interesting.

IMHO, releasing your code under open source license is good for many reasons.
This is oportunity to make something good (some piece of software) with collaborative efforts of a lot of people. More you give, more you will receive.
Open source also means freedom (with big F) to me. Freedom to choose, freedom to take look into code, freedom to modify the code ...

I, for one, am here for the freedom part. That is, the inability of "upstream" developers to take away what should belong to me, or just restrict access (say, DRM) or force upgrades or pay for licenses or anything like that.

Open source is superiour because everyone has the power to fork, including every single feature of the original work. If software can be forked, it is essentially immune against any attempts to add unfriendly code, because once you do that somebody else will come and make a friendlier version. No single person or company has the absolute power over an open source piece of software - they can influence it, but as long as there are other stakeholders, they are not in control.

This is what ensures the viability of open source. It can never be destroyed, or made into something evil, as long as

  • there are people who like keep on developing the software, and
  • patents stay out of the game.

The collaborative approach that makes for high-quality code, self-promotion and the ability to become an "expert" are nice side effects. Anyways, my love for open source / free software comes from the fact that I know that it will always do what's best for me and other users, instead of best for some mega-corporation.