Skip to content

Instantly share code, notes, and snippets.

Created October 6, 2016 14:29
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/5df1f1f6c6b6ebbb4dc67b2bc4da4eae to your computer and use it in GitHub Desktop.
Save anonymous/5df1f1f6c6b6ebbb4dc67b2bc4da4eae to your computer and use it in GitHub Desktop.
Response to recent InfoQ article

Most of what's written in this article is deliberately biased and wrong. It is yet another in the stream of Scala-hating posts that people. I analyze the article below:

  1. TIOBE index is a metric based on search engine ranking policies and can be intentionally or unintentionally gamed.

    https://blog.timbunce.org/2009/05/17/tiobe-index-is-being-gamed/

    On these rankings, Scala is quite high:

    http://pypl.github.io/PYPL.html http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/

    The choice to mention only TIOBE in this article seems biased.

    In any case, when referencing a metric, you should pick a metric that is relevant for you. There is a discussion on programmers.stackexchange where one developer makes a correct assertion that C is second on the list because of projects like the Linux kernel, git, MySQL, Windows OS, ..., but are you writing your web app in C? Or your Spark query? Or your actor-based application?

    http://programmers.stackexchange.com/questions/195786/why-is-c-so-high-in-tiobe-index-of-popularity-while-c-is-just-under-here-too

  2. "The TIOBE index (www.tiobe.com) of software language popularity ranked Scala at #13 in 2012"

    I've been actually following TIOBE for the past 5-6 years, and I don't recall that Scala was ever so high according to the TIOBE index, so I was surprised to see this.

    After some digging, I found the following doc from October 2012 TIOBE index, where somebody copied the TIOBE page at the time, where Scala is at place 35:

    http://moodle.telhai.ac.il/mod/resource/view.php?id=45555&redirect=1

    I don't have information for entire 2012. But I'm fairly sure that this statement is bullshit.

  3. 0.6% of the community is using Scala - where did you get this information? Which community? For which use-cases?

    With the popularity of recently emerging Big Data frameworks, Scala is becoming more popular. People use it for more and more stuff, both in startups and in big companies.

    You should be more precise about what the numbers you mention mean, and cite the source, before presenting them.

  4. "Lightbend, its parent company, is now releasing new frameworks with a Java API before the Scala version"

    If you check the TIOBE, Redmonk, PYPL, or some other index, they all agree that Java, which has been around for a longer time, is more popular and more widely used. That means that there is more money in focusing on such customers first. If Lightbend, as a startup company, wants to survive, it needs to focus on Java users.

    However, Lightbend still develops their core technologies in Scala, and not in Java.

    You did not seem to mention that Databricks, a company which has all its products built in Scala, was almost sold out for 500 million dollars - an offer which they decided to refuse, and they are still growing. Even if Lightbend has to focus on Java customers to make a living, it is likely that Databricks would start investing into Scala development.

    You also did not mention the IBM recently hired ~300 engineers to work on Spark development. That means that IBM might become a Scala stakeholder in the future.

    And finally, you're not mentioning the Scala Center initiative at all. Which is getting a lot of traction and money currently, which is used to boost the Scala ecosystem to a higher level.

  5. Your explanation of the difference between programming paradigms, and functional programming, are presented on layman's term.

    In particular, to claim that Scala is a fully functional language is untrue. Scala borrows some functional features, and you can choose to write functional programs, but it is not fully functional like some other languages. Scala strives to be pragmatic. And so do most other modern programming languages, in fact.

    It might be a personal feeling, but it seems that you are not a language expert, nor an experience programmer, and have very shallow understing of functional programming, and of Scala (which is not necessarily functional).

  6. "Java has surpassed Scala as the preeminent functional programming language"

    Java is not really a functional language, and has quite a bit to go to reach the conciseness and clarity that Scala has.

  7. "Scala is a difficult language to master because its principles are based on mathematical type theory, which is fully understood by only the most academic and mathematically minded programmers."

    This statement is total bullshit.

    Nobody needs to know any mathematical type theory to program in Scala. Not even Scala compiler hackers.

    But, as a matter of fact, most languages are based on some sort of mathematical type theory. Java, for example, has an underlying type theory and even a calculus. When it comes to a formal specification document, JLS is much larger than the Scala specification.

  8. "Unlike Java, Scala has a flexible syntax, and typically offers many ways to achieve the same end result."

    This is true. However, it is unclear if this is curse or a blessing - probably both.

    And, as Java keeps evolving, it is following the same trend.

    You should watch Guy Steele's talk "Growing a Language" for some thoughts on this phenomenon.

  9. "Scala has not done a good job of maintaining compatibility"

    You don't seem to be very precise about what you mean by "maintaining compatibility".

    There were some binary compatibility problems 5 years ago, but nowadays this is fully fixed. There are no compatibility problems. And Scala 2.12, which is in front of the door, is fully JDK8-compliant.

Your post is clearly biased and attempts to spread false information. As a side remark, every now and then a carefully packed hate post like this happens somewhere, and what's common is that author does not know what he is talking about. It makes me think that there is a hidden agenda behind these kinds of articles

In any case, the attitude of complaining about something, instead of helping all those people who worked on it hard to make it better, is at the best counterproductive. I advise you to grab a keyboard, and submit a few pull requests to the Scala organization at GitHub.

And generally get more informed before you start writing InfoQ articles.

@lare96
Copy link

lare96 commented Oct 12, 2016

Great response, I've started seeing tons of these types of posts about Scala once Kotlin started gaining popularity. It's a bit odd to me.

@timo-schmid
Copy link

👍

Little side note:

There were some binary compatibility problems 5 years ago, but nowadays this is fully fixed. There are no compatibility problems. And Scala 2.12, which is in front of the door, is fully JDK8-compliant.

It may be worth mentioning that Scala bytecode compiled from 2.11 is not compatible with bytecode compiled from 2.10 or 2.12. But: compatibility between versions is not intended, so there is no compatibility issues in that sense. It's just a tradeoff to help speed up development.

@rdp
Copy link

rdp commented Dec 6, 2018

I do see a drop in scala popularity these days, FWIW: https://insights.stackoverflow.com/trends?tags=scala

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment