The slow “death” of dynamic languages…

Twitter has moved on.

What else could be said when a poster child of RoR dropped millions of dollars invested in Ruby-based system and moved to JVM stack… Needless to say they redeveloped their messaging system in Scala few years back already.

Both to crawl – will never fly.

3 responses

  1. Nikita, I’m not sure I agree with such generalizations. I do in many cases like static typing more than dynamic. It pays dividends in numerous applications, especially when developing frameworks. I don’t think the same amount of type safety is needed to write web applications, as it’s mostly glue code that works with dynamic properties of the web/http. With that said, Scala and numerous others (haskell), have advanced type systems that make them more pleasant to use, while still benefitting from compile-time type safety.

    Back to the twitter article. I absolutely agree that the JVM is a better stack to scale on, but none of this has to do with dynamic vs. static. The JVM benefits from the last 15 or so years of huge investments in VM research as well as open source and commercial libraries. It’s more about the ecosystems than the language in twitter and other such cases. When you choose a JVM language, you automatically benefit from numerous distributed systems libraries and others required to build such scalable apps. These libs aren’t only available, but are still actively developed and maintained. This is a huge win for the JVM, but I’m not sure it is for Java. I’ve been doing java for around 10 years and wrote very substantial amount of software using it, but frankly, it has to be one of the worst languages I’ve ever used. It’s not expressive, very verbose, and lacks any type of R&D/progress that so many other langs are benefitting from. OO was new and exciting maybe 10 years ago. It still has many benefits, especially when comes to organizing the code base. There are numerous times I’m programming in Java and rather miss many functional constructs/idioms and other times I’m using a functional language (clojure, haskell), where imperative concepts would make the program more concise, but are either missing or accessing them is a nuisance. Although clojure comes pretty close to getting this right, I at times don’t agree with their bastardization of lisp’s core principals. Either way, not promoting list here, rather stating that twitter’s move to java isn’t necessarily because other languages don’t scale well, it’s because the the library ecosystems of the JVM.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: