Hacker News new | ask | show | jobs
by mjt0229 4685 days ago
I'm interested in this, but why not just write natively in Scheme? I really like Clojure, but if you don't need the Java interop, Scheme seems just as nice.
4 comments

Scheme is great, but I think there are several key features that clojure has that scheme doesn't provide by default, including (but not limited to):

- Persistent Hash-Trie based Data Structures

- Beautiful asynchronous constructs

- Multimethods

- Protocols

Obviously I in no way intend to discredit scheme, nor start a lisp flamewar :) /sidenote I love this article comparing a game written in 4 lisp dialects (http://technomancy.us/169)

For one thing, one might get interoperability with clojure libraries (at least those that aren't just wrappers around java libraries). For another thing, clojure has some nice language features and I'm all for supporting multiple lispy dialects on top of various compiler/runtime environments. My personal wish is to have clojure running on SBCL with trivial interoperability between common lisp and clojure code.
Clojure running on SBCL seems like a no-brainer. I do not know why this does not exist. SBCL is super high-performance and the underlying lisp semantics should be a perfect fit.
Clojure is intended to be a hosted language. Building on and providing first class access to a rich ecosystem of libraries and tools was an explicit goal.
Clojure was initially implemented on cl. You should be able to find the lisp version in the history of the repo somewhere. Might be an interesting starting point.
I'm pretty sure this is wrong.

Rich originally made two other JVM/lisp hybrids, one was running java code inside CL, the other was CL on the JVM. [1]

Clojure originally targeted the JVM and CLR, but AFAIK, one of the main motivators was always to run on a major platform.

http://sourceforge.net/projects/jfli/

He did not made any Lisp/JVM hybrids. More like foreign object interfaces to Java and .net.

One was a Lisp(Works) FFI to Java (jfli) and the other was a generalized version of that (foil).

I have seen too the early sketch of Clojure in CL.

Look here: http://clojure.googlecode.com/svn-history/r454/trunk/src/lis...

Right, I didn't mean to imply that jfli and foil were new languages.

I didn't realize there was a CL version of the compiler, cool! Thanks for the link.

> Clojure was initially implemented on cl.

Really? I thought Clojure evolved out of Rich's never-finished CL-subset-on-JVM implementation.

If one already knows Clojure, the value is obvious: you don't need to learn a new language.

It's also of course debatable that scheme is "just as nice", so you can imagine there are people who, other things being equal, prefer Clojure.

Certainly. As I said, I like Clojure, but I'd be happy to be able to program in Scheme as well. I guess the history of LISP should have told me that not all people who like one LISP necessarily don't mind using another.
Clojure has a much stronger polymorphism story than Scheme. This makes sense as Clojure was designed to live in an OO host language. Practically this could mean, say, much cleaner Objective-C interop.
> Clojure has a much stronger polymorphism story than Scheme

Many Schemes have their own OO implementations and they all support polymorphism.

Clojure polymorphism not= OO polymorphism
For developers interested in a Lisp that cooperates with Objective-C (and C), I always recommend Nu -- http://programming.nu.