As someone who decided to use Scala at his previous company (Foursquare), but chose to use Java at his current one (Hometeam) I will say that the overriding reason behind my personal decision was compile times.
Compile times became a huge drag at Foursquare and I did not want to repeat that experience. I love many many many things about Scala but having engineers sit around for huge periods of time waiting on their compiler just wasn't worth it.
Other's opinions may differ from mine in many ways. Just offering up a single data point.
For a while. Eventually we abandoned SBT in favor of pants which is, imho, a much better build tool. It also supports incremental compilation but it was still slow.
Lots of people have commented elsewhere, but here we can go at it again. This article is a nice mix of falsehoods, delusions, and conjectures from little to non-existing data, a few anecdotes at best. Don't waste your time.
What a bull* article. There is a lot of Scala traction even in the big enterprises. What is sure is that Java lost a lot of ground with Oracle at the driving wheel.
But it definitely isn't anywhere near as functional as Scala, which this article completely misses. Seems like the author basically does not even know what functional programming is.
What a load of crap. Lightbend released Lagom for Java because... drumroll.. Lagom is meant to bridge the gap between microservices and legacy Java monoliths.
You made an important point. As I mentioned my other comment I think Scala is in a steady state. If there was rise and fall I think it was in margins not in comparison to, say top 10 mainstream languages.
Scala is >12 year old. Excluding libraries /frameworks, there are couple of popular Scala projects like Apache Spark, Apache Kafka. Other than that I am not aware if any big/popular open source projects are using Scala. May be it is used more in internal software development at companies.
So I think Scala is more or less steady in usage. There is no rise or fall of Scala.
His only quantitative datapoint is the TIOBE index where Scala has fallen from #13 to #32 over the last four years.
http://www.tiobe.com/tiobe-index/
What backs your claim that Scala usage is comparatively steady in usage? The amount of software grows over time so that must be factored in or else people could say COBOL is just as popular as it was before.
I think those that are upset about a realistic look at their favorite language should read through to the end. He goes into a lot of the benefit of functional programming and Scala over java. It certainly doesn't deserved to be flagged. The TIOBE index shows a pretty clear rise and fall for Scala in terms of relative popularity (#13 in 2012 to #32 in 2016). Here is the last bit of the article:
> Scala will probably never become the next big programming language. But, it will be around for years to come as the language of choice for niche problem domains such as Big Data programming.
EDIT: Thank you dsabanin and sndean for the clarification. The flag is justified -- his data is definitely faulty. There was no rise of scala to #13 in 2012 (I looked through a few other months of TIOBE too). It looks like it has been steadily rising.
It is unfortunate, most of the article (excluding the clickbait hook) is about the benefits of functional programming (like Scala).
Java has been sloooowly adding features that Scala championed in the JVM world; lambdas and type inference within them in Java 8, REPL in Java 9, partial cases clases in Java 10 (yes to the syntactic sugar, no to the ADT semantics and pattern matching). Adding those features underscores the validity of Scalas vision.
But if you've experienced the real thing Java is just too little too late.
Good luck waiting for hobbled cases class for the next 3 to 4 years.
By the time Java has those the rest of the world will be accustomed to union types and literal types.
Seems a little clickbait-y and I don't think it's true from what I've seen anecdotally (though I work in data science with Spark so I'm clearly biased). I started out as a Scala skeptic at my current company, but have grown to really like it.
However some of the critiques of Scala I think are well taken.
1.) It's true that there are often a zillion ways of doing things. In contrast to Python, readability and consistency don't seem to be a core part of the language's culture.
For example the first element of a tuple is x._1 but the first element of a list is x(0). I understand this is for historical mathematical reasons, but that just doesn't seem necessary IMHO.
2.) Operator overloading makes some code really hard to read and requires a lot of cognitive overhead.
For example, without explanation do you know what the ::: operator does? Or :+ or +:? They are obviously learnable, but why do this instead of named (readable) methods? In short I think brevity over readability is not the right choice.
3.) As others have said, compile time. It's not too bad for us, but yeah, it's long.
These contribute to the language being a little hard to get up to speed with, and not infrequently coming into contact with code that's fairly indecipherable.
That said, I actually quite like the language. The rich types/mixins, the clean functional programming, I find myself missing these things when I go back to other languages. Everything can be improved and I expect Scala to continue to flourish.
37 comments
[ 3.4 ms ] story [ 101 ms ] thread> The TIOBE index (www.tiobe.com) of software language popularity ranked Scala at #13 in 2012; now it’s fallen to #32 in August 2016
From what I can find, TIOBE for Scala was actually #46 in May 2012:
https://www.scribd.com/document/94860678/TIOBE-Programming-C...
That means it grew 14 points since 2012, not fell.
More debunking here:
https://gist.github.com/anonymous/5df1f1f6c6b6ebbb4dc67b2bc4...
Compile times became a huge drag at Foursquare and I did not want to repeat that experience. I love many many many things about Scala but having engineers sit around for huge periods of time waiting on their compiler just wasn't worth it.
Other's opinions may differ from mine in many ways. Just offering up a single data point.
This is pretty much the same concept as Blaze/Bazel or Buck, but from Twitter.
(sorry. pet peeve.)
However, a lot of people seem to not believe the author, but I am not sure what the complaint is.
1. Do you believe Scala did not have a fall? -- if so, what is the explanation for the data presented?
2. Do you believe the fall is for different reasons? -- I think everyone would be curious to know what those reasons are.
I am all for complaints but they're more interesting when the reasons are divulged.
So I think Scala is more or less steady in usage. There is no rise or fall of Scala.
What backs your claim that Scala usage is comparatively steady in usage? The amount of software grows over time so that must be factored in or else people could say COBOL is just as popular as it was before.
> Scala will probably never become the next big programming language. But, it will be around for years to come as the language of choice for niche problem domains such as Big Data programming.
EDIT: Thank you dsabanin and sndean for the clarification. The flag is justified -- his data is definitely faulty. There was no rise of scala to #13 in 2012 (I looked through a few other months of TIOBE too). It looks like it has been steadily rising.
It is unfortunate, most of the article (excluding the clickbait hook) is about the benefits of functional programming (like Scala).
Here's TIOBE for May 2012:
https://www.scribd.com/document/94860678/TIOBE-Programming-C....
http://pypl.github.io/PYPL.html?country=US
Scala looks pretty steady since 2013. If anything, it's gone up.
[0] https://www.lightbend.com/
Java has been sloooowly adding features that Scala championed in the JVM world; lambdas and type inference within them in Java 8, REPL in Java 9, partial cases clases in Java 10 (yes to the syntactic sugar, no to the ADT semantics and pattern matching). Adding those features underscores the validity of Scalas vision. But if you've experienced the real thing Java is just too little too late.
Good luck waiting for hobbled cases class for the next 3 to 4 years. By the time Java has those the rest of the world will be accustomed to union types and literal types.
However some of the critiques of Scala I think are well taken.
1.) It's true that there are often a zillion ways of doing things. In contrast to Python, readability and consistency don't seem to be a core part of the language's culture.
For example the first element of a tuple is x._1 but the first element of a list is x(0). I understand this is for historical mathematical reasons, but that just doesn't seem necessary IMHO.
2.) Operator overloading makes some code really hard to read and requires a lot of cognitive overhead.
For example, without explanation do you know what the ::: operator does? Or :+ or +:? They are obviously learnable, but why do this instead of named (readable) methods? In short I think brevity over readability is not the right choice.
3.) As others have said, compile time. It's not too bad for us, but yeah, it's long.
These contribute to the language being a little hard to get up to speed with, and not infrequently coming into contact with code that's fairly indecipherable.
That said, I actually quite like the language. The rich types/mixins, the clean functional programming, I find myself missing these things when I go back to other languages. Everything can be improved and I expect Scala to continue to flourish.