Hacker News new | ask | show | jobs
by ACow_Adonis 4563 days ago
I spent the last year doing lisp as much as I could, and I've become a right convert. I've got some C and python down already.

This year, I am currently torn between:

-Haskell (to go full blown functional crazy) -Smalltalk (to go full blown object crazy) -Javascript (to finally write some stuff for the web/browsers) - Java (to sell out and lose the will to live?)

Any advice is more than welcome. I'm probably looking for the "programming language that changes the way you think" aspect, since I've already got a paying job...

3 comments

I recommend going out and buying the third edition of [Programming in Lua](http://www.amazon.com/exec/obidos/ASIN/859037985X/lua-pilind...), then using that to learn Lua before getting into JavaScript.

PiL will present examples that will change the way you think in several different ways, which you will then be able to leverage in any other programming language (most of the time, depending on how restrictive the language is).

You have Lisp knowledge, so maybe Haskell is not the best candidate for "a new way you think". Given your background I would say you probably would enjoy Scala more than Java (targeting the same JVM). I am not sure if one can learn enough from Smalltalk to justify the effort it takes to learn an in-practice useless language. If you don't speak JavaScript yet, that's a good candidate, especially if you use your FP experience in it and not just go the OO way most people do.
No, Haskell is very different from Lisp. It makes perfectly sense to learn Haskell.
You have more experience here thanks for correcting me :) What I meant was that they are not two very different worlds. I myself picked Haskell over Lisp hoping to gain the benefits that I would get from Lisp but with some advantages. Would you also recommend the other way around? Learning Lisp after Haskell? I don't mean the syntactical differences or the real-world usage. Solely the "way of thinking".
Actually Haskell and Lisp a very two different worlds. Some basic abstractions are shared, but Functional Programming tends to be much much more advanced in Haskell. Haskell is the standard language for some branch of functional programming and has a good/great eco-system for that. It's main use seems to me to advance the state of art in Functional Programming and applications of it.

Lisp OTOH is a multi-paradigm languages with much more emphasis on OO and interactive development. Lisp is much more diverse and favors a very different programming style - slightly more pragmatic. Lisp had its main application domain in AI, but nowadays it's a bit more diverse - often it is used by individuals or small teams. One of the larger applications is the flight search engine of Google. Others are in music composition, planning and scheduling (satellites, people, logistics, ...), etc.

Off topic since this is not a programming language, but AngularJS will change the way you think.