On Sep 6, 10:07 am, AlamedaMike <[EMAIL PROTECTED]> wrote: > This article: http://blog.headius.com/2008/09/elephant.html > by one of JRuby's core developers might be of interest to Clojure- > minded people (CMPs -- a name I'd like to propose for members of our > little niche of the world). He discusses the guff that JRuby has been > getting from the CRuby folks. The situation isn't exactly analagous, > since there is no "C-Clojure", but some of the issues still apply, I > think.
There are important differences. As you say, there's no C-Clojure. Nor is there (anymore) a .Net-Clojure. One of the (many) reasons I didn't implement an existing language is that doing so pits the ported version against the native version in irreconcilable ways. To the extent people can write apps in Iron Ruby and JRuby that won't run on each other, nor on C-Ruby/MRI, how is that still Ruby? A ported language will always be dictated to by the 'native' version, always trail it in features, always struggle with the mapping of those features to the host VM of the port. And any extensions toward the host made by the ports are one-way tickets. So, there's an inevitable tension. To their credit, the JRuby guys have come up with a great implementation that at the end of the day may become the fastest, most powerful, and most acceptable to industry. At that point, it might make sense to consider it a different language. If Ruby folks are afraid that JRuby may end up 'winning', well, maybe they will take away the fact that building a new language on a homemade C-based VM/ interpreter and rolling a whole new set of libraries for everything from scratch isn't such a great idea anymore. Languages designed for the JVM (e.g. Clojure/Groovy/Scala) don't have these issues. As far as Clojure, there is only Clojure on the JVM, so no incompatibility issues. There is a single story for library development and extension. One of the reasons I dropped .Net support was I didn't want bifurcated libraries or duplicated library development effort. Many of the blog remarks support the industry acceptance of the JVM. Another point of the post were complaints that JRuby programmers weren't writing idiomatic Ruby, but Java-in-Ruby. This is a common problem for people changing languages - people often complain about newcomers to Lisp writing C-in-Lisp. That's a lot harder to do in Clojure, as its functional and non-OO nature keeps you from replicating the same approaches you might use in Java/Ruby/Python, even to some extent even imperative Scheme/CL. But that's kind of the point of Clojure - it's for people who are ready to take a different approach. Which leaves the coolness factor. I dislike writing Java/C# as much as anyone, and Clojure is my ticket to writing much less of it, while leveraging the efforts of multitudes. As I've said in my talks, most Clojure users go from "eww, Java libs" to "ooh, Java libs", leveraging the fact there there is already a lib for almost anything they need to do. And using the lib is completely transparent, idiomatic and wrapper free. OTOH, if they want to customize their interface to a lib, it is trivial to do so in Clojure. If, however, the stigma of Java extends to libraries written in it, even when consumed from languages like JRuby and Clojure, and people think it's cooler to reinvent than reuse, they need a new definition of cool. Perhaps only open-source is cool, and Java, not having been open source all along, is representative of "the other side". But it's open source now, and there have always been a huge number of open source Java libraries. That's not to mention the very large pieces of open source JVM-based infrastructure - servers, not merely libs - things like Tomcat, Terracotta, OpenMQ, JavaDB etc. So while Java-the- language may be boring, old, and uncool, the JVM platform is an incredibly productive place for a language to be. Getting things done is cool. Rich --~--~---------~--~----~------------~-------~--~----~ 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 To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---