Programming languages to learn:

  • Lisp
  • SmallTalk
  • Haskell
  • Ruby

Languages I need to become more proficient with:

  • Python
  • Lua

Anything else I should add to my list? How about Perl or how about Scheme instead of Lisp?


8 Responses to “Programming languages I need to learn”  

  1. 1 ak

    Don’t learn Perl. Compared to e.g. Ruby, it’s a lot less flexible (especially when it comes to more complex data structures), and comes with a crude and sometimes hard-to-read syntax. Also, object-oriented programming isn’t really fun with it. And it’s so 90’s…

  2. 2 Soeren

    I’d think again about learning Haskell. It has some interesting features (especially if you’re interested in functional programming — with regard to your list … very likely) but it’s use is more academic. I learnt it at university in the first semester. They wanted to eliminate the programming headstart of some students and chose a functional one. Was interesting, but never got in touch with it again.

    Take a look at Erlang -> http://www.erlang.org
    It’s not widely spread, but extremely reliable with a lot of new concepts. Open-Source but with a big company actively using it (Ericsson). For example, the most stable jabber server (ejabberd) is written in it and offers some stunning features which would have been nearly impossible with another language.
    Btw, available through macports.

    Another one I’d prefer over Haskell is OCaml.

  3. 3 kusmi

    Don’t look at programming languages, look at Frameworks. In todays world a programmer might need to switch languages almost on a project basis. It’s much better to learn frameworks or coding methodologies. I agree that some programming languages “force” you to adopt a certain programming methodology (e.g. Ruby:blocks, Objective-C: Cocoa, etc) but I would focus on learning those, instead of learning boring syntax :-) That’s the interesting part :-)

    And from my experience, higher-level programming languages usually have more interesting programming methodologies (C has pointers… C# has LINQ) which will open your eyes and sometimes you can cross-bridge those ideas to other languages/projects, which is fun :-)

  4. 4 Hoa

    - ruby is like perl or python (to my opinion, learning only one of them is useful, the other looks like)
    - scheme almost equals lisp (learn only of them, the other is identical)
    - no one is using smalltalk (don’t both learning it)

    What is interesting is to know at least one of each kind of language :
    - procedural (like C, pascal)
    - object (like C , Objective-C or smalltalk)
    - functional (like caml, lisp or haskell, though I think that caml is more used (and it’s french ;) ))

  5. 5 Frog Masterson and His Dog Spot

    I would go with Scheme, actually, not Lisp, if one must learn Lisp. It’s much more self-contained and elegant.

    I would learn Ruby before SmallTalk: If you know Objective-C, and you know Ruby, you’ll have 90% of SmallTalk. The rest of it (bad GUI, source code stuck in it’s own environment) you don’t need.

    I would trade Haskell for OCaml.

    How does one become “more proficient” with Python? There isn’t anything “more” there. It is what it is, and that’s all what it is.

  6. 6 masukomi

    Languages to consider: Parrot Assembly (PASM) so you can write your own lang and have it run practically everywhere. IO ( http://www.iolanguage.com/about/ ) and maybe even Pluvo ( http://inamidst.com/pluvo/ ).

    I just taught myself SmallTalk and i have to say that the smalltalk environment is one of it’s greatest strengths and weaknesses. There’s not nearly the same level of code sharing to learn from as there is in other languages because there aren’t files sitting around with the code for people’s apps in it. It’s all in the image. Yes it can be exported to a file but people tend to just share little image exports which means it’s a lot harder to use google to find out how other people solved a given problem while you’re learning.

    I would move ruby up the list because then you could use Rails, which rocks. And probably move haskell up too because it’s such a dramatically different perspective on things.

  7. 7 Morgan Aldridge

    I’d tend to agree with Hoa, above. Although, I’d say learn Perl & Ruby, or Perl & Python. Perl is used so abundantly that it’s good to learn as it can be, and definitely has been, used to do anything and everything, but it can be poorly written or just very obfuscated (that’s one of the powers of Perl). Python and Ruby are much better in that respect, but it’s worth learning Perl just so you can understand some of the code snippets, scripts, and programs you’ll run into.

    I also agree with Frog Masterson and His Dog Spot entirely. With many languages, learn one or two languages well (preferably based on different concepts), then it feels much like learning a new dialect when you have to use one you’ve never learned before.

    I started with C and C , therefor Pascal, Java, PHP, and most of Perl cam pretty easily. Obj-C was an easy step (it was pretty relaxing, actually), and from there I’ve gone to Io (http://www.iolanguage.com) which I’d _highly_ suggest (I picked it over Ruby and Python).

    Most importantly, have fun with it!

  8. 8 Simon P. Chappell

    Skip Perl and forget about frameworks. Real programers learn languages and use frameworks.

    Stick with Lua, learn Erlang, Haskell, Scheme and OCaml.

Leave a Reply