If you have been in the software industry for a few years, all the chances are that you have experienced severe hatred towards
some of the programming languages. You might have even seen some developer going medieval on their laptop, cursing
the programming language they are using. That has to stop right now.
A few years ago it was cool to hate PHP. I can understand that. PHP had severe flaws in the earlier versions. Nowadays it's
cool to hate Javascript. I can understand that as well. Not to be a hypocrite, I've been swearing Javascript's
asynchronous nature at least a few nights while debugging until 6 AM.
I predict that next stuff that will be really hated is object vision, because we are using toy-level like libraries more
and more, to create some really serious stuff. However, I never really hated any programming language or library
for one single reason - programming languages are tools.
Programming Languages are Tools.
Nothing more, nothing less. Those tools enable us to spin wonders
out of thin air, make us feel omnipotent, but nevertheless remain just tools.
If you are using a tool to create amazing stuff, at the end of the day, it doesn't really matter what tool did you use. If
you coded an app which helps sick or starving people, would you really care whether it's Java or Ruby on the
backend?
If you are seriously investing energy to badmouth some programming language on Twitter or on some conference, you might want
to reassess whether you really value your mission.
Different Strokes for Different Folks
I believe that hatred for programming languages usually originates
from the desire for efficiency. If I needed to dig a tunnel from Spain to New Zealand, I'd rather use
Bertha Drill than a simple shovel. Same as I would use Oracle instead of SQLite if I had
to build an enterprise data storage app.
There are over a thousand programming languages. Just look at
this stunning visualization of programming languages available. And picking a programming
language for a product is always a trade-off. Knowing when and how to make that trade-off is one of the things
that separates good and bad CTOs. A good CTO will know when to use something that's cutting edge technology.
Also, a good CTO will know when to ignore the hype.
In the end, it's all about the ROI. Good choice of technology impacts ROI in multiple ways:
• It can help build a product that has lightning fast performance.
• It can speed up development time.
• It can reduce the number of bugs and security threats.
• It can help you retain developers for a longer time.
So, if you value the mission you are on, but still feel frustrated about the choice of technology, try thinking about all
this before whining. If you still think the choice was bad, gather data, and make a case backed up with facts
for the next product. But please, don't waste your time tweeting about it. Critique is important for progress,
but all you will achieve is making other folks feel bad. If you'd like to talk more about this, feel free to reach out on
Twitter or
Linkedin.
NOTE: Please try abstaining from trying to explain that digging a tunnel through the Earth's core is futile.
It's a metaphor.