Does anyone have an opinion on whether Clojure still has a chance to become a major language with widespread adoption?
Does anyone have an opinion on whether Clojure still has a chance to become a major language with widespread adoption?
I think that it's impossible to predict what will be hot or not in the future. You have a zillion frameworks, plug-ins, and languages competing for mindshare, and I ultimately think that no one of these will be 100% dominant. People who like Lisp are going to love working in Lisp no matter what, and those that don't, wont, and it's that simple. You can't expect people who are most comfortable working in Java to move to a Lisp, and you most certainly can't ask a Lisper to do something that looks at all like Java.
I think one thing that will stunt Clojure, is the death of SICP at MIT and Berkely. SICP makes and excellent case for immutability and functional programming, and that knowledge is now more difficult to find and teach. I think the semi-movement from RoR programmers testing out Clojure wasn't going to last, and if people thought that RoR programmers were really going to move to Clojure and make it popular, with its lack of frameworks and anti-OO philosophy, they weren't thinking about the situation too well.
Regardless, Clojure is the only Lisp that currently has a chance for wider adoption, with Heroku and the JVM.
Also, from what I've seen of Rich Hickey's presentations and speeches he's doing a pretty good job making the case for immutability and functional programming.
I'm going on the assumption that there is some feedback loop going on here, and that without people actually being exposed to Lisp in school, then there is probably going to be less people even aware of Lisp's existence. I wonder how many schools will drop Lisp completely now after MIT and Berkeley dropped it.
Now, if Clojure looked like Python, I bet dollars to donuts it would be the number one language in use already.
Making Clojure easier for newcomers would be a boon - I've battled with setup and configuration each time I've tried to use Clojure. Having a simple but powerful REPL environment like IPython would be fantastic.
Download and install leiningen (http://leiningen.org) and then you can start up a repl with 'lein repl'.
I wrote a little web app using clojure and when it came to deployment I was really positively surprised:
1) 'lein ring uberwar'
2) copy resulting war file into your tomcat webapps directory
3) you're done
There's also a heroku plugin if you don't like hosting yourself.
Without leiningen clojure is just unusable though. You have to mess with classpathes and wrapping java command line calls in boilerplate.