« Axes of Systems - Performance, Capacity and Scalability | Main | The von Neumann Bottleneck »

June 28, 2009


Erik Engbrecht

I don't think that's a secret, much less a dirty one.

That being said, it would have been more interesting if they would have tried Starling on JRuby and compared it to Kestrel.


but i like how the title sounds


in all seriousness, of course it's not a secret or dirty. but whenever something is poised to make a break through, it's important to be precise. similar issue with scala's concurrency magic. magically bc of actors we're going to get better concurrency--huh?. actors are rather low-level if you think about it. but too many slides lead off with "scala makes concurrency a breeze, it has actors."

Scott Swank

Um, but Scala also has a pretty mature model for Actors. A robust way to handle parallel, scalable immutable message passing is kind of important in this arena, maybe it bears mention.


Yes, languages can scale according to the creator of Scala. Go read: http://www.artima.com/scalazine/articles/scalable-language.html

What's with all the negative blogging about Scala? It's just like many people are afraid of it!

Erik Engbrecht

@Tinou - Yeah, catchy titles are important, and you're absolutely right about the importance of being precise. And agreed that Actors are a relatively low-level concurrency abstraction.

@Scott - As someone intimately familiar with the internals of the Scala Actors library I seriously doubt it's maturity.


Obviously Java and Scala ( and Groovy and JRuby, etc.) all generate JVM bytecode. Speaking theoretically, is it possible that there are valid programs (in bytecode) that Java the language cannot compile to, but Clojure or JRuby or Scala can, and vice versa? I don't know enough about the spec or writing bytecode compilers to know. If it is the case, then it seems reasonable to give some props to Scala. On the the other hand, the fact that they point to the mature GC of the JVM, so the effect of Scala on performance is probably second order (though important in the reduction and comprehensibility of code.)

As to everything interesting in CS having been done between 1950-1980, I think the FP community would disagree.


Scarling is a port of Starling to Scala: http://robey.lag.net/2008/05/07/scarling.html

Alex Payne

"In essence Twitter moved to Java and the Java platform--it just so happens that Scala is a cool language that can co-exist on the platform."

As one of the people who pushed for the adoption of Scala at Twitter, I can confirm that the above was our logic. I'm confused, though, as to why you think that's a negative. To my mind, it seems like two wins: a cool language that happens to run on a great platform. Nothing wrong with that.

Your whole piece seems to be predicated on the fact that Odersky defines Scala as "scalable" to a variety of programming tasks, whereas our engineers have present about "scalability" in terms of architecture. Whatever controversy exists here seems to be invented from your confusion about terminology.

I'm not sure what value there is in tossing off aphorisms like "languages don't scale, platforms scale"; they're glib and, in this case, untrue. A successful language is able to scale because of tight integration with its host platform. Creating a successful language is a holistic problem, and a difficult one at that. The choice to adopt a language should also be holistic.


i definitely don't see any of this as negative. it's very positive. i'm not a one world, one language, one platform guy. i wished scala on .net was still alive. now that would be cool, to be able to run scala on jvm or .net or some other platform.

is the controversy invented? i don't see it as a controversy. but i think you'll have to concede that when you (not you specifically) throw in lines like "we switched to scala, things now fly, and it's only 1,200 locs" some people might be confused w/o the full context.


Op might want to take a look at this



The point is succinctness of expression. They moved to Scala because it was a language they could move to without losing a bunch of the features they were used to with Ruby. The fact that Scala compiles to the Java platform (and does so very well) gives it the performance characteristics of Java. It's not a "dirty little secret", it's the value proposition.


Scala is a hybrid Object-Oriented/Functional Programming language on the JVM. When I heard that Twitter was using Scala, I was curious and started collecting all the sites and articles to learn scala programming. If you are interested check the link below for the big list I have gathered (more than 200 sites) for learning scala programming.

The comments to this entry are closed.