I have started learning Clojure recently, my main programming language is Ruby and I have no Java experience whatsoever.
Which Java standard classes are a must to know when working with Clojure?
Obviously Clojure doesn't come with a wrapper for everything and a lot of functionality is provided by Java's libraries.
There's like a gazillion of them on javadocs - which ones should I explore?
Where do I look for and how do I install third party libraries (clojure and java ones)?
In Ruby I'd visit Rubyforge or Rubytoolbox, git etc. and then just gem install the package I found interesting.
Which editor/ide for Clojure would you recommend (with the lowest learning curve)?
I am trying to use Netbeans with Enclojure and paradoxally it's my biggest obstacle so far:
Each generated project has some xml files, folders, library dependencies etc. the purpose of I have no clue.
I am doing some labrepl exercises and wanted to try out some of the bundled libraries separately in a new project, but this simple task I cannot accomplish :/
How to distribute clojure programs?
This is pretty much related with the question above.
Are there any clojure community driven blogs with news, code tips etc?
Java is certainly not required, but it's a huge leg up not to have to learn the standard libraries on top of Clojure's standard libraries. Show activity on this post. As Greg above points out, languages like Clojure and Groovy target the JVM for one main reason, so that Java developers can have the best of both worlds.
The Clojure community is growing stronger In fact, 25 percent of current developers have been using Clojure for a year or less, which is a great sign of the health of Clojure looking at 2022 and beyond. The Clojure community is enthusiastic and fast-growing and you will learn plenty if you decide to participate in it.
Clojure and Java can be categorized as "Languages" tools. "It is a lisp", "Concise syntax" and "Persistent data structures" are the key factors why developers consider Clojure; whereas "Great libraries", "Widely used" and "Excellent tooling" are the primary reasons why Java is favored.
Clojure is a great Java library consumer, offering the dot-target-member notation for calls to Java. Clojure supports the dynamic implementation of Java interfaces and classes.
Explore the javadocs only as needed when you can't figure out how to do something using Clojure's core API or the Clojure contrib libraries.
For 3rd party libraries, there is Clojars. I'm not sure how widely it has been adopted by the community, but it's a good place to start. Many Clojure projects are hosted on github, so you can try searching for clojure there.
If you already know Emacs, there is good support for editing Clojure in Emacs. If you don't know Emacs, don't try to learn Emacs and Clojure at the same time. Check out the getting started page on the Clojure wiki for infomation on getting going with a number of different IDE's. Unfortunately, the wiki link on the Clojure homepage is wrong.
Finally, check out Planet Clojure for lots of good blog posts about using Clojure for a wide variety of different things, including helpful posts on getting started.
Which Java standard classes are a must to know when working with Clojure??
None. You can get by with googleing and asking questions on the Clojure IRC channel here. You'll learn what you need over time. You can investigate java.lang and java.io classes, but you wont need them until you need them.
Where do I look for and how do I install third party libraries?
Leiningen is an extremely simple maven-wrapper-kinda-thingy. You can use it for dependency management and as a build tool for your code, http://github.com/technomancy/leiningen, and there is http://clojars.org/ where lot's of Clojure libraries are placed in a maven repo that can be accessed by Leiningen and Maven. http://www.assembla.com/wiki/show/clojure/Getting_Started
Which editor/ide for Clojure would you recommend (with the lowest learning curve)?
That would probably be Enclojure, or Counterclockwise. Most Clojure users use Emacs or to a lesser extent, Vim. Emacs is the best editor around for Lisp, but has a bit of a learning curve to get friendly with. If you aren't willing to learn a language and an editor, you might want to head in the Enclojure/Eclipse(counterclockwise) direction.
Are there any clojure community driven blogs with news, code tips etc?
http://planet.clojure.in/ and the Google group.
How to distribute clojure programs?
Easiest way is with Leiningen and the jar and uberjar commands. You can write your code, and then you can put that code in a .jar file and write a start-up script for it. You don't even have to put it in a jar if you don't want to. Jars are really only useful if you actually compile your code, and most Clojure code isn't compiled. Certain features require compliation, but they aren't used that much.
All in all, the Clojure IRC channel is very helpful and newbie friendly. It can be difficult entering JVM-world without prior experience. Don't be afraid to stop in and ask questions. We're here to help.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With