Next Language to Learn? 11

Posted by Warner Onstine Mon, 18 Jun 2007 00:36:50 GMT

Definitely looking for feedback on this one. On my previous list I used to have the following as the next languages to learn and play around in. Of course the only true way to learn a language is to find a project to do in it (but I’ll figure that one out a bit later).

In no particular order:

  • Python
  • Ruby
  • Groovy
  • Objective-C

I went ahead and nailed Groovy (well still working on it but I have learned a lot in the short time I’ve dived into it). I still have my Programming Ruby book (and my Rails book) but haven’t had a chance to dive into those yet. Really would love to compare Groovy’s meta programming with Ruby’s in the near future. Python is still kinda on the radar, but mostly to learn how to manipulate tuples. Objective-C sits above Python for the moment.

Recently though some new (and not so new) languages have entered my list:

Here are some others that I might look into given the right impetus:

  • Lisp
  • OCaml - not so sure about this one

Functional languages are all the rage right now, so it would be good to know why ;-). And Erlang and Scala both have Web frameworks that look interesting (Erlyweb and Lift respectively). Being a Web programmer I would like to investigate these as well.

What other languages are out there that would be good to learn? Why?

Trackbacks

Use the following link to trackback from your own site:
http://www.warneronstine.com/blog/articles/trackback/301

Comments

Leave a response

  1. trank about 1 hour later:

    Do not forget to add Fortress to your list. it is probably the most original one..

  2. Warner Onstine about 2 hours later:

    So, why should I learn Fortress instead of some of these others? Tell me, I want to know :-)!

  3. Bashar about 3 hours later:

    You don't mention why you want to learn a new language. A jack of all trades is a master of none.

  4. Warner Onstine about 5 hours later:

    That's true, but as a programmer I follow the Pragmatic Programmer's advice:

    Learn at least one new [programming] language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.

  5. Fred about 11 hours later:

    lol Objective-C ! What for ? programming a Mac I think. That's all it can do. I used to code in that language 10 years ago. I was programming with the WebObjects thing, hopefully I switched to J2EE before it was too late. Too bad Apple never advertised on WebObjects, it was a great product. And don't get me wrong, Objective-C is a very good language, but except on the Mac side, it's useless. Even WebObjects was programmable in Java in the end. Ok Java with NSArray, real fun, thanks Apple !

  6. r about 13 hours later:

    erlang I think...seen the rest.

  7. trank about 17 hours later:

    there are several reasons to look at fortress.

    • it is designed for concurrency in mind. even the for loops are concurrent by default. the future of development will definitely require ease of development for multi processor systems.
    • functional and object oriented. Traits.
    • very interesting code rendering. your code actually look like pseudo code.
    • it is not verbose (especially in rendered mode) like a scripting language and has the strength of it in the syntax but has strongly typed language features.
    • tests are part of language.
    • To me an important aspect, the developers of the language are pretty strong in their areas (eg, Guy Steele) and it is backed by Sun.

    On the bad side, you will need to wait some more years for a native compiler, or a complete production implementation for JVM. it's syntax may require the assist of an IDE, and it may be have a too scientific taste for some type projects.

    just check the beta language documentation.

    http://research.sun.com/projects/plrg/fortress.pdf

  8. Leo 3 days later:

    Fortress looks good because:

    • From the creators of Java!
    • LaTeX source generation! Whoa! I'm in for sure
    • Difficult to find and even harder to grok documentation! I love a challenge
  9. Leo 3 days later:

    Looks like Objc is going the way of Pascal...which is exactly why I use it! You love Hemmingway, right? Then you have to be all about the dramatic reversal! Stick with the underdog.

    Anyway, I would also say the only real way to find out which one you want to use is to use them all!!! Do what I did with the wishlist man! Use every language you can coherently bind and do it!

    If you think that's too crazy, then I suggest this! Code generators. Write a code generators in each that translate from one to the other like chain-linking code. You're into DSLs and code generation. This is your cup'o'tea. Grab Haskell and make it generate OCaml or Smalltalk code, then build a web frontend using Erlang. Use scheme to generate syntax highlighted HTML of the generated code. Add a pragma or annotation language for Literate programming into your generated code that is interpreted by a Scala program and generates LaTeX and docbook code from the code.

  10. Warner Onstine 3 days later:

    Ok, as strange as it sounds that last part actually has some cool ideas in it (and gives me some ideas for my first Scheme project).

    Thanks Leo!

  11. Kevin 9 days later:

    I'll put in my vote for Erlang for the following reasons:

    • Functional language - Nice to try if you've never done functional programming before

    • Cheap/easy concurrency & distribution - The language supports high levels of concurrency and distributing code over multiple nodes/machines

    • Mnesia

    • ErlyWeb - if web apps are your thing

Comments