Slashdot Mirror


Experimental MacRuby Branch Is 3x Faster

An anonymous reader writes "Zen and the Art of Programming published an article about MacRuby's new experimental 0.5 branch (project blog entry here). According to the included benchmarks, Apple's version of Ruby could already, at this early stage of its development, be about three times as fast as the fastest Ruby implementation available elsewhere."

24 of 191 comments (clear)

  1. That's because it's spiked with assembly by Anonymous Coward · · Score: 5, Funny

    I heard it made a guy in Michigan's head explode! That's why I stay away from the experimental stuff, man.

  2. Why MacRuby Matters? by Anonymous Coward · · Score: 4, Insightful

    Why MacRuby Matters (Present & Future)?

    Apparently because an experimental incomplete version of Ruby is fast. Colour me unimpressed.

    1. Re:Why MacRuby Matters? by NoTheory · · Score: 4, Insightful

      MacRuby matters for a lot of reasons. Early benchmarks aren't one of them. http://blog.headius.com/2009/03/on-benchmarking.html

      MacRuby's potential for Cocoa integration is fantastic and great, and something i very very much want to see.

      It's not clear however what relationship benchmarks at this stage (with an incomplete implementation) will actually correspond to in the future. They are a total red herring for discussion.

      Look at MacRuby on the merits! not the benchmarks!

      --
      There are lives at stake here!
    2. Re:Why MacRuby Matters? by Artuir · · Score: 5, Funny

      Whenever I read posts like these I start to wonder if I accidentally walked into a Starbucks.

    3. Re:Why MacRuby Matters? by thePowerOfGrayskull · · Score: 4, Funny

      I suspect that someday in a future version of the Mac OS, Ruby will be a first-class language for application development alongside or perhaps replacing Objective-C.

      Wouldn't that require Ruby being a first-class development language in the first place? ;)

      Yeah, yeah, go on and mod me troll, I can handle it.

    4. Re:Why MacRuby Matters? by tyrione · · Score: 5, Insightful

      Well, if you ask me, I suspect that someday in a future version of the Mac OS, Ruby will be a first-class language for application development alongside or perhaps replacing Objective-C. I think Apple likes Ruby and its aesthetic. A lot of the Rails devs are Mac developers, and I think that's where it sparked.

      First Class, maybe. Replacing ObjC? You're prediction makes LSD trips seem dull.

    5. Re:Why MacRuby Matters? by Macthorpe · · Score: 5, Funny

      Yeah, yeah, go on and mod me troll, I can handle it.

      Alright then!

      Wait a minute...

      Shit.

      --
      "It does not do to leave a live dragon out of your calculations, if you live near him." - Tolkien
    6. Re:Why MacRuby Matters? by Malevolyn · · Score: 3, Funny

      Don't forget the possibility of ObjC extensions for Ruby.

      --
      Your ad here.
    7. Re:Why MacRuby Matters? by Teilo · · Score: 3, Insightful

      I don't care much for Ruby myself. I'm a Python guy, but I don't give a frack what language people use.

      "Least used scripting language"? Right, because nobody develops on Rails (like it or hate it).

      Ever check the stats on Developers who use Macs (vs. the general populace)? Didn't think so.

      And finally: that which makes MacRuby very very fast can also make Ruby on *nix very very fast.

      The problem with Ruby is not the language. It is the VM. Improve the VM, and more people will look at other uses where Ruby is a great fit but for its speed.

      --
      Mir tut es leid, Menschen daß Einfältigfehlersuchenbaumfolgendenaffen sind.
  3. Yeah , a true renaissance by Viol8 · · Score: 4, Insightful

    "LLVM supports effective optimization at compile time, link-time (particularly interprocedural), run-time"

    Amazing, truly unique ideas. If only someone had thought of doing this 30 years ago... oh wait...

  4. Re:LLVM strikes again. by samkass · · Score: 5, Interesting

    Of course, the results don't exactly show a "3x speedup"... they show between a 0.08x speedup and a 7.8x speedup, with a high variability. Which is really great for such an early build, but it's not an instant panacea for everything.

    --
    E pluribus unum
  5. Re:The questions remains... by FooBarWidget · · Score: 5, Insightful

    Every time a story is posted about Ruby performance improvements, someone will post something along the lines of "x times faster than super ultra duper slow is still slow". Even if Ruby is 1000 times faster, there will still be people complaining. My guess is that none of these people actually use Ruby in production to be able to tell how much interpreter performance actually matters in the grand scheme of things.

  6. Re:Ruby? by NoTheory · · Score: 4, Insightful

    Er, way to troll? If you'd like to do your ridiculous hello world you can stick to:

    puts "i like beans"

    And it's really unclear what "it" you're referring to. Because Ruby, for me, is a good blend of the things i wanted from Perl and Lisp with a side of Object Orientation. I get all the laziness and conveniences of Perl, and i can do all the crazy stuff i'd want to do with Lisp. So imo, you're way off base.

    --
    There are lives at stake here!
  7. Nitro AKA Squirrelfish by stefaanh · · Score: 3, Interesting

    I wonder if this has any connection to what they learned creating the optimized javascript "interpreter" they made for their next generation rendering engine Webkit.

    --
    --------
    * Sigh *
  8. Re:The questions remains... by wrook · · Score: 5, Interesting

    I agree with this totally. These days I'm writing exclusively in Ruby and it is "fast enough" (even with 1.8.X). In fact, this speed issue is such a big red herring for me. I hardly ever have any issues with speed. Instead I spend most of my optimization time trying to cut down on memory usage.

    For me, even an order of magnitude difference in speed (i.e., 10X) isn't going to mean too much. There are certainly places where I'd like my code to be faster, but they are very, very small places. I can easily code them in C if I have to (C/Ruby bindings are *very* easy to write). But honestly, I've never gotten to the point where a speed improvement is more important than a functionality improvement. Every program is different, of course. So not every problem is suited to Ruby.

  9. How they did it by Anonymous Coward · · Score: 5, Funny

    Sleep(30); /* used to be 90 */

  10. Re:The questions remains... by 33degrees · · Score: 3, Informative

    While the Ruby 1.8 VM is quite slow, the YARV VM used in 1.9 is much faster, resulting in similar performance to most other dynamic languages. These tests are showing MacRuby being 3x faster than 1.9, which puts it in "quite fast" territory.

  11. Re:Ruby? by anegg · · Score: 3, Insightful

    Any sort of layering is a major cause of bugs/slowdown? Quick, throw out TCP/IP. Everyone start using Ethernet frames directly from their apps, even if what you really want to use is SOAP over HTTP over SSL over TCP over IP... I'm not sure how you will get your Ethernet frames past the first router, but I'm sure you will think of something. Damn layering just gets in the way!

  12. Re:The questions remains... by Otterley · · Score: 4, Insightful

    These days I'm writing exclusively in Ruby and it is "fast enough" (even with 1.8.X).

    I suspect that's because your website doesn't receive thousands of dynamic requests per second.

  13. Re:GCC avoids high level interprocedural optimizat by jcr · · Score: 3, Insightful

    So, GCC is making what should be technical decisions on a political basis?

    Good to know. That's one more reason to be glad when GCC fades away.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  14. Re:true, but seems unnecessary by Tumbleweed · · Score: 4, Funny

    PS: Do you want me to punch you in face? You see, C++ is one of my favorite languages :)

    I don't like the feeling of being punched in the face, which is one of the big reasons I don't code in C++ or Java. But if that's your thing, you should keep at it! :)

  15. just you wait... by 3seas · · Score: 3, Insightful

    ... for them to get further along in completing it... it'll slow down.

  16. Re:Apple's work on LLVM by rmav · · Score: 3, Insightful

    The main effect of GCC for the last 20 years has been to suck all of the air out of the room for anyone else who wanted to develop compilers.

    That is one of the most retarded statements I've ever read.

    No. What the poster said is true. Also unfair, because GCC is a very useful tool, but it still had a bad influence as well. GCC is extremely useful and produces decent code as well, but it has effectively stifled a lot of C/C++ compiler research. And it seems to become slower with each release. I have a lot of code that was faster with 2.95 than with any 3.x release, and with 4.x it is even slower.

    Now, LLVM is still a mixed bag, sometimes code is much faster, sometimes a bit slower, and does not compile everything I throw at it, but it is impressive technology. It has a more modern infrastructure, and finally allows things like compiling to bytecode and dynamic run-time optimisation with C. It may even allow for CPU-independent operating systems in the future, where you have LLVM bytecode in the binaries that will run like natively-compiled code once loaded.

    I compiled some C programs _to_ LLVM bytecode and then ran them on my mac.

    Their performance was comparable, oftentimes better, than that of the same programs compiled with a recent GCC. And I can still add inline assembler, which then is used only on the right architecture, if I provide C alternatives.

    Think about this. This has the potential of *finally* freeing us from dependence on a CPU ISA. It may be an Apple-sponsored project, but we all should be grateful to them that they are actually pushing it.

    Roberto

  17. Re:The questions remains... by FooBarWidget · · Score: 3, Informative

    "Thanks, Captain Anecdote, but you've left out even the anecdotal evidence. What's all this exclusive writing you're doing with Ruby? I've been doing all my grocery list work in Ruby too, and it's *totally* fast enough."

    I'm not the GP, but New York Times, MTV, Aboutus.com (high-ranking Alexa site), Yellow Pages, are all running Ruby. I'd love to give you even more examples but I've signed NDAs.

    "I think Ruby is a fantastic language, but then I see comments like this modded up to 5 that are completely nonsensical. This makes Ruby fandom seem more like Java 1999, which makes me think twice about my positive opinion of it."

    I can say the same thing about comments that complain about Ruby's speed without providing any kind evidence that the interpreter's speed is the bottleneck in their application. This makes it seem like bashing Ruby is just the latest fad, which makes it very hard for me to take any of these complaints seriously. If you cry wolf several times then nobody will listen to you anymore.