Linked by David Adams on Mon 26th Jul 2010 00:57 UTC
General Development Today's commercial-grade programming languages - C++ and Java, in particular - are way too complex and not adequately suited for today's computing environments, Google distinguished engineer Rob Pike argued in a talk at the O'Reilly Open Source Conference. Pike made his case against such "industrial programming languages" during his keynote at the conference in Portland, Oregon.
Permalink for comment 434496
To read all comments associated with this story, please click here.
Member since:

Twitter is one of the fastest growing and highly utilized systems in the world right now, it's written in Ruby.

This is incorrect. Twitter was initially written in Rails, but the performance was dismal and it wouldn't scale; plus they basically had to implement an entire type checking system in the test suite.

So they switched the entire back end to Scala, the JVM-type-safe functional language. That saved them. You can read about it here:

a quote from this article:

Another thing we really like about Scala is static typing that’s not painful. Sometimes it would be really nice in Ruby to say things like, here’s an optional type annotation. This is the type we really expect to see here. And we find that really useful in Scala, to be able to specify the type information.

As our system has grown, a lot of the logic in our Ruby system sort of replicates a type system, either in our unit tests or as validations on models. I think it may just be a property of large systems in dynamic languages, that eventually you end up rewriting your own type system, and you sort of do it badly. You’re checking for null values all over the place. There’s lots of calls to Ruby’s kind_of? method, which asks, “Is this a kind of User object? Because that’s what we’re expecting. If we don’t get that, this is going to explode.” It is a shame to have to write all that when there is a solution that has existed in the world of programming languages for decades now.

Reply Parent Score: 2