Live data from Hacker News

Twitter survives election after Ruby-to-JVM move

theregister.co.uk

61–70 of 179 posts

Re: Twitter survives election after Ruby-to-JVM move

#61
post #52
post #8

It's interesting that when it comes time to scale to serve enormous loads, you have to be willing to change fundamental parts of your stack which you've made a huge investment in. Ruby holds up well enough on the majority of the sites that use it, but when you have traffic the size that Twitter does, it's just not good enough. And it turns out that Java provides a nice tradeoff with high performance and high-level co…

It's not primarily about the size of traffic, but the ability or inability to cache. At work we serve a ton of traffic with MRI ruby and 3 small VMs. Most requests are served by varnish and never hit the ruby stack. Most people do a terrible job at caching (edit: I'm not saying that twitter is bad at caching).

Twitter is hugely write intensive and needs realtime data, so their caching needs are probably vastly different from yours.

Re: Twitter survives election after Ruby-to-JVM move

#62
post #27

Earlier quoted context omitted.

Have you worked on other sites with a similar scale to Twitter? If not, how would you know?

I work at Google :)

Well, there's pretty much no response he can give to that then.

Unless of course, you work in the marketing department or clean the buildings?

Re: Twitter survives election after Ruby-to-JVM move

#63
post #32

What this says to me, a non-RoR user, is that it's harder to build websites with Java than with RoR, but if you pass a certain (very unusual) level of traffic, you'll wish you'd made the extra effort; otherwise, you'll be glad you didn't. (Extra effort isn't free.) Fine, but what I wish I understood was why RoR is so popular to begin with. The claim is always that Rails is so wonderful that it's worth learning Ruby j…

It's called Play! Framework on the Java/Scala land. You got the benefits of both, ease of development and performance/scalability.

Re: Twitter survives election after Ruby-to-JVM move

#64
post #8

It's interesting that when it comes time to scale to serve enormous loads, you have to be willing to change fundamental parts of your stack which you've made a huge investment in. Ruby holds up well enough on the majority of the sites that use it, but when you have traffic the size that Twitter does, it's just not good enough. And it turns out that Java provides a nice tradeoff with high performance and high-level co…

"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect, YouTube.com.

There are many dynamic user driven sites which have scaled well (far less downtime than Twitter) without switching to static compilation.

Re: Twitter survives election after Ruby-to-JVM move

#67
post #61
post #52

Earlier quoted context omitted.

It's not primarily about the size of traffic, but the ability or inability to cache. At work we serve a ton of traffic with MRI ruby and 3 small VMs. Most requests are served by varnish and never hit the ruby stack. Most people do a terrible job at caching (edit: I'm not saying that twitter is bad at caching).

Twitter is hugely write intensive and needs realtime data, so their caching needs are probably vastly different from yours.

That was my point. Their caching needs are vastly different from almost everyone!

Re: Twitter survives election after Ruby-to-JVM move

#68

While I can agree that scala/java/jvm deserve some credit for this (typing, concurrency support), I think stories like this do a disservice in that they underestimate the importance of building a system a second time with all the lessons learned the first time around. This is not unlike those stories where a developer writes a trivial program in a new language that is similar to a trivial program they wrote in anothe…

But if the second design is the better design theory has any impact, Twitter would have done better to build the second design with Ruby.

Re: Twitter survives election after Ruby-to-JVM move

#69
post #31

This move marks the beginning of the end of a four year long effort for Twitter to rid themselves of Ruby. History will remember the entire Ruby industry as a series of compounding failures. The de facto formalisation and specifications. The black-box behaviour of core development. The broken-linked, un-versioned docs. The rampant cargo-cult mentality. The arcane exceptions. The meta-frameworks. Gem hell. 1.9/2.0 Rai…

> Gem hell. Is this really a problem? Every package/dependency manager seems to blow up on occasion. Gems haven't given me the problems that I've had with Pip/CPAN/Autoconf.

The only Gem hell I know of is when using distro packaged gems. They tend to do weird crap like changing dependencies or backport fixes instead of packaging the new version.

There are things more funny to do than solve bugs introduced by a backported patch.

Re: Twitter survives election after Ruby-to-JVM move

#70

Earlier quoted context omitted.

No. It is the JVM that should be getting the credit.

If that were the case, they could have just run JRuby and avoided rewriting a bunch of code. The truth is, Scala is actually helpful with the architecture they came up with AND its great that it runs on the JVM.

I'm not necessarily disagreeing with you (static typed languages are going to be faster on the JVM), but JRuby - partially with the help of invokedynamic, added in Java 7 - has come a long way performance-wise since Twitter began their rewrite.

I wonder if they would have done anything different, had JRuby been where it is now?

Post reply on HN