So this piece has some history, which you may already be familiar with. First Kirill blogged on Why I do open source and then invited Andres and Alex to do the same. So a chain reaction is in motion. Andres published his version, and tagged me and three others. So here's my entry, my version of "Why I do open source."
So first you realize you like software development and make it your choice of a career:
- finding my place in the world: falling in love with the practice of software development. All you need to build something is your brain and a computer.
Second you become aware of open source and learn about it:
- exposure to open source projects across the spectrum, both in the java camp (jakarta) and outside it
Third, a motivation for constructing something comes along. Many people call it "scratching an itch." For whatever reason, you have an idea to build something in software that motivates you.
In my case, in the mid to late nineties i was into web and into Java. I recall one of the first things I liked about Java is that its documentation system was: [a] web-based, and [b] auto-generated from the code. That's pretty darn cool, or at least it was then. I'm not 100% sure that Java was the first but it's somewhat a fact that almost all platforms and languages today come with a similar javadoc'ing system. Unfortunately the innovation effort turned out to be more of a burst and then it ended. Javadoc today is pretty much the same system that James Gosling brought forth back in 1995.
I clearly saw that javadocs should be a web app backed by an rdbms. Second, I identified various ways of fundamentally redesigning the ui to make it more usable. For a long time, it was just an idea tugging at me. One day I said "enough, I must build this," had a serious talk with my wife, took a 2-week vacation, shut myself in a hotel room and wrote ashkelon, which at the time I called "dbdoc." It was one of the most creative short periods in my life, perhaps back in 2001.
It took me a year before I decided to open source the project. That was after James Davidson came to talk to the Austin JUG about one of his open source projects: Ant. In 2002 I open-sourced the project and named it Ashkelon, after a town that I lived in, which I consider my old home town.
I can't say the effort was successful. Writing the code is one thing. Using it is one thing. But successfully preaching and evangelizing it and urging its adoption turned out not to be my forte. And I feel that I failed at the latter. I still regret it. Even today, years later, most javadoc systems don't come close (imho) to what I'd built. Ashkelon has not kept up with Java and I have not updated its implementation to incorporate elements of Java that were introduced in version 5 (annotations, generics, etc..).
Anyhow, I tried to leverage open source to increase exposure to what I'd constructed. Many benefits came that I did not expect: email conversations with folks from all across the world, who had been using my system and who had taken the time to read parts of the code and make improvements and contribute to them. It's enriching, to say the least.
My two main open source software projects are, or have been:
A javadoc system that uses a back-end database and its own UI design, named ashkelon
JMatter: streamlining the construction of domain centric apps with database persistence. My stab at the nakedobjects architectural pattern in Java, leveraging Swing and Hibernate.
I like the fact that open source is an inclusive club: anyone has access to code, to use it, to learn from it, and they're free to contribute to a project (of course, it's up to the project maintainer to ultimately decide whether to use or include your contributions, but you're free to make whatever changes you like to your copy, and to redistribute it freely).
I feel today we're at a tipping point: there is an abundance of free software and of free software projects. It's really wonderful to see.
Some literary influences:
Just for Fun: The Story of an Accidental Revolutionary By Linus Torvalds, David Diamond
Free as in Freedom: Richard Stallman's Crusade for Free Software By Sam Williams
In the end, it's more fun to construct software that you can share with others. It's fun to be and feel like you are a part of a community. I like belonging to a group where what everyone has in common is a passion. In this world, we are often categorized by our ethnicity, our birth. This is better.