I Want to Learn a New Language

By Deane Barker on August 17, 2009

I’d like to learn a new programming language, but I’m struggling with what to learn.  My experience has been in procedural (VBScript, crappy PHP) and object-oriented languages (C#, good PHP).

The temptation is to learn something like Python, but it’s just another OO language really.  There are syntactical differences, but, in the end, the paradigm is the same.  Sure, Ruby has some syntactical sugar to it, but it’s still from the same bloodline.

I’m thinking about going way, way out on a limb…

I want something that’s going to make me look at programming from an entirely different direction.  Any recommendations?



  1. I recommend XSLT (a logical declarative language like Prolog) and XPath (a functional declarative language like lisp). However, I suspect you have already used these, but just didn’t list them. XSLT/XPath certainly uses a different paradigm than OO procedural languages.

  2. I’m working through F# & Haskell, trying to get my head wrapped around the functional language stuff. Scala would be my vote if it was just the list you have here.

  3. I’d recommend Fan (at http://fandev.org ). It compiles to either Java bytecodes, .NET bytecodes, or JavaScript to run in your browser. It’s got a really sane language design (mostly :-) ) coming from mainly from Java and C#, but borrowing bits from Smalltalk, Ruby, and some of the functional languages. But it REALLY doesn’t feel like a “Kitchen Sink” language… they’ve worked very hard to clean up the various ugly bits of Java/C# so it’s really nice to work with. Interestingly, it’s still in the “development” stages (they haven’t tried to publicize it too much) so I feel like you can still make meaningful contributions to the language design… it’s not set in concrete.

  4. Learn Scheme by working your way through the classic SICP, then learn JavaScript. Use JavaScript like Scheme; do the SICP exercises in JavaScript once you’ve done them in Scheme.

    Why: because JavaScript is the most practical functional language out there. Once you know it well, it’s completely useful to your day job, and using it as a functional language (instead of a completely procedural one) makes it really useful.

    Haskell is also good to have fun with, and F# is probably more useful than the average functional language.

    But seriously. JavaScript, man.

  5. I recommend COBOL. I mean, with COBOL 2002 you get OO, so it’s just like C#. :D

    Haskell is probably the one I’d seriously recommend. I know I can’t wrap my head around it, so I’m always impressed by one who can.

    Or go for Ada. Remember, an Ada program compiles, it works. It’s the compiling that hurts ya…

  6. From your list, I’d Lisp or Erlang. Anything in that list would be great to learn, generally more for the experience with a different paradigm and not practical usage, but a lot of stuff is written in both Lisp and Erlang so you might actually have a real use for them in the future in addition to the learning benefits.

    I learned a small amount of Lisp (very, very small) my first semester at UNL as it was being taught to non-CS students (mostly incoming freshman who thought they were taking a class on Office). I enjoyed it. Same with Forth. Prolog, on the other hand, confused me. I wasn’t a huge fan, but that could be because very little was taught and I’m used to learning more about a language than the very basics.

  7. I’d suggest F# – Microsoft’s implementation of OCAML on the .Net framework. Whether or not functional programming proves to be as popular as some pundits predict, if you’re going to do it, you might as well do it on a ubiquitous platform.

  8. I fondly remember coding in Snobol in college. Not the most practical language, but if you are looking for something different.

  9. Actually I would strongly recommend learning assembly. I think you’d enjoy. From there you can more easily try pretty much anything.

  10. I’m going to recommend F#, haskell, or ruby.

    Ruby mainly in there because then you have an excuse to read Why’s Poignant Guide not to broaden the horizons. F# has the kind of neat option of being able to build libraries for the times you run into it being a good fit for your problem but the rest of the project is in C#.

Comments are closed. If you have something you really want to say, tweet @gadgetopia.