5 ms·
How to setup Clojure from scratch
- j_baker 16y agoOf course, you could also just use cljr: http://github.com/liebke/cljr http://github.com/liebke/cljr
- twism 16y ago..or leiningen http://github.com/technomancy/leiningen/blob/master/README.md http://github.com/technomancy/leiningen/blob/master/README.m...
- devonrt 16y agoLeiningen's goals are slightly different than clrj's. Leiningen is more like a Maven type project descriptor/build system whereas cljr is more like an easy_install-esque tool. cljr can be used without creating a project.
- benatkin 16y agoYes, but it does have a repl command, and a swank plugin, and I like using it as a virtualenv-type tool even when I'm not working on a project. (And most of the time I am. I find the best way to learn is to attempt to write a real piece of software, and it has the added bonus that I might be able to add something to my portfolio.)
- benatkin 16y agoYes, and then you would also be able to install libraries without editing a shell script.
- adamilardi 16y agoIs clojure planning to integrate with eclipse? That strikes me as a good way to get new users.
- acangiano 16y agoIt is through Counterclockwise: http://www.assembla.com/wiki/show/clojure/Getting_Started_with_Eclipse_and_Counterclockwise http://www.assembla.com/wiki/show/clojure/Getting_Started_wi...
- psadauskas 16y agobrew install clojure
- demoon 16y agoHm.. Did you read the article? It's written for folks who want to know how everything works and what things are composed of.
- hexidecimal0 16y agoKeep it up Antonio! Even though my comment has nothing to do with Clojure, but I just wanted to let you know that I'm very impressed by quality of your average post. You're like Joel Spolsky of Web 2.0 :)
- rclaycoke 16y agoWhat is Clojure performance like? I checked with http://shootout.alioth.debian.org http://shootout.alioth.debian.org and haven't found it there. We're doing some lightweight geometrical computations like figure intersections, etc (queued, not real time) and we built them in JRuby just for fun (JVM is a requirement here) so I'm wondering how would Clojure perform there. I'm asking here because I don't know a bit of Lisp so I can't just quickly code a benchmark. Thanks!!
- acangiano 16y agoI tried to convince Isaac to include Clojure in the benchmarks. He will probably include it once Clojure 1.2 (which has implications for performance) is released, provided that all the benchmarks are ready. Generally speaking, I found the following to be true: Java < Scala < Clojure < ... < JRuby. Clojure is relatively fast. It really depends on the program at hand, but in my experience, having to REALLY generalize, it's at least an order of magnitude faster than Ruby/JRuby.
- technomancy 16y agoSimplistic idiomatic Clojure is much faster than JRuby, but often a bit slower than Java and Scala depending on how much you rely on reflection. However, if you push it, Clojure can be as fast as anything else on the JVM; it's just a matter of how much time you spend profiling and optimizing. In many cases you can output the exact same bytecode in Clojure that you'd get from a several-times-more-verbose Java program. An extreme example: http://meshy.org/2009/12/13/widefinder-2-with-clojure.html http://meshy.org/2009/12/13/widefinder-2-with-clojure.html
- tl 16y ago$ time echo '(println "Hello, world!")' | clojure Clojure 1.0.0- user=> Hello, world! nil user=> real 0m2.756s user 0m1.040s sys 0m0.140s $ time echo 'print "Hello, world!"' | python Hello, world! real 0m0.018s user 0m0.000s sys 0m0.010s Beware the horrible startup time for small programs.
- bphogan 16y agoOk, I'm totally a noob with Clojure, but I thought all I had to do was java -jar ~/clojure.jar and I got a REPL. Did something change recently? This seems like an awful lot more work than it should be.
- acangiano 16y agojava -jar ~/clojure.jar will give you a REPL. It will be a less convenient REPL though. In particular: * No history support. Try to use the arrow to go back to the previous instruction and you'll be greeted by ^[[A. * No tab completion. * No exit function. * No startup file with your customizations. * No clojure.contrib automatically in your classhpath. * No simple way to automatically place a list of jars for a given project in the classpath by simply specifying them in a file. java -jar ~/clojure.jar will do. But this, I believe, is nicer.
- briancarper 16y agoYou can always exit via (System/exit 0), 0 being the return code. `java -cp clojure.jar clojure.main` is the preferred method of starting Clojure rather than using -jar, I think.
- acangiano 16y ago> You can always exit via (System/exit 0), 0 being the return code. That's how I implement the exit function in the article.
- xpaulbettsx 16y agoI knew that HN would have an awesome list of resources on this topic, thanks for the info guys!
- goodbadwolf 16y agoWell, you start from inventing the Universe