4 ms·
Clojure & Scala Similarities — Twins separated at birth?
- michaelneale 17y agoProbably worth noting that in clojure you can have actors if you like (either in clojure, or using some library - even akkasource.org) - likewise, there is STM in scala (see same link) as a library. It isn't one or the other. I really love clojure, but as I have said to others, have given up hope that a new type of lisp will catch on for more than a very small group. I would LOVE to be wrong about that.
- francoisdevlin 17y agoHow much would you (and anyone in Clojure's corner) love to be wrong? Take a hard look at that question, and decide what you can do to make it a reality. SFD
- lbj 17y ago@michael: Today is your lucky day :) The growth of Clojure has been exponential both among users and clients. A few years ago nobody could have imagined that a Lisp would have such rapid uptake, but it seems that the combination of a solid product, great libraries (JVM) and a productive community was all it took. IIRC the Google Group is now in excess of 3000 members and if you'd like to try it out I suggest you follow it or join us in #clojure on irc.freenode.net - If you're a professional developer it'll be worth your time, if not you'll at least have some fun!
- nearestneighbor 17y ago> The growth of Clojure has been exponential both among users and clients. A few years ago nobody could have imagined that a Lisp would have such rapid uptake, but ... Reality check. Both are in the noise: http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+python%2C+java&l= http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+python... Edit: oooh, downmods
- swannodette 17y agoI think a more relevant leading indicator of Clojure popularity for the Hacker News crowd is GitHub. Clojure is bumping heads with Lua and Erlang at the moment and that is pretty cool.
- nearestneighbor 17y agoHacker News and Reddit are gamed by advocates and bloggers. I recall "dons" (Haskell promoter) commenting on Reddit that it's awesome that 30% of Haskell's repositories can compile. The amount of FOSS code in some collection means nothing.
- banjiewen 17y agoYes, they're noise compared to Java, of course; but he didn't imply that Clojure was going to overtake Java anytime soon - both metrics were introspective. Looking at this chart, the growth does seem to be both exponential and rapid: http://www.indeed.com/jobtrends?q=scala%2C+clojure&l= http://www.indeed.com/jobtrends?q=scala%2C+clojure&l=
- nearestneighbor 17y agoYes, really encouraging: http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+fortran&l= http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+fortra... Someday, they might even catch up to Fortran.
- prog 17y agoI tend to agree most of the post apart from "1. I think Clojure is much simpler". I am not saying that Scala is simpler, just that its a matter of preference. After spending a fair amount of time using both languages (5-6 months each) IMO opinion it boiled down to what style is more suited for a specific project. dynamic + lispy or static + multi-paradigm. One feature of clojure that I did miss in my scala project was macros. The reason I picked scala for the project was that I wanted static typing for the project. Both languages are really neat and I would rather be using one of them instead of java.
- francoisdevlin 17y agoWhat prompted you to want static typing? What did it help you do better?
- prog 17y agoThat particular project (simulation) required a lot of bit twiddling and working with data of various sizes 8-bit, 16-bit, 32-bit. So having the specific types nailed at compile time helped. Lack of unsigned data on the JVM was a pain though. Two other reasons I picked scala for that particular project was OO support and mutability. The problem fit OO better and performance was very important (I was anyway taking a bit of a hit choosing JVM over C), so with scala I had the option of for e.g. setting up a C like while loop with a counter rather than mapping a function. This was maybe 6-8 months back. Since then clojure has added neat concepts like transients[1] which allowing mutability in a controlled manner within a function. So thats worth a look. I just preferred to go for a multi-paradigm language rather than a semi-pure functional language as I wasn't sure how the project needs would evolve. What I would have really liked to do was use Python. I actually created an early prototype but the performance didn't meet the needs. I look forward to unladen-swallow :) Python did have some neat libs like struct[2] that would have worked. IMO the choice of static or dynamic should be decided by the problem at hand. I feel dynamic tends to work for majority of projects so thats what I usually prefer but sometimes static works best. [1] http://clojure.org/transients http://clojure.org/transients [2] http://docs.python.org/py3k/library/struct.html#module-struct http://docs.python.org/py3k/library/struct.html#module-struc...
- wheaties 17y agoBeing a Scala programmer I can tell you that most of the developers I've talked to don't, in general, try to program in an imperative manner. For some solutions/problems it is far more concise to write it as imperative code. That's not a problem or negative of the language. That's a plus. This appears nothing more than a "I'm a fan of this language, mine is better" post. They're just different languages. Both do the same thing but in different ways and both happen to be on the JVM. Neither one is "better."
- anonjon 17y agoAs a fan of Clojure, I've got to agree. I was really hoping for a section after 'why you should use Clojure' dedicated to 'why you should use Scala', but there wasn't one.