The Scala strategy
2016-02-25
The recent news about Typesafe renaming generated a lot of buzz on the Internet. Some comments were to the point, but many seemed irrelevant, so I decided to write down and share my own thoughts about it. As I'm not an insider, this is a purely speculative post, but it still interesting to know what other people think.
The language
As I already stated in the book, I don't have any doubts about the future of Scala. It started gaining momentum before Typesafe was even created and it will not go anywhere even if the company goes completely bankrupt or decide to fully concentrate on Java and donate Scala back to EPFL.
If you look at Indeed Trends, you will see that Scala is at least 5 times more popular than any other functional language, most of which are stuck at the 2010 level. I would argue that this rate of adoption is partially the result of Typesafe efforts.
Reading between the lines, it seems to me, that Typesafe is trying to convince The Enterprise to start using Scala. This, I think, has been a wrong strategy from the beginning. I understand why it's so tempting - the Java community is so huge that even if you get a fraction of it, it will mean a tremendous success. The problem here is that this community is not as simple as it appears. Contrary to popular belief, you cannot win them by simply offering stuff that sounds enterprisy. Java became #1 because it was the best tool for the job at the right time, not because Sun had millions of sales managers in suits. Besides, the time has changed.
What's funny, companies that adopt Scala oftentimes have nothing to do with The Enterprise. Twitter, Tumblr, Foursquare, Soundcloud, Coursera - these are all startups or at least they were at this stage until recently. Maybe they decided to start using Scala because of FP? I highly doubt it. FP most likely came as an afterthought - "Oh, this stuff is actually pretty useful!" or something along these lines.
The Guardian developers said that they started using Scala as a better version of Java and it was fine back then. Now other languages are competing for this niche with Java 8, but Scala has come a long way since and should have a greater goal.
Today Scala has frameworks and tools, lots of them. Given the right marketing strategy, Scala could easily eat most of the Rails/Django market. Why use slow and dynamically typed language if you can use the fast and statically typed one without compromising on expressiveness? Likewise, there's not much point in preferring, say, GWT over Play. But again, I wouldn't make the main target established Java shops that already invested a lot in Java. Instead I would concentrate on smaller companies or consultancies that use Ruby or PHP and that need to decide what technology use for their next project starting next week.
The directions
Some directions taken by Typesafe are very good. Their decision to go with Play was brilliant and a spark in Scala popularity could be traced back to this point. Also, even though seasoned developers were skeptical about introducing Activator, it proved to be a good tool for beginners.
However, some decisions were questionable.
Take, for example, the SBT docs. I personally think, SBT is a great tool, much better than Maven. It's not difficult to use or explain. The question is - why the web site recommends to start using it by reading a mini-book? Why not record a 10 minute Youtube video that shows how to work with it?
Another example is ScalaIDE. Take a look at Google. They spent years and invested literally thousands if not millions of dollars into ADT and what was the end result? They gave up, started working with JetBrains and built a great toolset in less than a year. Why is the most popular tool for writing Scala code is JetBrains' plugin, which is being developed independently from Typesafe? It seems obvious to me that Typesafe should assign someone to collaborate with JetBrains full-time.
More generally, why invest a lot in creating new tools that a couple of companies may use in the future and not invest enough into tools that are already used by thousands of developers every day?
I wanted to list more issues here but couldn't come up with anything else that would be of significance. After all, Scala is popular for a reason and the ecosystem is in a pretty good shape.
Conclusion
I certainly don't know the details, but in my opinion, the renaming generated unrest within the community, created doubt among outsiders and all of this for no good reason. It isn't going to help promote Scala in the enterprise and as we discussed it isn't working anyway :)
Overall, there are very few things which are wrong with Scala. The strategy, however, needs some changes. Change the strategy and before you know it, Scala will be in the top 5.
Update (August 4, 2016)
In his interview recently published on FunctionalTV, Jamie Allen basically convinced me that renaming was the right thing to do. Contrary to what people think, their strategy targeting enterprises actually does work, so they spend quite a lot of time communicating with business people. Top executives are not always aware about the advantages of static typing, so the name Typesafe didn't mean anything to them and gave an impression that the company sells fonts ("typeface") instead of software. I highly recommend watching the interview itself as it gives a lot of insight into what the company is trying to achieve.