My Language Is Better Than Your Language

Mar 3, 2015

Or is it Your Language Is Better Than My Language, I forget.

If there is anything programmers love to debate more than programming languages? Maybe, but this is pretty popular. Of course we do need more of a life.

When I started programming for money in 1981, there weren't a whole lot of choices to argue about. I started with Fortran but was also exposed to various assembly languages, Jovial (the precursor to Ada), Pascal and someone once handed me some sample code written in PL/1 which gave me a headache. I had used Basic and a little APL but that was pretty much it. I knew of Cobol, at least enough to run away. Most people just knew one and maybe a little assembly.

Now switch to today and there is a new language every 5 minutes or so. Some of the languages change so often they even have version numbers. Oddly enough no one is working on expanding the brain to keep up. Seems like a startup there somewhere.

The hardest thing to deal with is even remembering the names of all these languages, much less actually learning very many of them, and much less actually getting deep enough to understand how to use them effectively.

When I started coding in C in 1985 I didn't change languages (other than a dab of 68000 assembly) for 10 years. Eventually C++ become an on-again-off-again lover. Objective-C came and went and came again bigtime. Java dominated for a while while Javascript waxed and wained and waxed so many times like some kind of Karate Kid metaphor. In the past decade I've dabbled in Ruby briefly, dissed PHP in this blog and then learned to appreciate it (this blog is still written in it) and then had people scream at me to run away.

Of course I've longed to go deep functional with Haskell or Erlang or Scala or even Clojure but the brain isn't functional enough to add another language at this time. Someone pointed out Rust as a great language but I really wanted to learn Metal. Somehow I spent a swift time learning Swift but it kept mutating while I coded. Any more language puns and I will be Brainfucked.

Jokes aside (I really want someone to write a language called Joke) the problem with today is we can't all learn every language, and when we focus on just one or two we run the risk of picking a dead horse. Of course some people are Javascript web programmers, and dead horse frameworks are a fact of life. I remember the pain of having to know what version of Java with what version of J2EE (or JEE or Spring or whatever) people wanted, which was always one version off of the one I was working with. The programming world seems to revel in torturing us with all this exciting new stuff; once we jump into it we discover the world has now moved on and it's all poo.

Compared to when I started, today is both exciting and frightening, so many cool new languages and the impossibility of trying even a tiny portion of them. I spent a decade writing nothing but C which today seems so quaint, like working in the same factory for a lifetime was a generation or two ago. Today you need a radical agile brain and a willingness to abandon all hope of stability. Yesterday is crap, today is awesome and tomorrow today will be crap and yesterday will be a dinosaur fossil only your grandmother codes in.

The key of course is to get really good at evaluation, something I mention a lot in this blog. You have to find the right language for you and your project and your team. Sometimes it might not be the slick new thing; sometimes it might mean abandoning everything you know. Every programming language has pluses and minuses and brilliance and dumb-ass. You have to figure out for you which parts work, and which parts you can tolerate. Listening to other opinions or arguments is fun but you also need to get real work done. It's like being a dolphin who sleeps with one eye closed and the other open (which I vaguely remember in between reading programming languages and may be a syntax error in one of them); always check out what is happening but don't completely get away from what you do well.

The future will only get worse until everyone has their own programming language and you won't ever have to leave your job since no one can replace you. Either that or hope that hot new startup is selling brain implants.

You could give up programming languages entirely except for APL. I guarantee once you master APL your brain will explode and the problem will be solved without exception.