Programming languages are not equal

Before subscription I promised I'll give you my biggest, valuable secrets in coding. For free. After years of experience I don't see people the same way, I don't see technologies the same way, I don't see new languages the same way and I don't see all the upcoming trends the new way.

The truth is, our development world is screwed, what majority uses means next to nothing. Average Java developer sucks, average Javascript developer sucks, average PHP developer sucks, average .NET developer sucks and most of the software today is wasteful, poorly written, hard to maintain and full of bugs.

I've had an enlightment some time ago and I want to share it, little by little (there's a lot of information), but you'll need to accept that you'll probably be offended. But if you'll accept these truths and understand them, they'll make your life easier.

To give a taste of what's to come let me start with a simple statement, which today, at 2018, would be controversial:

Programming languages are not equal in power

I've added a word "power" in the end because this is where most people struggle. You see, today, the average youngling liberal programmer's mind is infected with garbage like:

All programming languages are equal, except that some do things better than others

I don't think so. Neither TIOBE programming index thinks so. Let's consider a few examples.

COBOL was mostly used programming language at one point

And it died. Some guys with guaranteed job security are still maintaining these codebases, but you will not hear a sane mind today saying "let's start a new project with COBOL".

Java today has the throne of the most popular language. If you're here and you've been in university you were probably taught Java. Is Java better than COBOL? Yes it is, apache software foundation is still creating new projects with it. But is Java perfect though and doesn't need any improvements? No, it is not.

There were multiple versions of Java, version 8 added lambda expressions (finally), before that people needed to implement attrocious interfaces which take twice as much code. C# had a var statement which infers variable type since 2002. Java promised to add this in version 10 - almost two decades later than C# did it with the very first version. I certainly don't think C# is at the top of language power spectrum but it's much higher than Java.

Another testimonies to the grievous weaknesses of Java are derivative languages that are running on JVM:

  • Groovy
  • Scala
  • Clojure
  • Kotlin

To name a few. Why do you think these were created? Because creating programming language is a lot of work. If someone is willing to write a compiler that is a strong statement that what they have now is not okay.

And I could tout on and on about weaknesses of Java or JVM, and how other languages solved its problems, but I want to make something clear. No programming languages are equal, and certainly not in strength. And certainly not in solidity of written software, not in performance, not in memory usage, not in ease of learning. But nobody talks about this today, and it makes me very sad, because if we started openly comparing languages this world would have much better software.

Just a few more points on which languages are superior to others:

  • Statically typed languages are better than dynamically typed
  • More performant languages are better than slow ones
  • Low memory/CPU usage languages are better than high resource usage languages
  • Languages with closures are better than languages without
  • Languages with metaprogramming capabilities are better than languages without

I gave you a taste of where we'll be going next, and if you're willing to gain wisdom, and will be humble, and will not be offended if you were in love with Java, you'll gain a massive advantage over 90% of developers today.

With love, Abner