My language brings all the geeks to the yard,
And they’re like “It’s better than yours”
Damn right, it’s better than yours,
I can teach you, but I have to charge

Programming languages – the second favourite thing for geeks to fight about (right after code editors and IDE‘s).

John McCarthy, an American computer scientist.

John McCarthy, an American computer scientist. (Photo credit: Wikipedia)

Everybody knows Java sucks, that PHP is a script kiddie’s tool and that Lisp is the most magnificent thing ever to crawl out of the primordial ooze of academic language research.

Ask somebody else and suddenly everyone knows JavaScript is the best thing since sliced bread and Java is only used by weird people of the Indian persuasion … and Google. For some reason.

Does all of this really matter?

At the end of the day most languages are turing complete, which means you can use any language to do anything. Write your next killer app in brainfuck for all I care. You should do it in malbolge actually, that will make the whole geek community green with envy.

But you know what, your app doesn’t win based on the technology you use, users don’t care! What matters is solving an actual problem.

There’s still no excuse for any modern language to exist without type inference though …

Uncovering the Unknown: Principles of Type Inference – an awesome talk explaining exactly why there is no excuse for making people type int and char in 2012.

I’m looking at you Java.

Enhanced by Zemanta

You should follow me on twitter, here.

  • As much as I respect (and should try) Lisp – have you tried Ada? You might just change your mind about type inference. Then again you might not. You probably already know what I’m talking about.

  • Moe

    This type of argument is only true if there’s no difference between the productivity of programmers working in different languages.

    I’m currently using Perl, but wish I was using Clojure. I’m pretty sure I can do things in Perl much faster than I could do them in Java, and far faster than I could do them in brainfuck and assembly.

    Language choice matters. Its not the most important thing in the world, but it is important. You can’t provide the best tools available to your users if you write it in brainfuck. The competition will eat you alive if you try.

  • That was the subtle point of this post – it doesn’t matter what language you use, as long as you pick the right tool for the job.

    When it comes to programming languages people keep trying to glue with hammers and hammer with screws. Then they have huge fights over whether a hammer is a better tool than a glue gun.

    It’s a bit of a useless discussion.

  • I haven’t tried Ada, but I personally enjoy type inference (or just dynamic typing) quite a lot. Types of things are something I passionately do not care about until my algorithm is at the point where performance matters.

  • The Configurator

    Sorry to burst your bubble, but people argue about tabs/spaces and about brace locations far more than they argue about which programming languages to use.

    Regarding languages:There is a distinct correlation between programming language and slip (against quite carefully thought-out estimates) in my projects. Over the past two years I’ve used the following languages: (this is based on actual data)C++: 20% slipJava: 30-40% slipC#: I usually meet or do better than estimatesRuby: 500-2000% slipThere are a few issues which are very closely related to the language you’re using, and are much more important than the language itself.The first is the compiler; if set up is complicated (Like in C/C++), you will waste time fiddling with the compiler instead of actually doing useful work. If compilation errors are unclear, you won’t know how to fix them (like in Haskell). 
    The second is deployment; if deployment fails randomly, or servers misbehave for no reason, you’re going to waste a *lot* of time.
    The third is most important: libraries. If standard libraries are easy to use (e.g. in .Net), and generally do what you expect, development will be quick.
    C# is not my favourite language. But given the choice it’s the language I will choose for almost any professional project, again and again, because things just work, development is quick, and deployment is easy.

  • The Configurator

    I’m sure there’s a reason your blog removes all newlines from my post… I just can’t figure out what that reason could possibly be.

  • I have no idea why that happens. Perhaps it’s a bug in Disqus …

  • That’s an interesting take on the whole matter, although personally I’ve usually found slip to happen because of one of two things:

    1. A bug is unpredictably worse due to something hidden in the codebase (that I didn’t see, because I don’t own the whole codebase)


    2. Some lack of knowledge of the language I’m using, its libraries or something like that.

  • Thanks for referencing my article. (Language-ism). 🙂