4 ms·
I'd love to get more into Scala and Clojure, but I don't know the first thing about Java, especially the Java ecosystem (war's, ant, jvm's, etc). Unfortunately
by joevandyk 15y ago
I'd love to get more into Scala and Clojure, but I don't know the first thing about Java, especially the Java ecosystem (war's, ant, jvm's, etc).
Unfortunately, most books/articles on Clojure and Scala assume you know Java.
- ddkrone 15y agoDownload eclipse and just get started if you want to learn java. It's got plugins for practically everything and you can learn the low level details when it becomes necessary.
- ibdknox 15y agoI can't comment on Scala, but I think Clojure is starting to get to the point where you can learn just Clojure and not have to think about Java until much later. At some point you'll assuredly interact with Java some, but there are a ton of libs out there now that are simple Clojure wrappers around most common things. Really, to get started with Clojure, all you need to do is install Leiningen (https://github.com/technomancy/leiningen https://github.com/technomancy/leiningen) and type "lein repl" in a terminal window. No ant, wars, or jvm's to think about :)
- andrewvc 15y agoYeah, I may have overstated the case for Java a bit. You don't need to be a Java expert, but you should know enough Java to be able to create your own classes, and make simple little programs with multiple classes. Really though, you should know how to browse javadocs, and the java ecosystem. It is true that you can use clojure wrappers around java libs (and its nicer too) but a lot of them don't expose the full functionality of their java counterparts, and clojure's young enough that to understand how they work you'll have to dive heavily into their java interop.
- technomancy 15y agoKnowing how to write Java is absolutely not needed at all. Knowing how to read Java can be useful depending on what libraries you need. The one thing that you have to learn no matter what is the basic IO classes, which are covered pretty well in http://copperthoughts.com/p/clojure-io-p1/ http://copperthoughts.com/p/clojure-io-p1/. Before the clojure.java.io namespaces was created, it used to be necessary to interact directly with those classes for even basic usage. (Kids these days! They've got it so easy.) The web application ecosystem can be a bit intimidating to peace-loving programmers with all its talk of wars, but even that is changing with deployment options like Elastic Beanstalk and Heroku. Anyway, you hear horror stories about Enterprise Java Beans, dependency injection frameworks, Maven, and whatnot, but you never see any of that in everyday Clojure.
- ihodes 15y agoI tried to address the "assuming you know Java" bit here http://copperthoughts.com/p/clojurists-guide-to-java/ http://copperthoughts.com/p/clojurists-guide-to-java/ – I think it about covers what you need to go to get started, and it's readable in just 5 minutes or so. Let me know if it's missing anything! You don't need to worry about any sort of jvm ant wars, either. Use Leiningen.