Some musings on Scala and Clojure by a long time Scala dude
skillsmatter.com
skillsmatter.com
If you want a simple and concise syntax, hate long compile times, don't mind polish notation, want purer functional programming, don't need an IDE, and prefer dynamic typing, Clojure might be your cup of tea.
If you like using an IDE, autocompletion, refactoring and almost 1:1 Java interoperability, want a statically typed language with both functional programming and OO and still be able to do things you can't do in Java (like duck typing, "pimp my library", and dynamic method names), need a language that has high adoption chances in both Startups and Enterprise Java shops - and don't mind LONG COMPILATION TIMES, (and fine with never really fully understanding CanBuildFrom) Scala might be your better choice.
If you didn't choose Scala ONLY because of long compilation times, make sure to give Kotlin a look. If you didn't choose Clojure because it's dynamically typed or because (not (like you polish_notation)) then try Haskell
I don't have much experience with static typing outside of basic Java interop, but I gave it a shot on a recent project and it was pretty cool once I got the ball rolling and it caught my first actual bug.
Shrug, I've used Scala and Clojure both (more the latter than the former). Both are pretty cool and have a lot going for them. Both have downsides (though in full disclosure I think Clojure is much better at making up for its downsides)The real choice there is: Do you want static typing -- and all that implies -- or not?
I'll have to disagree with a blog post story a few days ago about the maturity of the Scala community.
I'm not seeing that. Maybe you can help?
Language designers should also keep it in mind when describing their language. "I made this language with these problems in mind, and these goals in mind".
This talk is actually better than most but in general when people compare two languages they bash one and praise the other excessively. I'd like to see an end to that trend and for speakers to start saying what a tool is meant for and what its not meant for.
The point of this talk is to make light of the fact that Scala is now being used for purposes to which it was not originally intended. These new uses are much more in line with Clojure's intended uses. This makes it appropriate to compare them.
Totally agree on Clojure's documentation problem (being used to Racket's amazing docs), but at the same time it's very easy to just read the source of the library you're trying to use. Especially with Emacs' quick source code navigation.
I went to a 1-day Scala unconference and generally liked it, but this guy was a giant dick to me when I asked what I thought was a pretty reasonable question.
The experience definitely made me wonder about the Scala community.
I just hope he adopts another language and drops Scala, because his behavior seems to become an increasing burden to the community.
¹ The last one is only hearsay, the two others certainly not.