The idea of a python implementation becoming host to other languages is somewhat interesting. Python has had a good interop story with the vibrant ecosystem of C libraries and is pretty good at being cross-platform as well.<p>However, I'm not sure Clojure is going to impress Python developers for the reasons the author states. Python has metaprogramming and it has an immutable type (the tuple). However, Python has rejected functional purity for pragmatism so I'm not sure there will be a great many Python developers suddenly switching to clojure. It's generally not the implementation that impresses Python developers the most AFAIK -- it seems that most Pyhtonista's like the language more than anything.<p>That being said I'd be interesting to see how far clojure-py goes. Pypy is the ideal implementation for this sort of project as they're aiming to be a JVM-like platform for dynamic languages.
I'd argue that clojure-py is important for a different reason: Clojure is slowly sneaking up on every popular runtime:<p><pre><code> JVM -> Clojure
Javascript -> ClojureScript
Erlang VM -> Joxa
CPython/PyPy -> Clojure-py
</code></pre>
In a few years clojurers/lispers will be able to target multiple platforms with one simple language.<p>As a pythonista myself, I used to feel overcome with nausea just by looking at Clojure/Lisp code. However, Erlang was my gateway drug into the functional/bizarre-syntax world and now, after a few weeks (and two books) with Clojure I'm having a bit of an identity crisis: my brain simply refuses to touch messy-non-Lisp code ever again.
I'm not sure why the author would say that metaprogramming is "absent" from Python.<p>Do decorators and metaclasses not count as metaprogramming features? I'm sure that languages in the Lisp family might be better suited for metaprogramming than Python but the author's claim seems straightforwardly false.
I'm curious, can PyPy JIT-compile Python bytecode by itself, or does it require the source to be in Python? Because it would be really cool if you could target the Python "platform" and get a free JIT as well.<p>Edit: Nevermind, just read the project readme[1] where they explicitly mention targeting PyPy as a goal.<p>[1] <a href="https://github.com/halgari/clojure-py" rel="nofollow">https://github.com/halgari/clojure-py</a>
I'd rather see things being overlaid on a Lisp, ala <a href="http://common-lisp.net/project/clpython/" rel="nofollow">http://common-lisp.net/project/clpython/</a>.
Interestingly, when I saw the release announcement a week or so ago, I thought "neat, but I can't think of any use I'd have for it". And then yesterday I ran across SimpleCV [<a href="http://simplecv.org/" rel="nofollow">http://simplecv.org/</a>] and realised I could potentially use it from clojure, which would be really nice. There really is a lot of nice scientific/visualisation work going on in the python community and it is great to have access to it from clojure.
"Clojure is strong in two areas in which Python isn’t. One of them is metaprogramming, a feature absent from Python which Clojure had from the start through its Lisp heritage."<p>Absent is too strong a word, surely.<p><a href="http://bitshaq.com/2011/07/14/basic-intro-to-python-meta-programming/" rel="nofollow">http://bitshaq.com/2011/07/14/basic-intro-to-python-meta-pro...</a>
Last time i looked the Python bytecode was not considered stable. This means, Python devs might change syntax and semantics in minor version changes. This would be a major problem for clojure-py.
I've used Clojure on and off but never really learned enough Java to be comfortable with it. Clojure-py has been a lot more fun because I can use the Python libraries I'm already familiar with.