Internet discussion, quite frankly, sucks. It's driven by emotions and not logic. People are crass, rude, and take snipes they'd never do in person.<p>It used to be people wrote long letters to each other, like with a pen and paper. In that format, you had to make a case and defend it. In the new format, if you're writing more than 3 sentences you're a regular Tolstoy. The format has gotten shorter, the response time more immediate, and the audience less educated.<p>I remember when C++ was finally overshadowed by newer languages like Java with fancy IDEs.. Old timers quickly found a lot of complete crap coming out from programmers who never had to do things "the hard way" If you never had to take the time to think about classes before you wrote one, everything is a class.<p>Likewise if you've never had to take time to think about what you're writing before you comment, everything is a short, knee-jerk response.<p>Combine all of the above factors and you get an endless stream of tripe. It's the uneducated talking to the uniformed about topics that make them unhinged.<p>It's interesting that somebody associated with Twitter would make that observation. The format keeps getting shorter and shorter, and the time frame more and more immediate. Can't he see the connection?
"One comment that seemed particularly uncontroversial to me was at the core of this nerd firestorm: Ruby is slow. For the next several days, I could think of only one thing: why is something you can measure controversial?"<p>This is exactly what needed to be said, and repeated until it is fully and widely understood. Cognitive dissonance should not be assuaged at the cost of the rational and empirical.
Let us see how PHP and Ruby compare out of the box versus Java:<p>First PHP vs Java:
<a href="http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=php&lang2=java&box=1" rel="nofollow">http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...</a><p>Now Ruby 1.9 vs Java:
<a href="http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=yarv&lang2=java&box=1" rel="nofollow">http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...</a><p>And finally Ruby 1.9 vs PHP:
<a href="http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=yarv&lang2=php&box=1" rel="nofollow">http://shootout.alioth.debian.org/u32q/benchmark.php?test=al...</a><p>So, both PHP and Ruby 1.9 have a hard time when trying to keep up with Java and in these tests Ruby seems to have an edge over PHP. Not to mention that Yahoo one of the biggest enterprises on the web uses a lot of PHP for their services, but there are ways to further optimize PHP so who knows what each user can do to improve performance.<p>My point in bringing PHP into the spotlight is just to show that there are other languages that a priori were just as slow as Ruby but given their niche have had enough success to endure "slowness" criticisms.<p>The languages that are considered fast have often to face potent competitors which make for an immersive experience seeing them develop in the marketplace. Ocaml what, I hear you say?
The following line in the post is the crucial thing. "Amazing how suddenly reasonable and transformed a person can be when they’re forced to look you in the eye"<p>And I think a version of that is included in the guidelines for HN. The power of Internet conversation is the 'detachment' which can work both ways. It can get the nerdiest of nerds to get to talk to large audiences without inhibition and thus contributing to the society at large. However, it can also get them to show their nastiest sides, which probably would have been hidden but for the detachment provided by the medium.
Unfortunately, the thoughtful, intelligent, facts-minded individuals are vastly outnumbered (or at least, out-shouted) by trolls and fan boys on the Internet. Even more discouraging is that the latter are the least likely to read an article like this and take it to heart.
Ruby is a particularly strong magnet for this kind of controversy. As he notes, many of its strengths are not easily quantifiable, while its weaknesses are. Add in stereotyping, tribe mentality and cynicism and it creates drama.
Sure... Nice write-up.<p>From the Hacker News site I have been following the recent controversy and even participated in some discussions. :-) Your Honor, I plead guilty! :-)<p>I cannot blame them (Twitter) when they seek their goals for a better business with higher quality and performance. I even respect their creative skills. So I don't have a beef with them even when Ruby gets caught in the polemic.<p>Ruby to this day continues to be an open source project put together by a community that for better or for worse has most core developers being Japanese.<p>But since about 3 or 4 years ago, Ruby has had other developers seeking to implement compatible Ruby versions... That is, Ruby has outgrown itself and continues to do so. JRuby, MacRuby, Rubinius, IronRuby...<p>At the end of it, though, Ruby continues being relatively slow when compared to other kinds of languages. But first read the following article to see some reasons why is that:
<a href="http://blog.headius.com/2009/04/how-jruby-makes-ruby-fast.html" rel="nofollow">http://blog.headius.com/2009/04/how-jruby-makes-ruby-fast.ht...</a><p>Since Ruby's beginning, it was not out to reach C level performance. And JRuby for one improves upon some of the shortcomings of the main C implementation of Ruby quite well, not without its own shortcomings though. :-)<p>So, what do we have in the controversy? Twitter is a little sick of complaints of it letting the ball fall when much more is required of their services, so they go overboard when defining a solid platform for it with Scala. Not to mention that they simply can't go converting their entire system to Scala just yet and they are still happy with the Ruby part of the equation at creating the web interface the users see.<p>What do we have then? More options of development. Instead of C, C++, Ruby and Java, include Scala there as well. Each with their own pros and cons. We know that, right? But if it were simple to use each one of those languages and more when providing a set of services, we would not have a beef with who chooses what when developing. Nature has it that while it's possible, it's much tougher to get it working. That's partly why big companies like Google try to minimize their options of tools and in doing so help to set standards throughout the industry.<p>Such standards, fortunately, don't apply for everyone, otherwise Twitter might have started with something other than Ruby on Rails.
Very good article. This should be right up there with famous articles such as "How to disagree" and many others. I think this should be required reading for many of the technology blogger equivalents of political bobbleheads out there.
For deeply technical conversations I research answers I give and back up what I say with links to source material or a log of the commands I ran. This seems to be quite unusual, and I believe most technical discussions would benefit from a similar approach.
There Is More Than One Way To Do It - TIMTOWTDI - it's a pity that that slogan is confined to the Perl community. No other slogan is so effective in imposing a culture of civilized dialog between competetive projects.
Bah! Reading all the bickering on this page about a blog entry about bickering has been a huge time-suck, including formulating this response. If you have come across this comment please leave before it's too late!