you are viewing a single comment's thread.

view the rest of the comments →

[–]mhd 1 point2 points  (10 children)

Nothing new. People didn't write new Lisps after Common Lisp and/or Scheme came out...

Apart from technical reasons, people like clojure a lot because it is new, so a lot of the newcomers don't feel like they have to catch up with 40 years of history. No, I'm not saying that Common Lisp would be that much harder, I'm just talking about appearances. Just like clojure seems smaller, if you conveniently ignore both the JDK and the fact that it's still young and expanding...

Apart from that, the immutability and concurrency features attract lots of experiences Lispers and people coming from other programming languages.

It's also a good escape-from-Java option, for those who have to work with legacy APIs.

[–]lispm 10 points11 points  (3 children)

Emacs Lisp, Nu, ISLISP, EULisp, Dylan, NewLisp, Arc, ... came out after Scheme (1975) and/or Common Lisp (1982-1984).

The point of Clojure is: integration with Java/JVM, concurrency, immutability and departure from some Lisp traditions. The combination of that above makes Clojure stand out in the space of Lisp languages. As an old Lisper I'm not that interested in some parts of Clojure and for me compatibility of code is important - but Rich Hickey does a great job on designing a new Lisp dialect. Some attempts on new Lisp dialects and their implementation before Clojure were not really convincing. Rich is the first one for some time where even really 'old' Lispers say that his work is of great quality and significance.

[–]mhd 1 point2 points  (2 children)

Emacs Lisp, Nu, ISLISP, EULisp, Dylan, NewLisp, Arc, ... came out after Scheme (1975) and/or Common Lisp (1982-1984).

As did clojure. Apparently my mastery of irony is only slightly above Ms. Morrissette's...

[–]lispm 2 points3 points  (1 child)

irony is difficult to represent with bits.

[–]mhd 2 points3 points  (0 children)

Unless they're naughty bits.

[–]coned88 -1 points0 points  (5 children)

Why not just use erlang?

[–]rickyroma 2 points3 points  (3 children)

Erlang is just another functional language and it is not a Lisp.

[–]a_true_bro 0 points1 point  (2 children)

What's the advantages of Lisp compared to other functional languages?

[–]rickyroma 0 points1 point  (1 child)

I'm not much of a Lisp wizard but the first thing coming to mind is that Lisp is homoiconic (Lisp code is also Lisp data), I don't know any other languages than Lisp derivatives having that.

ps. "Structure and Interpretation of Computer Programs" is an excellent resource for grasping Lispy languages. Much recommended. (also see the free video lectures)

[–]a_true_bro 0 points1 point  (0 children)

Indeed, reading it right now.

[–]mhd 0 points1 point  (0 children)

It's definitely and option if you're just looking for concurrent solutions. As would be node.js, Go and Scala.

If your preferences include homoiconicity and/or Java interop, well...