Stop Hating Programming Languages Right Now

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.
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 enterprise data storage app.
There is over a thousand programming languages. Just look at this stunning visualisation 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.

Hype Driven Development

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.