26

A lot of people smarter than me keep writing about when you learn Lisp it makes you a better programmer because you "get it".

Maybe all I hear about Lisp(s) changing your life is just a big practical joke on the newbies, but I figure there's no harm in knowing more about the world, even if I find out I've been sent after a snipe or something.

I'd like to follow the SICP book, and or ANSI Common Lisp, but at the same time be studying a dialect and implementation that I could go on to use on personal projects.

SICP is focused on Scheme, so that's one big vote. Paul Graham said that if he were to teach newbies he'd do it in Scheme, but it sounded like Scheme was still inferior to Common Lisp. But then there's Clojure-- which I'm told is limited in ways, but more practical in others (JVM libraries).

It sounds like I could get through Scheme materials easier, achieve "real" enlightenment from CL, or come close enough with Clojure and be able to get more done with it in the long run.

How much of all of that is true? When should I stop thinking about what to learn about and just go and learn about it?

5
  • 4
    +1 but be careful, they're not all nice here, see what happened to this: programmers.stackexchange.com/users/39479 Commented Nov 6, 2011 at 16:46
  • 1
    possible duplicate of Should I start out with Lisp or go straight to Clojure?
    – Caleb
    Commented Nov 6, 2011 at 23:12
  • 1
    Hi Conrad, "what language should I learn next?" is not on-topic here.
    – user8
    Commented Nov 7, 2011 at 0:13
  • @MarkTrapp My apologies. I thought that the question "What language is best for [x]?" was still on topic because it's a matter of choosing the right tool for the job. I figured there were many people that want to know the tradeoffs of studying something with an academic reputation versus a similar tool that has access to an established platform. Is this still grounds for closing? Commented Nov 7, 2011 at 14:39
  • 2
    @MarkTrapp I happen to think this is a good question. The lisp landscape can be confusing to navigate at first, and the OP has some specific criteria to help people judge a proper answer. I think this question isn't nearly as vague as "What language should I learn next?".
    – benekastah
    Commented Dec 7, 2011 at 16:01

3 Answers 3

19

Maybe all I hear about Lisp(s) changing your life is just a big practical joke on the newbies

Absolutely not true, It isn't a joke.
With Lisp you are going to build any thing you want, even your own programming language.

You will be enlighten no matter what you pick whether it is CL, Scheme or Clojure.
I personally recommend that you learn Clojure since it is an active Lisp, a practical dialect that supports concurrent programming in an elegant way and it runs on the JVM (huge selling point).

ClojureScript brings Lisp to client side programming which is really a cool thing.

And by the way, SICP is available in Clojure.

Welcome aboard :)

4
  • The Clojure translation of SICP is really exciting to me. Last I checked on it it was still a work in progress, but it must be further along by now. Can anyone comment on how this translation still preserves the nirvana you get from reading SICP? Commented Nov 6, 2011 at 18:19
  • @Conrad.Dean: Well, it does still have a fairly prominent warning: "You should not be here yet. Actually, you’re more than welcome to look around. I’ll avoid putting up any gifs of traffic cones and stop signs, but this site is very much under construction, and is nowhere near the point of being useful yet." Commented Nov 7, 2011 at 1:35
  • 3
    The closure to SICP translation is DEAD since 2009, that's sad because the solutions exist in clojure ... Commented Oct 8, 2012 at 9:27
  • if you really want to change your life, learn forth, scheme, prolog, and C, in that order. Python is also worth a sniff or two. Then, if your head didn't explode yet, go and design your own programming languages, or help perfect other new languages. Commented Feb 8, 2013 at 3:33
7

It sounds like I could get through Scheme materials easier, achieve "real" enlightenment from CL, or come close enough with Clojure and be able to get more done with it in the long run.

Don't expect miracles. Working in a language like Scheme will expand your horizons and probably teach you quite a bit about how programs are executed, but it's not an express ticket to the Sphere of Infinite Consciousness.

When should I stop thinking about what to learn about and just go and learn about it?

About 7 seconds after you finish reading this answer.

0
5

If you want to start with SICP go with scheme, just because that is what the book teaches. Moving from Scheme to Clojure will be pretty easy.

2
  • Can you comment on if the main points of SICP translate over in the SICP in Clojure project, or is anything lost between scheme to clojure? Commented Nov 6, 2011 at 22:58
  • 1
    To be honest Its been too long since I have gone threw SICP and have not spent much time with Clojure. The important thing about SICP is not scheme it is understanding the model of computation that they are working up.
    – Zachary K
    Commented Nov 7, 2011 at 9:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.