This is the reverse post of my highly popular Top 5 Best Programming Languages post. My only metric for a good programming language is time to get things done and ship to customers. Only shipping matters, everything else is an excuse.

1 Haskell

The ultimate dont-get-anything-done language. You will spend all your time working with abstractions that have nothing to do with the real world and pretend to be clever by matching types that could have just been raw arrays or objects in any other language, and you won't get the actual work done. Absolutely useless language made for exobrain academics to write papers no one will read.

2 Rust

A language that is a syntax error. It looks like syntax error, it acts like a syntax error, and it prints a syntax error, so it is a syntax error! Your job is to spend all day figuring out how to make it not be a syntax error rather than focusing on solving the actual customer problem.

3 C++

A Turing tarpit language that has black-holed on its own complexity. The standards committee keeps adding new garbage no one ever asked for and that has no use because if they didn't add it, then they wouldn't be paid salaries and would lose committee seats. This is a language that was finished in 1998 or maybe 2003 but has been forced to add new complexity every year or else people with funny hairstyles would be out of jobs. Rule of 3, then rule of 5, and soon you'll be writing rules all day instead of shipping.

4 Python

Language made for mechanical tabular processors running at the speed of a 286 computer. Requires two hand cranks to operate the language. The first crank is for the tabular shifter. Forget the crank and your entire program no longer works because you're unable to shift the program to the right by a tab. The second crank is to keep the adder running – 100 rotations is one add operation. People say that if you turn it very fast, you can even achieve 386 computer speeds. It's also taking C++'s path by endlessly adding new crap to the language no one needs or asked for. The syntax is getting conflicting and confusing. This is the new Turing tarpit language with an unique extra feature of single line lambdas. Walrus operator my ass, Pascalistas.

5 JavaScript

JavaScript used to be a neat and small C-like language that everyone loved. A couple of if statements and you were done. Now it's turning into yet another Turing tarpit language that doesn't know where it's going, with no clear leadership who can say no. Take 1 feature from modern JavaScript and you will never ship again as you'll spend all your time resolving npm module version conflicts. It's a language that just like all other languages is adding features from all other languages that no one asked for or needs. All these languages are morphing into a single language where everything is possible but nothing is doable or practical.

We need more self-contained small languages (such as C) that let you get the job done rather than languages with more and more features that you don't need. See you next time!