Don't forget to play π
I love it when people put a lot of effort into something just for the joy and satisfaction of creating it!
Like Ruud van Asseldonk who wrote his own configuration language, Andreas Kling who decided to write his dream OS from scratch, SΓΈren Fuglede JΓΈrgensen who created a TTF font which is also an LLM, or Willem Penning who spent time building a “useless” self-balancing cube.
All of these projects are awesome and inspiring, despite (because?) not being started with an ambition to take over the world.
“What is the point?” #
I think it is sad that whenever someone presents something they have built on Hacker News (a forum for technology enthusiasts!), half of the comments are along the lines of “What is the point?”, “You will never be able to finish that”, and “There are already better solutions. Why don’t you stop wasting time and help improve them instead?”
It seems we as developers sometimes underestimate the importance of doing things just for fun. Kids are role models in this regard. They play all the time. Play is perhaps the most important tool in a child’s toolbox. They quite literally practice being grown up. They practice important skills in a format that makes them happy. We should do that too, even if we are grown up.1
There does not have to be a point #
So what if that project never got completed? You learned stuff along the way. Maybe you tried some new technology that you found interesting? Maybe you got a better understanding of networking? Maybe you got better at writing integration tests? Maybe you learned how to set up a project from scratch?
And you know what? If you had fun even though you did not learn anything new, that’s ok too! This is not work!
During my teens I easily built ten IRC clients. Or maybe it is more fair to say I built one IRC client ten times. To be really honest, I didn’t build any complete client. Could never finish one before I had an idea of how I could make it better. So I started over from scratch. Was that wasted time? Not at all, I got a lot of programming practice. And that is where I lay the foundation for my understanding of networking protocols.
Right now I am designing a JVM build tool focused on simplicity and ease of use. Will it ever be finished? Will anyone but me ever use it? I don’t know. So far I’ve probably written more documentation than actual code. But I love it. I love the intellectual challenge of designing it and finding the right abstractions. It makes me happy. And that is ok.
What “pointless” things do you do just for fun?
-
It reminds me of the adage:
The creative adult is a child who has survived.
Interestingly enough, while the quote is often attributed to writer Ursula LeGuin, it appears to be a misquotation in a tourist book by Robin W. Winks. ↩︎