DEV Community

Cover image for Pet projects shouldn't be optimal
Javier Salcedo
Javier Salcedo

Posted on

Pet projects shouldn't be optimal

Over the years I started noticing a pattern in my life. It goes somewhat like this:

  1. Find new hobby / skill / technology.
  2. Start working on it and notice progress.
  3. Become obsessed with it, read articles, watch videos, listen to podcasts, etc.
  4. Start worrying about the optimal way to get results or the best practices.
  5. It becomes a chore and I end up not working on it anymore.

I first noticed it with powerlifting.
I started going to the gym with my friends, having a good time and becoming really passionate about it.
After a couple of years I decided to join a club and start competing.
A year later I was working out for hours every day by myself, following strict and hard programs to add every pound I could to my maxs, and barely going out because I could feel my performance dropping if I skipped the diet.
In the end I left the club and powerlifting entirely. It took me more than a year to start truly enjoying it again.
However, it didn't click in my head. I blamed the long sessions, or the strict diet, or the insufficient results I was getting.

And of course, a similar thing happened when I started my first rendering engine.
I had a bit of experience with OpenGL but I decided to go all in with C++ and Vulkan.
I got pretty far pretty quickly, but eventually the time and mental cost of dealing with such low level tools led me to give up.

But then, a while I go I saw a tweet (sadly I haven't been able to find it again) about how JavaScript of all languages is actually used in computer graphics research.

Anyone who has worked with computer graphics knows that performance is everything. C++ is king, with Rust trying to make a breaktrhough. So this was mindblowing to me. JavaScript?? For real time graphics?? Really??

The reasoning however was quite simple: When you are doing research, trying to develop new techniques, you don't really care about performance. You care about relative performance compared to other techniques.
What is vital though is development speed. How quickly you can iterate and add new features. And languages like JavaScript or Python are perfect for that.

And I believe the same applies to hobby projects (as long as the point is not precisely to get the most optimised solution you can, obviously).

So forget about finding the perfect language, API or framework for your pet projects. Focus on choosing one that you enjoy working with, and start coding.

Photo by Annie Spratt on Unsplash

Top comments (0)