First of all, my apologies for the lack of recent updates. I have been busy with issues that have kept me away from my computer. But I return this evening with a new article.
I keep a list of all the ideas I have for programming projects and sometimes, like earlier this week, I will begin writing a little bit of code for one. A lot of these projects have no immediate usefulness and serve no critical purpose. They are not programs or libraries of code which I need at the moment.
So why invest the effort? Is that even a good thing to do? Tonight I give my thoughts on the matter.
It is a Good Thing
I firmly believe that when you have an idea for software then writing that code is beneficial. It does not matter if you do not need the code right at that moment. The experience of writing the code, executing on the idea, converting it from an abstract thought into solid form—that has tangible value.
Even if you do not need the fruits of that effort right away there may be other people who do. That is why I believe releasing such projects on sites like GitHub or BitBucket is a great idea. You may find that your hobby project is exactly what another programmer is looking for.
I will give you an example: lately I had the urge to write a simple, blocking event system for PHP. If you are unfamiliar with [event-driven programming][edp] then I recommend that 2006 paper by Stephen Ferg. He provides a history of the paradigm and describes the concept quite well.
Now I personally have no immediate need for such a PHP library for any PHP project I am currently programming. It is just an idea I had. But maybe someone out there will find it useful. And for that reason alone I do not believe it is wasted time. But I do certainly try to limit the time I work on it so as to not take away from projects which are more important and yield results that are either financially or professionally more valuable, or both. So while I suggest spending some time exploring ideas you have, do not let them eat away too much time from the software you need to write that pays the bills, puts food on the table, et cetera.
If you have interest in a programming idea then start writing the code. If it serves no immediate purpose then that is ok. Because in the future it might, and then you’ll have the tool right there to reach for. And if anything the experience is always beneficial in my opinion.
So you want to write a program just for fun? Something that you really don’t need, but just want to do? Then go do it.