I once submitted an Ask HN: on Hacker News looking for negative feedback on zeromq. It was when I was trying to decide on whether to pursue my Scale0 project or not. Once I mentioned my idea, someone suggested I check out Mongrel2.
I agreed that Mongrel2 was a good choice, but I didn’t want to use it because I wanted to create my own for the learning experience. Zed Shaw, the man who wrote Mongrel2 had this to say about that.
Yes, definitely do this. Don’t let people try to convince you that you shouldn’t reinvent the wheel. Typically they just have some wheel they’ve reinvented that they want you to use. Instead, you should implement as many things as you can to learn how they work, and then use this knowledge to select tools and avoid bullshit and marketing choices.
And who knows, maybe you’ll do something better. That’s progress.
When ever I am inclined to offer someone advice about a product, framework, language or whatever to use, I try to keep this in mind now. I think too often we’re quick to give someone a solution to help them, rather than give them a suggestion of something to look at but also push them to do the research to make the decision on their own so they get real value out of the process.
Too often we want the answer and aren’t patient enough go through the process of researching the answer enough to understand it. I do it, all the time. In the day and age of internet search engines it’s too easy to find answers. What I’ve been working on for the past couple years is teaching myself to slow down and really come up with an answer. I think the easiest way to keep myself in check with this is to ask myself “why did I pick that?” If I can’t cite sources of information to strengthen the position I’ve chosen, then I likely didn’t have enough information to make that choice.
This was a vague concept of mine for a while, but that single comment from Zed Shaw really hit the hammer home on defining the concept. And hopefully the biggest value I can get out of it is to pass it on to my girls, and anyone else who will listen.
Thanks Zed.
For anyone curious, I’ve decided to research Erlang and see if it makes the most sense for the project idea. I didn’t get as far as looking at gevent and eventlet, yet, as what Zed got me really thinking about was if Tornado made sense for the project, which led me to consider if using Python even made sense. I’m waiting on my copy of Erlang and OTP in action to arrive so I can read it now.