We have way to many programming languages. So I’m putting together a list of languages that need to die. ;-)

  • Lisp - being a “programmable programming language” is broken by design, because everybody does everything differently. Maintainance hell. And probably explains why the last times I tried to run a scheme program it just didn’t work. Because noone except the original author understands the code.
  • PHP - insecure by default and “encouraging” developers to mix code and html, how bad can it get? This language needs to be redesigned so much it’s no longer PHP.
  • TCL/Tk - no app I care about uses that, and the last apps I tried came up but didn’t work, just threw some fancy exception. I tried to fix them, but didn’t succeed. Can we just get rid of it, please?
  • M4 - macro hell. You can do good things with macros, but M4 is hell. So instead of creating bad configuration files with 10-level-deep nested M4 macros mixed with 0-level statements, why not just do a sane configuration file instead? Examples from M4 hell include sendmail, autoconf, selinux.

Honorable mentions that didn’t make it into the “must die” list:

  • Perl - I couldn’t live without the “unix swiss army chainsaw”, but it’s syntax is outright ugly.
  • Ruby - nice language, but always makes me think “why do we need another python?”

Languages that I think have issues, but couldn’t put on this list:

  • C#/Mono - I don’t want another fat, slow virtual machine, I don’t want bash scripts wrapping .exe files. If you do something C++-like, why don’t do it C++-like? On the other hand, there are cool Gnome apps coming up with Mono, so it seems fun to write code with. And maybe they become useable sometime.
  • Java - I don’t like this language, but maybe because of its users. It however has a couple of good points, for example that it is a rather strict language, resulting in easier to read and to maintain code (which is also why there are very powerful refactoring tools and IDEs for Java). With free VMs like Kaffe and with GNU classpath coming along, I might actually start using one or another Java app.
  • Python - the language is really dirty when you care about clean and verifyable code. Compile time typing and having types in the syntax definitely is a good thing. However I enjoy hacking python scripts for all kind of stuff a lot, so I can’t really say it’s a bad language.
  • C/C++ - you can’t live without it, if you have discipline the code can also be very clean and efficient. There are tons of great libraries around. However, it’s also very easy to write crashing applications.

So let the flamewars begin. I’ll try to keep track which language zealots are the worst. Without having started, I bet it’ll be the Lisp zealots.