Choosing Ghost as my blog engine was hard, not because Ghost is bad, but because I’m often too exotic to just use “the best tool for the job” which, in this case, Ghost is.
An exotic developer is a developer that illogically refuses to use whatever technology everyone else is using just because everyone else is using it. He’s in the anti-trendy trend. It doesn’t matter how good a tool is, if it’s too popular or maybe was not written using his pet programming language, he will simply not use it.
We all have this exotic friend. We all hate when he starts to preach that new amazing framework OnlyHeUses™. What we don’t realize, though, is that, sometimes, we are that guy. Here’s how it happens:
- We fell in love with some technology (programming language, framework, etc).
- We go crazy and start using it to solve any programming task at hand. Sometimes, we fabricate those tasks for our own amusement.
- We fight to death to defend it, even when there’s no particular reason to do so. This is where our obsession becomes critical and we start losing friends.
I obviously exaggerated, but if you are down this path, be aware, in the end you may find nothing, but frustration. I see it daily in the Haskell community. Don’t get me wrong, though. I’m not suggesting that popularity implies whether something is good or bad. All I’m asking is for you to stop for a moment and watch your reasons. Are you up to technology “X” because it’s really superior or because you want to be the different guy?
I know what you answered in your heart. But don’t worry, I get you. I really do. Everyone wants to feel special somehow and, as passionate software developers, we do that by trying new things and enthusiastically sharing them with others. That’s pretty much what I’m doing right now. Some of us (me included) are even fascinated by ancient things (just Google for “Vim vs Emacs” to see how actual that debate is).
Most of the time, this spirit is healthy and leads to professional growth. The problem arises when we unconsciously turn technology into an end, when it should be a means. This gets you stuck in an infinite loop of experimentation and no results. Good news are the sooner you realize you are in the loop, the sooner you can break out of it. Here’s how you know: if, once you master something, you get bored and immediately go out seeking for the next thing to learn, then you are in the loop.
Bad news are that every loop is different and only you can find a way out of yours. In my case, it’s been quite a battle, and I still have one foot in there. Nevertheless, here’s some advice to get you started in the process. Forget your ego. Use the best tools out there and start writing software that actually changes people’s lives. While reinventing the wheel is an excellent way of learning, we have to keep in mind that the line between useful experimentation and unproductiveness is very, very thin.
In the end of the day, it’s not about technology. It’s not even about us. It’s all about people. That may sound cliché, I know, but remember: a cliché is only a cliché because it’s generally true. That’s why we have to swallow this need of being different and stop writing meaningless crapware only to show off how die-hard programmers we are.
Finally, don’t feel attacked by my words. I was bitten by that bug too and I wrote this post as an antidote for myself. More often than I would like, I behave as a top-notch exotic developer. When setting up this blog, for instance, I really struggled to soften my mind to go with Ghost instead of Hakyll.
Choosing Ghost as my blog engine was a difficult decision, not because Ghost is bad, but because I’m often too exotic to just use “the best tool for the job” which, in this case, Ghost is. But you know what, here’s another cliché: if I could cheat my brain, so can you.