Live data from Hacker News

Twitter survives election after Ruby-to-JVM move

theregister.co.uk

131–140 of 179 posts

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

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

As far as I know, Ruby has proper support for higher-order functions and lexical closures (aka code blocks).

http://stackoverflow.com/questions/4769004/learning-python-f...

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

#132
post #121

Earlier quoted context omitted.

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.

But the bytecode is then interpreted.

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

#133

Earlier quoted context omitted.

Statically vs dynamically typed peformance difference is clear for virtually any static or dynamic language you care to name, it has nothing to do with the jvm being "tuned" for a language: http://shootout.alioth.debian.org/

How does that explain Julia[0]/Node.js? Both within 1-2x speed of C, I think static has less to do with it than you think. [0] http://julialang.org/

You pretty much have to enforce static type invariants (e.g. "this variable will never be other than an int") to JIT stuff performantly. I don't think that's a point against the GP's argument at all.

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

#134
post #129

Earlier quoted context omitted.

> 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.

> Except you dont need a JVM to get performances in python.

Python's performance is only slightly ahead of Ruby's. Both Python and Ruby are a bad match for CPU intensive tasks(provided we are talking pure python/ruby and not native extensions). Network and IO in general is salvaged by using evented io(or some high level evented framework).

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

#136
post #121

Earlier quoted context omitted.

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.

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

Depending on the implementation, so is Ruby. The canonical MRI 1.9 compiles to bytecode and interprets it. But unlike python, it doesn't write the bytecode to disk. The loading of bytecodes has been disabled until a bytecode verifier is implemented.

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

#137

Earlier quoted context omitted.

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.

Computers are easier (though perhaps less fun) to make than humans. Ruby is slow but it's close enough to Java that the numbers will still work out. Humans: probably not.

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

#138

Earlier quoted context omitted.

I work at Google :)

I suppose it doesn't matter if you didn't work on similar scaling problems in Google.

You're right and I know that "appeal to authority" is not a valid argument mechanism.

With that in mind, I just couldn't pass up the opportunity to make an amusing comment.

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

#139
post #134
post #129

Earlier quoted context omitted.

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.

> Except you dont need a JVM to get performances in python. Python's performance is only slightly ahead of Ruby's. Both Python and Ruby are a bad match for CPU intensive tasks(provided we are talking pure python/ruby and not native extensions). Network and IO in general is salvaged by using evented io(or some high level evented framework).

Exactly. You have the same sort of solutions for squeezing additional performance out of Python and Ruby: - using evented framework (network/IO bottleneck) - using native code (CPU bottleneck) - using a different implementation (Python has an edge here with PyPy, as long as your dependencies run on it)

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

#140
post #107

Earlier quoted context omitted.

> No technology stack is perfect, but I've yet to meet a stack that was pure evil. As someone who has seen Ruby cause major problems I'd have to say it's not too far off "pure evil"

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

Aren't they?
Post reply on HN