If I Could Forget a Programming Language

As I get back into “coding for money” again after a couple of years of being paid to manage people, projects, technology, etc. I am once again diving into different languages to look at what are going to be the truly productive and innovative languages over the next few years. As I do this, I reflect on some of the syntax and library clutter in my mind from having coded in a number of languages over the years, and wonder which of those I’d be most happy to forget (Johnny Mnemonic style) to make room for the new ones…

Well, here we go, and just as a side note I’ve flip-flopped between windows and web programming so it’s going to be a mix of both.

Windows: Borland C++ Builder (C++)
Used for windows development. Clunky syntax and a very poor cousin compared to Delphi. It sucked almost as much as I did back then. While we owe a lot to C and C++, I doubt we owe very much to Borland’s variant.

Verdict: Forgettable

Windows: Borland Delphi
Anyone who knows me, knows not to get me started on Delphi. One of the great object-oriented programming languages + supporting toolkits of our time – largely due to the genius of Anders Hejlsberg. Sadly Delphi could never stand up against the momentum of Visual Basic, and has largely disappeared into history. Pity, it was simple to do the simple things and proportionally difficult to do the difficult things – you could even embed ASM if you were feeling ambitious.

Verdict: Unforgettable

Web: Perl
I certainly learned a lot about coding for the web from Perl, and while the language itself is not as popular today as it once was, it’s still pretty solid. As tempting as it is to write that the language is forgettable just to stir up a good friend of mine, Perl has done too much for the web just to belittle it for the sake of my own amusement (it was close though).

Verdict: Unforgettable

Web: Cold Fusion
I have to admit, I’m in two minds with regards to Cold Fusion. It was a language that didn’t really do anything too special out-of-the-box but what you could do was just super simple to do. Additionally, as the product did mature and became a J2EE web app you could do cool things like access java libraries, etc, so that was pretty nifty. Still, I think I could afford to forget…

Verdict: Forgettable

Web: ASP.NET
By rights, DOT.NET should have been the holy grail of web application development for me. The C# language was built by my old Delphi friend – Microsoft wooed him to the dark side ;) and it promised a real re-thinking of application development in general. Somewhere along the way, though it seemed to lose it’s way. I got into ASP.NET at 2.0 and you could do some cool things then, but then Microsoft felt the need to implement AJAX coding in a completely half-baked way and I had flashbacks to the holy wars of Delphi vs Visual Basic. There is no doubt that .NET is a big deal, and I built some pretty good web apps using that technology, but it wasn’t thanks to the patterns and practices promoted by Microsoft. If you are going to code in .NET then I’d recommend checking out a local alt.net group for using the technology effectively.

Verdict: Forgettable

Web: Javascript
To close out the languages that I have coded in professionally, javascript definitely deserves a mention. It’s the poor orphan language that nobody thought would amount to anything but with some talented and outspoken people like John Resig and Douglas Crockford massaging, promoting and educating people how to use it, it’s become one of the great enablers of the modern web application. Honestly, whatever server-side language you decide to use, make sure you skill up in javascript. I’ve never trusted server-side javascript generators and even if you use them you should know what you are dealing with in terms of the code they generate. For some fun, why not check out server-side javascript goodness like node.js or jaxer.

Verdict: Unforgettable or Forget at your peril

The Potential Replacements

Currently I’m using (or looking at) the following languages, and only time will tell whether they will be deemed life-changing and unforgettable, or as Rimmer would say “languages I’ve met” (note: creative license).

  • Python (with Django) – unforgettable for speed and general arrogance of the language :)
  • Ruby – never intended to use, but things have a funny way of working out. Jury’s out.
  • Groovy – definitely unforgettable – closures I love you. But not more than SquiggleMum – if that were true I’d be a dead man.
  • <Insert unforgettable functional programming language here> – preferably not JVM based, suggestions welcome.

Feel free to step in and defend your beloved languages if you feel an injustice has been done, or leave your language baggage in the form of a comment.

12 Responses to “If I Could Forget a Programming Language”

  1. Coffeescript is cool.

  2. Damon says:

    Nice Liam – thanks for the heads up. For those who are interested I believe the correct link to the project site is below:

    http://jashkenas.github.com/coffee-script/

    It’s a javascript generator, BTW. I’ll let you guys decide whether it’s evil or not ;)

  3. OtengiM says:

    I really miss also Pascal/Object Pascal/Delphi, It was a great language and tools, IDE, Turbo Vision etc etc.

    Right now Python and Haskell are my favorites, Beautiful languages and Unforgettable.

    -C is a Unforgettable
    -Java is a Unforgettable
    -Lisp is a Unforgettable
    -Ocaml is a Unforgettable

    -Cobol is a Forgettable juk I hated it.
    -C++ is a Forgettable juk I hate it.

  4. Pablo says:

    Ada – I wish I could erase 5 years of a Programming Language that took me NO WHERE in the world outside of DOD! All the predictions that the commercial world would jump on board with the Armay failed miserably. THe processing/memory power that was needed for the compiler and execution was beyond the avarage desktop at the time . I wonder if it was released 5 years laters it may have flourished.

  5. Ken Williams says:

    Good call on Cold Fusion … I was thinking the same thing even before I started reading your article. It is a complete waste of time.

  6. Jorge says:

    I really enjoyed the comparison of so many disparate programming environments. You’ve got a tough choice between Python, Groovy, Ruby and functional.

  7. Reedo says:

    If you know .Net already, then F# could potentially fill your “unforgettable functional programming language” blank. It fully embraces a functional style, but it isn’t as opinionated about it as some others.

  8. Josh says:

    erlang has become an indispensable tool in my arsenal for it’s speed as a socket server and its straightforward parallelism.

  9. Damon says:

    Thanks for the comments guys – apologies for the delay in approving. +10 GMT here. Enjoying reading other thoughts on the languages that have shaped their coding careers vs those that haven’t.

    And if you disagree, then say so – make sure that if a particular language that I would forget is one of the really effective tools in your coding arsenal then please say why. Don’t let some schmuck with a blog bad mouth it ;)

  10. Chris says:

    Ooh, good topic! Of course, I’m very happy to see that Perl gets a nod :) I’m finding that I’m becoming more language agnostic over time. I don’t really care too much what I’m writing in if I can get the result I’m after. Perl will always be my first love, though, the first language I used that did just about everything I needed from web apps to shell scripts to network servers (especially after the horrors of manipulating raw sockets in C). In spite of the massive body of work already out there in CPAN, you still have to endure people’s reactions at conferences when people say “Hey old timer, you still use that?”. I start talking about chopping wood in the snow while outputting raw HTTP headers: then their eyes just tend to glaze over.

  11. David Kramer says:

    I know MANY programming languages, and don’t wish to forget any, no matter how bad. Those that do not learn from history are doomed to repeat it.

  12. Damon says:

    That’s a fair point David – Maybe I can purge all memories of the syntax, etc and just leave some kind of neural marker to flag that those things really didn’t add a lot of value…

    Ah – if only.

Leave a Reply