
Clojure & Scala Similarities — Twins separated at birth? - twism
http://www.bestinclass.dk/index.php/2010/04/clojure-scala-similarities-twins-separated-at-birth/
======
prog
I 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
What prompted you to want static typing? What did it help you do better?

~~~
prog
That 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>

[2] [http://docs.python.org/py3k/library/struct.html#module-
struc...](http://docs.python.org/py3k/library/struct.html#module-struct)

------
wheaties
Being 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."

------
michaelneale
Probably 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
How 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
@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
> 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...](http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+python%2C+java&l=)

Edit: oooh, downmods

~~~
swannodette
I 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
Hacker 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.

