4 ms·
In practice, it is very hard, if not impossible, to make any sustained progress in Scala (and Clojure) with zero background in Java. Both are "power tools" for
by plinkplonk 17y ago
In practice, it is very hard, if not impossible, to make any sustained progress in Scala (and Clojure) with zero background in Java. Both are "power tools" for people comfortable with the Java ecosystem. Both change fast neither is in a state where you can have zero knowledge of java(and the associated bits of the java ecosystem like classloaders, classpaths and so on) and still program anything except toy examples comfortably.
If you don't have a (minimal) java background you should probably acquire that first (unless you have a buddy/mentor who can ease you over any java/jvm roadbumps as they appear).
- runevault 17y agoI've barely touched Scala, but with Clojure the only real roadbump I've run into so far when I was getting started was classpath. If you're doing pure Clojure classloaders seem to be a non-issue, or have been for me to this point (in the middle of building a web app w/Mongodb for a backend). Of course if I haven't gotten serious about building so we'll see if lein is good enough or if Maven becomes a necessity. But in general I'd say you can JIT learn the parts of the JVM that give you pain.
- plinkplonk 17y ago" (in the middle of building a web app w/Mongodb for a backend)" you probably have worked with java before and have internalized quite a bit. For e.g I'd guess you are using some kind of servlet based framework to build your web app. Plenty of knowledge reqd right there. I'd be very surprised if someone could (as of today) build anything substantial in Clojure knowing zero java. (I did emphasise the "zero" bit in my original post).
- runevault 17y agoI touched java 1.0 or some such (super early days) very briefly way back when, but otherwise haven't really touched it. Mind you I'm very much a polyglot programmer type so maybe I just know how to do the right google searches to quickly get answers? And the app I'm talking about is using compojure + CongoMongo so it doesn't take any knowledge of the underlying Jetty to do much, Compojure hides a lot of that.