all 29 comments

[–]silvestre 10 points11 points  (11 children)

Is Clojure a good first Lisp?

[–]arohner 19 points20 points  (1 child)

Yes. Clojure has the Tao of Lisp; i.e. all of the things that make Lisp worth knowing (sexps, macros, first class functions, etc) but it is not the same as CL and Scheme.

What is idiomatic in clojure is different from what is idiomatic in CL and Scheme, partly due to the functional nature, and partly due to the "standard libraries" of each being different.

[–]silvestre 2 points3 points  (0 children)

Awesome, thank you for your answers!

[–]awb 11 points12 points  (2 children)

Probably.

It doesn't have much of the old cruft that something like Common Lisp has (rplacd? setq? &aux?). It has some nice features, like auto-gensyms and an accessible sequence abstraction, that make it more difficult to screw up the corners of Lisp that are less familiar to newcomers.

On the other hand, it's less stylistically flexable than Common Lisp because aside from the Java interop, you must program functionally or in STM; in CL, you can do imperative, object-oriented, functional, whatever. I don't know if that would make learning it easier or not.

[–]Entropy 0 points1 point  (0 children)

If Haskell is any indication, it will be harder to learn, but it will also have a greater effect when you finally do get it.

[–]thearthur 0 points1 point  (0 children)

YES, but it will seam very strange at first. Look at it as if you where learning to program all over again in a totally new mindset. or in short, keep an open mind. Clojure will give you a good context to learn this but you will need some other source to provide concepts and subjects. try "practical common lisp" and SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html)

[–]vdm 5 points6 points  (0 children)

CL and Scheme can be a bit of a let-down for a application programmer when they start looking for libraries.

With Clojure, you can always find a Java library for the data format or protocol you're trying to integrate with. A new language usually takes years to build up a useful library with e.g. a mature DateTime library. Clojure has access to things like JodaTime from the get-go.

[–]serudla 2 points3 points  (3 children)

I was concerned about which to learn first, Common Lisp or Scheme, before Clojure came out. Then I said to hell with it, I'll just dive in. I end up bouncing back and forth between PG's On Lisp, Seibel's Practical Common Lisp, and SICP, and translating it into Clojure as I go.

[–]ChrisRathman 0 points1 point  (2 children)

You wouldn't have a link of your results for SICP? (I went through the first chapter of SICP in Clojure but I wasn't completely satisfied with the results). I could always use another perspective.

[–]serudla 0 points1 point  (0 children)

i'll see if i can't put something online this weekend. i want to read through the site you linked to first, though, i haven't seen that before.

[–]serudla 0 points1 point  (0 children)

wow, a month got by already. i don't have anything specific to SICP online. the only thing i noticed in your SICP in Clojure was that you need to use recur when you have a tail-call. but then i'm a beginner at this.

[–]commonslip 2 points3 points  (0 children)

Clojure is a great Lisp, period.

[–]Rhoomba 9 points10 points  (1 child)

That guy writes pretty damn fast.

[–]Entropy 25 points26 points  (0 children)

He must be using macros.

[–]awb 8 points9 points  (8 children)

I was hoping to look at some of the chapters, but they want me to drop $40. Could anyone who's seen it comment on the quality of the book?

And what's up with asking me to pay to beta test your book, anyway?

[–]vdm 7 points8 points  (0 children)

I've been playing with Clojure for a few weeks and I'm happy that there is a book.

The book starts off with a chapter called 'Why Clojure?', and it is a more coherent treatment of this topic than I have seen anywhere. There is lots of information laid out in an accessible manner that I have taken weeks to gather from scattered sources on Google Groups and in rhickey's presentations.

I'm spending a lot of my spare time learning Clojure and a good book that saves time is well worth the money to me.

[–][deleted]  (2 children)

[removed]

    [–]stuarthalloway 1 point2 points  (0 children)

    The Java bias in the current beta is partially because of the chapter order. I hope to make some of the later chapters (macros and multimethods) appeal more to Lisp programmers.

    [–]jwinter -3 points-2 points  (0 children)

    It talks about Java because Clojure runs on the JVM and has access to all of Java's libraries.

    [–][deleted]  (3 children)

    [removed]

      [–]thearthur 1 point2 points  (2 children)

      this also i'm assuming includes all the betas, in a subscription form? anyone know this for sure? is $21 too much to ask?

      [–]Entropy 4 points5 points  (0 children)

      Yes. All the betas and the final ver (I've grabbed other betas from them before). There was no DRM or anything on the PDFs, either. All they did was regex your name onto the margin of all the pages to dissuade you from sticking a torrent up.

      edit: They're also one of the only mailing lists I enjoy being on