If you are a developer, you probably have seen lots of endless discussions and arguments in internet forums, blog comments sections or social networks, about things like, “what is the best programming language” or “why this new shiny language is the greatest thing ever” vs “why is anyone using this shit language / you are an inferior developer if you program with X language”.
Its incredible how many developers, who should supposedly be intelligent people tend to be so mean and aggressive defending their favorite language or framework and criticize everyone that dares to like or build something using a language that they consider bad or old fashioned.
PHP developers and the users of frameworks like Electron are often the most common victims of the hardest critics, resulting in memes like this:
These discussions are stupid and useless in my opinion.
We as developers, have the opportunity to change the world and improve people lives using technology, shouldn't we support everyone that is building something that will be useful for someone, instead of bashing them just because they are using an “inferior” language?
Of course, everyone has its preferences and there are languages that are better than others depending on the use cases, but why the hate? Cant we have more constructive criticism?
Every programming language has its uses and should be respected. The internet wouldn't be what it is today without PHP. I dont like Wordpress but it was a revolutionary software when it comes out and allowed many many people to share knowledge with others and many companies to have its place on the internet. Many developers wouldn't care about desktop applications, without frameworks like Electron.
Just because its not in the top page of Hacker News, its more than 1 year old or it doesn't have the most clean syntax and best performance, doesn't mean its the worse thing on earth and all the ones that uses them should go to hell.
A top developer can make a PHP application fly, and a mediocre developer can make a NodeJS application really slow.
As someone very interested in Startups and Organizations, last week I had the opportunity to read the amazing makebook by Pieter Levels where it says the following:
The people discussing what programming language is best are not shipping products. The people who don’t care what programming language they’re using are shipping products.
They’ll use whatever tool they need, whenever they need it.
I completely agree with his statement.
Building great products should be our main focus as developers. Just use the tool you think it will be more appropriate for the job. It will be different from project to project.
The end users doesn't care it which language its built, as long it solve their own problems.
Of course, the Developer experience is incredibly important. You will be much more productive and happy if you are working in a product using a language you enjoy, that is easy to understand and maintain and that provides you with great tooling and quality libraries to build your product faster and with high quality.
Many languages can provide that and its also a very subjective topic. I really like working in PHP and can be very productive with it. You might prefer Ruby or Node. Its a personal choice. There isn't only one way to build quality products and clean code and that also depends on a lot of factors like your experience with the language and the requirements of your product.
What its crucial o understand is that there are languages more suited than others to do a particular task.
I wouldn't build a “real time” app with PHP, a personal blog with Java, or an app that requires complex calculations in Node.
Understanding the pros and cons of each language, how and when to apply known design patterns is what will make the difference in the end.
Also many developers tend to over engineer and to do premature optimization. Here is also a very interesting quote from the referred book:
honestly, unless you’re programming spaceships, it’s pretty hard to outgrow a language. They’re all based on the same principles of computing. You can build anything with most languages really.
Thats the reality. Not everyone is building applications at Google or Facebook scale, where performance and scalability play a very important role.
PHP, Ruby, Node, Python, Golang, I would say almost any well maintained programming language can be a valid starting point for most of projects.
And today, in a Microservices era, you are not limited to one language per application. You can easily optimize your application by building some components in a different language.
Lets stop this nonsense language wars and start respecting and collaborating more with each other in order to build better products and solve real problems.
There isn't a “one language, fits all” and every language or framework has its pros and cons. Understanding them and how to apply to your product in order to fulfill your users expectations is what will make the different in the end.