Live data from Hacker News

Twitter survives election after Ruby-to-JVM move

theregister.co.uk

121–130 of 179 posts

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

#121
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…

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.) If you get to the scale of twitter, and more importantly if you have written a real time messaging server with a web application framework, it doesn't mat…

python is not interpreted,it is compiled in bytecode just like java.

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

#122

Earlier quoted context omitted.

It's time to pack up and go home if you are going to straw man Github and Heroku as being popular merely because they are novelties or fads.

http://en.wikipedia.org/wiki/Category:Project_management_sof... http://en.wikipedia.org/wiki/Category:Cloud_platforms

You can throw wikipedia links to try justify an argument ("hey, look at how many other projects there are!"), but GitHub and Heroku both leverage RoR heavily and both are incredibly large, successful products. Having competitors does not a failure make.

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

#123
post #93

Earlier quoted context omitted.

In addition, startups tend to pivot a few times, and agility is arguably more important early on than raw performance (depending on product of course).

Agreed. But, probably my situation applies when you've come past all the pivoting and you've settled with one idea you decidedly are going to work on.

Pivoting stops when you have found a scalable, repeatable business model, not an idea to work on.

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

#124

Earlier quoted context omitted.

Then you should really know better than to make statements like "I think I could write a scalable Twitter in mostly Ruby. And I've never written a line of Ruby in my life."

This isn't really a comment on Java, Ruby, Twitter, Google, or my programming ability. It's a comment about the fact that once you've designed a scalable distributed system, the constant factor runtime isn't so important. Twitter has clearly engineered a working distributed system (or you would have read stories like "5% of Twitter users lost their tweets when our servers caught on fire last night"), so the fact that…

I think I could write a scalable Twitter using mostly low-paid workers who manually write down the tweets and deliver them in person. It's just a matter of hiring enough workers now that I've designed this scalable distributed system.

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

#125
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…

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.) If you get to the scale of twitter, and more importantly if you have written a real time messaging server with a web application framework, it doesn't mat…

Yup, and from experience, you're going to end up rewriting big chunks of your stack multiple times. (In a previous life, I worked on a team that grew a Java-based SMS gateway from an initial design limit of 10 msg/s on a single box to 10,000+ msg/s sustained, replicated across a high-availability cluster.) Props to the Twitter team for pulling it off, because at volumes like that you start to get into seriously arcane stuff like JVM garbage collection tweaking, or otherwise a full GC that halts all threads of execution for 30+ seconds will create entire pods of fail whales.

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-14...

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

#126
post #107

Earlier quoted context omitted.

You must also think cars and SQL are also pure evil?

Relative to other tools we've used, Ruby has caused a disproportionate number of problems.

Some context of what those problems were, how you were using Ruby, what was the expertise of your team members, etc would be of interest for such an inflammatory accusation. Bold claims require proof.

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

#127
post #118

Earlier quoted context omitted.

Python has a roughly equivalent MVC web framework called Django. Ruby and Python as languages are not radically different in kind, but their respective developer communities have had different focuses, and as a consequence the library of tools are not identical. Ruby on Rails became popular because people were dissatisfied with the way that web development was being done, and DHH is very good at marketing/propaganda.…

Ruby has nothing to do with Python. Python is strongely typed and compiled into bytecode, just like java. It is just not the bloated and verbose language java is , which allows fast and pragmatic development.

> Python is strongely typed

Like Ruby.

> and compiled into bytecode

Like JRuby.

Python and Ruby are comparable languages. They are both high-level dynamic languages, with the same sort of tradeoffs (eg, you can do more with less characters than in most statically typed languages, at the expense of safety and performance). There are however significant differences in terms of philosophy, ecosystem and community between the two.

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

#128
post #13
post #4

> None of this will be welcome news to the army of fanatical Ruby developers who believe the language's syntax, its high developer productivity, and its overall philosophy far outweigh any performance disadvantage it might have compared to other languages. I'm a relative newbie to the Ruby world, but as best I can tell, the Ruby and Rails communities both accepted long ago that they weren't made for Twitter levels of…

Yeah, that line feels like lazy reporting to me. Any involvement at any in the Ruby community over the past few years and they would know that very few Ruby developers are concerned about the performance issues past a certain scale. Seems like a no brainer that something that is a lot more strict and static will outperform something that has to deal with many more possibilities at runtime.

> Yeah, that line feels like lazy reporting to me.

Now, now, it's The Register. The tabloid style is part of its identity.

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

#129
post #118

Earlier quoted context omitted.

Ruby has nothing to do with Python. Python is strongely typed and compiled into bytecode, just like java. It is just not the bloated and verbose language java is , which allows fast and pragmatic development.

> Python is strongely typed Like Ruby. > and compiled into bytecode Like JRuby. Python and Ruby are comparable languages. They are both high-level dynamic languages, with the same sort of tradeoffs (eg, you can do more with less characters than in most statically typed languages, at the expense of safety and performance). There are however significant differences in terms of philosophy, ecosystem and community betwee…

Except you dont need a JVM to get performances in python. Using a JVM destroys any perspective of cheap and easy deveployement. If i have to use a JVM , i'd certainly not use JRuby when i can get scala.

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

#130

Earlier quoted context omitted.

You can argue that YouTube is less dynamic than Twitter. When a user posts a message on Twitter, that message has to be pushed to all the users that follow that user and so every user has a personalized stream of incoming tweets that has to be updated, not in realtime, but with small latency nonetheless. Also, Twitter doesn't have Google's infrastructure. In regards to "static compilation", that's not the important b…

I don't think pushing tweets to every user is a scalable approach. It would seem more sensible to read rather than push tweets associated with a user. I don't know about Twitter's infrastructure, but storing more than 1 copy of the same data wouldn't make that much sense.

> I don't think pushing tweets to every user is a scalable approach. It would seem more sensible to read rather than push tweets associated with a user. I don't know about Twitter's infrastructure, but storing more than 1 copy of the same data wouldn't make that much sense.

Suppose I have 5000 followers. How do you propose to get the timeline? Since you said "single copy of data", I assume you would do something like this:

https://github.com/mitsuhiko/flask/blob/master/examples/mini...

At twitter scale, that query will be a major bottleneck.

Post reply on HN