> > With pip/easy_install and virtual_env, there's really not much of a point. > Would lein-py be nice? Yeah, but it's hardly a show-stopper. >
To me, maintaining / distributing (virtual) python environments, even in a small (but mixed) organisation, is more of a hassle than plonking in a few dependencies in a project.clj. What I want is different from what you want. I want standalone script files > and Clojure will not do that. Tell me, why do you like having project files > for everything? If you're doing bigger projects, I can understand why you > want project files. > Almost goes without saying it probably is, although I don't think our usecases aren't too different. I don't do huge projects, but like Leiningen because it makes distributing / building / running JVM Clojure programs consistent and repeatable on different machines (and different OS'es). I consider 5 lines of project file and one install possibly the smallest sacrifice possible. Python doesn't force you to think asynchronously. > If your usecases don't involve multithreading, neither does JVM Clojure. As an example, see RestFn.java, AFn.java, etc. > I don't think a language's internal implementation is a valid example for it's ease of use / adoptation. If that reasoning would be symmetrical, Lisp use would have been huge. There surely are simpler examples people will run into much more often, like (bigint "123") works but (int "123") throws an exception. I'm pretty sure this is not only about being implemented on the JVM. A Clojure-in-clojure version on the JVM might not even have that particular problem. I've also seen things work the other way round, (.hashCode char) working 100 times slower than (int char), or vector implementations beating supposedly 'optimized' Java array implementations. I can understand this is hard to expect or reason about, but I'm sure a Python implementation will run into such issues as well. Those might be easier to reason about by someone with previous Python experience, but that won't help Clojure adoption by people not acquainted with either. I think it's more the restrictions the JVM puts on it. > It's a deliberate choice of the Clojure designers to keep the layer between Clojure and the host platform as thin as possible. In the short run, this will be a boon to both the language designers as well as budding Clojure developers coming from their respective platforms. In the long run it will probably pay off as well, seeing it's a pipe dream to create a language that will work uniformly on all of them. In the meantime, it will be considered against Clojure that there's no consistent clojure library support for even the simplest of tasks, or that one task is easier to accomplish on one platform compared to the other. Easily skipping over the huge advantage every one will support different OS'es / browsers. Python has a lower barrier to entry than Java. > Don't complect simple and easy. I have more experience in writing Python than Java, but haven't had major issues with gremlins surfacing from the underlying implementation on the JVM. Being able to find and read documentation of a library you want to use usually suffices. You can use all the python libraries. > You can use all Java libraries :P Seriously, the big thing about Clojure is it's ease of interop, whatever the platform. Just jealous you guys get SQL Alchemy though ;) It has none of the complexities with libraries > There's tons of simple, well designed API's / libraries for Java. Not all of them are overengineered frameworks. Also, there's a lot more Clojure libraries for the JVM. There's warts in the basic Python implementation and a lot of poorly thought out Python API / libraries as well. Does that matter much when I want to use Clojure Py ? I doubt it. Closing: I'm sure there's value in a Python implementation of Clojure. Clojure will be hard to pick up as a new language, and different versions will help adoption by people that already know the host platform. For newcomers to Java and Python, both will suffer implementation details. However, for newcomers to both Python and Java: Clojure documentation has been more targetted to the JVM version, and there's more Clojure libraries designed for the JVM. Using Leiningen to get Clojure and Clojure / Java libraries, stting up a REPL and running Clojure code is pretty simple to set up and use, I think arguably easier than a Python / pip / virtual_env setup. Clojure and Leiningen integration in Eclipse is very good, even for people new to Java. Be sure to try Clojure/py though if you come from the Python side though. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en