This is so dumb, there are a million JPEG crushers in existence but instead of advocating the use of one of these Mozilla writes their own? Why not support webp rather than dismiss it due to compatibility and waste time doing what has been done before.
Things haven't changed, using Scala doesn't offer significant benefits over Java and it is just a noisy minority that pontificate over Scala and its supposed (largely academic) benefits.
This is the thing I find most annoying regarding Scala use, and people advocating its use, it just doesn't do anything that Java can't do - plus the tooling for Java is wayyy better, there is a smaller learning curve, you can hire people to work with it and you don't spend your days endlessly debating what obscure language feature that may lead to tighter code in release 2.11.B.3.48d.M1.
> "Scala and its supposed (largely academic) benefits"
Perhaps you would like to discuss the "academic" benefits with the likes of Twitter and Foursquare?
> "it just doesn't do anything that Java can't do"
It's a more expressive language. You could argue that Go and Python can't do anything that C or assembler can't do. That doesn't make Python irrelevant.
> "plus the tooling for Java is wayyy better"
In terms of the JVM the tooling is exactly the same. In terms of coding I use IntelliJ for both Scala and Java development, without noticing much difference in quality between the support for either language. In terms of libraries Scala has access to all the libraries that java has as well as additional libraries designed specifically for Scala.
Most (actually all) Java developers that I know grumble when having to code in Java after they are exposed to Scala.
> Perhaps you would like to discuss the "academic" benefits with the likes of Twitter and Foursquare?
Academic vs Practical probably? What's the point of discussing with <big-name-company>? Devs there do like to try out new tools, new languages, new platforms for the sake of trying as well. Devs are humans with ego as well, just like the rest of us.
> Most (actually all) Java developers that I know grumble when having to code in Java after they are exposed to Scala.
I code in Java, Python, JavaScript (modern) and playing with Ruby/Rails lately but I never grumble when I have to go back to Java because I know there are limitations/disadvantages of the other platforms as well. I use SVN and Git and I never grumble when I go back to SVN on a very large project with multiple component that have dependencies.
I'm also in Java->Scala->Java boat. Supporters often say Scala codes are concise, but we can also write concise Java codes--by properly using 3rd party packages. Also, if you code using frameworks like Play!, there's no significant reduction of LOC (for Scala vs Java)
Scala may be good for one-dev company; but terrible in terms of readability and maintenance for a team where more than 3 programmers work on the same code.
Scala can work great in a large development team. Your sentiments about poor readability and maintenance have little to do with the technology itself; you could say this about any programming language.
People new to a technology have a tendency to flounder around a bit in the beginning because they're naive to common coding standards and principles. After those are found or established then Scala codebases are just as easy to collaborate with on than any other.
It is not mainly about conciseness. Conciseness by itself is not that important. Conciseness is a side-effect of being able to apply DRY and to build more powerful abstractions. You could write more concise Java by using one letter identifiers everywhere, but that would only make things worse, wouldn't it?
edit: yeah, it isn't intended to be programming specific: "Indeed.com searches millions of jobs from thousands of job sites.
This job trends graph shows the percentage of jobs we find that contain your search terms."
Under the graphics you have the links to the respective jobs. Just check for yourself what these "Go" jobs [1] and the "Scala" jobs [2] are. "Haskell" jobs are also interesting.
And more: don't forget that currently even Php ads feature the infamous "experience with functional programming (Lisp, Clojure, Haskell) is a plus" line.
> EDIT 26/10/13: I felt it important to only compare 2nd generation JVM languages. IMO it’s not fair to include the Java language itself because it dwarfs adoption of 2nd gen languages due to its omnipresence in the industry for over 20 years.
The article has just been edited with the above note.
I think the lead by Groovy from 2009 to last year should be ignored because job ads for Groovy programmers want them to use it as well as Java, but those for Scala programmers want them to use it instead of Java.
The list was limited to languages that developers actually like. Java is widely used, but not particularly popular as evidenced by recent polls here on HN.
The tooling argument can go both ways. For instance Visual Studio + Resharper is much much better than any option for Java. The Java profilers are nearly useless when compared to something like Red Gate and the integration with Sql Server on the MS stack makes database programming much easier.
The Microsoft build ecology is a little bit more mixed bag, but when compared to the explosion of choices for Java between Ant/Maven/Ivy etc. I'm not sure which I prefer.
As far as languages, working in C# makes working in Java so painful. C# makes so many better language/library decisions. The problem is that the JVM is a very compelling target platform (much more so than being stuck on Windows).
With those constraints Scala is a very nice language to use. In fact I dread every minute I have to spend in Java. Further everyone I know personally who has spent time in Scala feels the same way. I've literally never met anyone in person who prefers Java to either C# or Scala from a language point of view.
IDE for Scala sucks, mostly because Java developers are spoiled with Intelij IDEA and, to some degrees, Eclipse. It is still very usable. If you don't care about IDE, that is a non-issue.
What other Scala tools you're referring to? Scala can reuse almost all popular Java tools.
Also, can you elaborate on strict coding convention? do you mean operator overloading?
The IntelliJ Scala plugin is actually very good. We didn't have any strict conventions, just code reviews and good taste. Our devs didn't have any major trouble, but your experience may be different.