Hacker News new | past | comments | ask | show | jobs | submit login

Maybe this should be a separate 'Ask HN', but...

Previously over the last 6 years I've coded in PERL, PHP, JAVA, and C#.

I'm currently 'retraining' myself over to Python for scripting and web programming (django).

I plan to stick with Java and C# for the time (our shop is about 50/50 split over SOA boundaries). And I want to keep fresh in these as my bread winner languages until I get out on my own. (Not to mention with the advent of Jython/IronPython, and Clojure it might not be bad to really dig some heels into the JVM/CLR idea.)

BUT, after I finishing working through AIAMA in Python. I want to get to work on picking up a lisp dialect and work through SICP. So I was curious, what would be a better angle of attack: Scheme, CL, or Clojure. I'm drawn to the idea of Scheme as it's been painted as a simple language to explore 'deep CS' concepts. But, Clojure sticks with the JVM/CLR strategry.

Would I be missing out if I didn't start with CL? (it sounds like the Latin of programming languages)

Are Lisp dialects (at least those mentioned above) more similar than different; or, How difficult is it to switch dialects?

Is Clojure specifically a bad choice for working through SICP?




Clojure is what you'll want to be using if you ever start doing "real programming" in a useful, expressive Lisp. Don't start with it, though.

In the following order:

    1) Learn Scheme and get through SICP. Wind up with
       enough of an appreciation of Scheme that you could
       write real programs in it, given enough patience.
    2) Attempt to learn Common Lisp.
    3) Become frustrated and give up on Common Lisp.
    4) Learn Clojure instead, and become overjoyed at the
       real work you can get done.
I'm mostly joking about steps 2 and 3. They're based on my own experience with CL (and Elisp) and might not apply to you. Going from Scheme to Clojure will be a bit of a shock, though, because the former is absolutely as sparse as possible with lexical punctuation, and the latter is totally littered with it (particularly stuff that's borrowed from Perl and Ruby). If you've written enough Perl, though, you might not care.

By the way: Scheme is Latin, and CL is Ancient Greek. ;)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: