Clojure implemented on top of Python
github.com
github.com
On the other hand, I've been wanting to learn Clojure. It'd be nice to see this project mature.
That's what seems the real benefit of it to me. Maybe Python will become not just a language, but a platform, like JVM or CLR, supporting multiple languages.
packages written in pure clojure are also distributed as jars and the ecosystem is strongly dependent on maven.
Why? Python is likely to be installed in far more environment than Node, and for scripting, Clj on top of Python provides the faster startup of Python interpreters without the callback spaghetti inherent to Node. Because even if Clojure(Script) handles functions better than Javascript (both in verbosity — fns are no more verbose than lets — and in its scoping handling) it's still callback spaghetti.
No, why is clojurescript a better fit (than clojure, running on Python)
The thing is, there's nothing about PyPy that says it has to be implementing Python itself, and recently here on Hacker News there was an article where someone was singing the praises PyPy as a way to implement the language he was developing. http://tratt.net/laurie/tech_articles/articles/fast_enough_v...
And it seems this person had come to the same realization.
EDIT: Oops, rereading I see I misunderstood something the README said, and he is only now considering using PyPy instead of CPython.
Will definitely be keeping an eye on this.
I only know about since vimclojure uses it (to good effect, so it obviously works fine with Clojure).
I worked on an ecommerce project in the early 00's which compiled a high level turing complete DSL (not that far from LISP TBH) to XML and then used a virtual machine written in Java to run the XML. I've never seen a language in which the compiler output was 2 orders of magnitude larger than the source code.
I really don't know how anyone came to the conclusion that any of that was a good idea.
I still have nightmares about that.
Ever used SWIG, or qt designer, or anything else that compiles to a source code format? (heck, I can only assume most of those languages-that-compile-to-javascript must be similar)
(not that that makes your project any less bad)
Actually come to think of it, what ever happened to clojure-in-clojure [1] - that would have made implementing clojure on top of any VM, relatively trivial
As far as lazy goes, how does clojure does it? Thunks? The implementer can opt for thunks or generators(doesn't generator serve as an higher level abstraction to manually "thunk and force") as far as Python implementation goes.