“The time for jacking around with Tesla coils and ball lighting in the garage is over.”
-From the sci-fi movie, Primer
Many people get into software development because it’s fun. They start programming or web applications or how to get the computer to do interesting things, and the learning begins to grow from there. It’s also a well-paying career, so many people make the transition from hobbyist to professional.
But the job usually isn’t as fun as the hobby, for reasons that are already stated in your average Dilbert comic strip. As such, many software developers continue to do their own side projects in their spare time (at least, developers who chose their career from their preexisting interest, instead of choosing their career as an alternative to accounting or dentistry.) Much of the open source movement is powered by this phenomena: the collective work of developers who have an itch to scratch and a desire to share their creations.
But if you look at many of these projects, most of them aren’t anything new or groundbreaking. Most of them are reworkings of already existing pieces of software, perhaps written in another language or for a different platform. I call these projects “building Tesla coils in the garage”; they are fun and cool and braggable, but ultimately nothing new and not very practical.