April 1st, 2017

The beauty of programming languages

Or how not to be a Jerk when talking about languages

— Matthew Fellows —

Opinions are like arseholes – everybody has one. Unfortunately, in the world of software engineering and with the oft-abused weapon called social media, they are offered frequently and unapologetically.

It seems to me that everyone wants to hate on a language. You can argue that Golang is not pretty enough, or that Haskell is basically useless unless you have a Postgraduate degree in Mathematics, specialising in Category Theory. But you would be missing a crucial point, perpetuating harmful stereotypes, and are doing a service to nobody. Golang is designed to be simple, pragmatic and solve particular problems. Haskell likewise is particularly well suited to certain types of problems, and is a thing of beauty.

Languages, as with almost anything in life, can only be judged on a few things:

  • Their design and intended use within a particular context, and if they meet those self-imposed objectives
  • Their utility

PHP, Java, JavaScript undoubtedly have their many flaws. Yet, they are often in the top 10, if not top 3, most popular languages and have been for years. They have stood the test of time.

We can talk about how Rust and Smalltalk are the most loved languages by their respective devotees, but I bet more websites, mobile apps and other products are built on just one of those “ugly” aforementioned languages.

You see, this article got many things right; there are lots of problems with the immaturity of the Node and indeed the startup community, and this article does the job of satirising our frustrating culture of the worship of the new and shiny. And is a bit of pointed satire so bad? Of course not.

But it’s comments like this that start to turn an amusing article into a misinformed, misdirected and quite frankly, ugly, rant:

 

“You see the Node.js philosophy is to take the worst fucking language ever designed and put it on the server.”

 

I could write a whole piece deconstructing this sentence, but the crux of the counter point is this: none of it matters. What matters is that JS is currently the number one most popular language, and by a margin.

What matters is that we need constructive feedback to take this language forward, and make it better for all. Don’t like Babel? Make it better, make it redundant. Don’t like the language spec? Contribute to it. Be part of the dialogue, be part of the solution. We need civil debate.

The JS language authors knew the problems they were facing, and took a number of intelligent, practical and considered steps to rid the language of much of its past, whilst not breaking the Internet.

Furthermore, as an avid open source contributor who spends much of his precious, limited time writing software so that others may benefit, I cannot understand nor tolerate, this behaviour from a consumer of free software.

So please, the next time you rant about a language, just remember: don’t be a jerk.