Scala vs.Clojure, part 3 – the similarities

There is some more discussion of Scala vs. Clojure. With the Oracle deal, and some discussions about the slow Java 7 release, it looks like Java is detoriating faster not slower. So discussions about Java succession increase. I’ve discussed Scala vs. Clojure here, here and here. Greg Osuri now adds his take in “Scala Vs Clojure”, What the market thinks and compares job numbers for Clojure and Scala.

What I found interesting was a comment to that post:

I’m not really sure why Scala and Clojure are always discussed side-by-side. Sure, they’re both relatively new languages and they are both on the JVM, but Scala and Clojure have vastly different philosophies.

Scala and Clojure are indeed very different, so why compare them? I’ve wondered the same in the past, because, hey, they just don’t look alike. And nothing less than “different philosophies”. As Jesper on Stack Overflow writes:

Note that Clojure and Scala are two totally different types of programming languages – Clojure is a functional Lisp-like language, it is not object oriented. Scala is an object oriented language which has functional programming features.

But then why are they compared and mentioned together? To some, Java looks to need a successor – see my Is Java dead? analysis – both languages have enough momentum to be discussed as one (contrary to Fan for example). Both are functional languages, both support objects, both favor concurrency. So they are remarkly alike. Only on the first look are they quite different, as Scala favors C style syntax for OO and FP while Clojure favors Lisp style syntax. But that’s only lipstick.


In detail, Scala and Clojure look quite similar:

  1. Scala and Clojure are more alike than different
  2. Both have a strong focus on functional programming
  3. Both favor tight Java integration and basing apps on Java libraries (with wrappers) – with Clojure having a little bit more autarky tendencies
  4. Clojure more Lisp style, but with objects (see protocols)
  5. Scala more C style, but with functions
  6. Both favor persistent collections (immutable)
  7. Both favor new ways of concurrency, STM (Clojure) vs. actors (Scala), but both support the other mechanism with agents in Clojure and STM in Scala or Scala CCSTM


So you might wonder, with all those similarities, is it only a syntax thing? I might concur yes. You can think the same way in both languages, what you perhaps choose are differently thinking communities. The major difference is that Scala has very powerful type system – if you’re into that type of thing – Clojure is loosly typed, but can have type hints – also see here. There is a strong type focus in the Scala community, influenced by early adopters.

Hope this helped to clear some things up.

If you liked this post, might also be interested in some other post I wrote about the topic:

59 thoughts on “Scala vs.Clojure, part 3 – the similarities”

  1. Pingback: best
  2. Pingback: fucoxanthin
  3. Pingback: geniux pills
  4. Pingback: intelligex
  5. Pingback: intellux
  6. Pingback: probrain
  7. Pingback: red rhino
  8. Pingback: supreme antler
  9. Pingback: genius reviews
  10. Pingback: testomax
  11. Pingback: alpha f1
  12. Pingback: alpha fuel
  13. Pingback: alpha man pro
  14. Pingback: alpha peak
  15. Pingback: alpha xtrm
  16. Pingback: caralluma extract
  17. Pingback: anabolic rx24
  18. Pingback: cognifocus
  19. Pingback: max synapse
  20. Pingback: nerventrax
  21. Pingback: nutra forskolin
  22. Pingback: testorip
  23. Pingback: testoroar
  24. Pingback: zynev
  25. Pingback: pro forskolin
  26. Pingback: forskolin slim
  27. Pingback: garcinia cleanse
  28. Pingback: garcinia xt
  29. Pingback: forskolin fuel

Comments are closed.