Releasing your code as open source is a pain in the ass. I never realized this before, but after six months or so of having code out there, I'm realizing the truth of this. You're always responsible for your code and it suuucks. The whole idea of OSS sounds great, "build it and they will come" and all that... but in reality it's just a headache.
Points of this rant:
- A couple emails a week about some quick code published can get on your nerves
- Supporting your code is like work
- Feeling guilty about not maintaining or supporting your code sucks
- Just because it's Open Source, doesn't mean it's meant to be a "project".
- We need a new way of thinking and a new name for quickly hacked, but useful code.
- The OSS Prototype License gives credit to the coder, but sets an expiration date to avoid confusion with real projects.
- This could help categorize "dead projects" because quick code will be labeled.
Now it's not like I get tons of email about the stuff I've written, or that the people who've written were anything but cool, it's just that one or two emails a week about some code that I've published after a while get on your nerves. If you've emailed me, please don't feel like I'm saying anything bad about you - I had put out in plain sight "Email me if you have any questions or comments about the code" and you just took me up on that offer. I don't blame you... I'm just realizing now that I was just being nice and I really have no real desire to support the stuff I've written at all. My bad. I mean, it's too much like WORK. Sorry.
I know it sounds horrible, but follow me on this. Once a week I get an email about some issue and I feel guilty about not updating my code or not working on improving something I published months ago (that now I'm no longer interested in). Feeling guilty sucks! Or I need to respond to help someone with an install or help figure out some random bug, or something else. Ugh! That's not fun! That sucks! That isn't hobby, that's helpdesk! I mean, I like hearing from people who like my code (then again that means I have to take time to thank them for thanking me which is sort of pain) but this whole having to help people figure out something that many times you can't even remember writing is a big PITA.
I know I'm not alone on this (I just may be the first one saying it out loud). There are literally tens of thousands of dead projects out there on Sourceforge. Made by geeks like me who had an itch to scratch and cranked away for a weekend getting something cool working. (That's the fun stuff, right?) But then, like all geeks since before HomeBrew, we want to show our pals and so we put the code out online or create a SF project which soon thereafter stops getting updated. But it's CODE, right? It's got to be useful to someone someday, right? So there it sits. Waiting. And every once in a while someone DOES run across it online - maybe through a link that someone like me doesn't want to take down because hey, "it's CODE right?" - and you get that random email about it a few times a month. After a while you think to yourself "why did I write code that in the first place?"
Honestly, I can't imagine what it's like for a REAL Open Source project that has lots of users and maybe several committers like RollerWeblogger. It must be like a second unpaid job.
So I'm not saying that people ought to stop releasing their code (or emailing me), I just think that there needs to be another name for that cool code that you put out there but have no plans on ever working on again. Linus worked on his replacement for Minix for almost a year before getting around to sharing the source. Then there's the stuff I write, which I usually slap together in 8 or 9 hour sittings over a weekend. They're both Open Source, but one is a "project" and the other is "prototype". That's what we need... a little change in vocabulary. Both types of code are useful in their own way. However, if I spend more time supporting my code than writing it, then you can see how this becomes a dis-incentive to release anything more...
I've come into these thoughts because of exactly that. Lately I've been thinking of publishing some more stuff, but I'm almost afraid of putting the code out there. First it's all just prototype stuff... code that any programmer can do in a few hours if they just sat down and did it. Not well thought out and probably not a great base for a "real project". And secondly, if it's out there people are going to want to try it and they're going to email me if they have problems (which they definitely will with protype code), even months later and you now know my honest-to-god feelings about that. Ugh! (Let me reiterate again that the people who've emailed me have all been cool and never been a pain. I'm just talking about the cumulative effects of months of random emails).
So anyways, what I've done is made a note on my technical site that my code is now all Prototypes. They're not meant to be used by anyone except programmers and not "projects" by any sense of the word. I've stripped the word project from the site and replaced it with the word prototype which should hopefully cut down on some of the requests (and if that doesn't work, I'll replace prototype with the word "crap" and see if that works).
What I think is also needed - besides a small change in vocabulary - is an "OSS Prototype License" also known as the "Don't Bug Me Later License". The MIT license is great - it already absolves me of all resposibility for the code, but from a legal perspective. We need a license that says something like "I agree, by using this code, never to bug author with any questions, comments, thanks or support-related issues after TWO months of release date when said author has moved on to other more interesting things to work on."
What do you think? I think this would help promote more open code out there as well as bring attention to "real" projects as well because of their non-prototype license. As a geek, I'd rather have all that code out there so that once in a while I can find some pieces to pick up and use if I need it. Just like one or two people have found some use in the stuff I've published.
Just my thoughts for this Sunday evening...
Later... like 2 days later. The point is way too far down in my rant and some people aren't getting it. I added a bullet point to the top to help clarify.