The State of Ruby VMs — Ruby Renaissance 89
igrigorik writes "In the short span of just a couple of years, the Ruby VM space has evolved to more than just a handful of choices: MRI, JRuby, IronRuby, MacRuby, Rubinius, MagLev, REE and BlueRuby. Four of these VMs will hit 1.0 status in the upcoming year and will open up entirely new possibilities for the language — Mac apps via MacRuby, Ruby in the browser via Silverlight, object persistence via Smalltalk VM, and so forth. This article takes a detailed look at the past year, the progress of each project, and where the community is heading. It's an exciting time to be a Rubyist."
Ruby Javascript (Score:3, Insightful)
It would be so nice to be able to use Ruby instead of Javascript. :)
It is so much easier to write clean code in Ruby and since I use a lot of Ruby on Rails it would be great to be able to use the same code in the backend and in the browser. Go Ruby!
Re:Ruby at a sight (Score:1, Insightful)
You didn't apparently look deeply. Ruby didn't resemble perl then, and it doesn't now. Ruby is far more powerful and expressive than Python.
Ruby did borrow some things from Perl, but it borrowed far more from Smalltalk.
Good News (Score:5, Insightful)
I'm glad to see so much work is being done on Ruby, and especially that people are working on compiling Ruby to native code. Ruby is a great language, but there is no denying that the old implementation (MRI 1.8 and before) is dog slow.
Re:Yawn. (Score:2, Insightful)
Web 2.0 is still gay.
To quote Mel Brooks' *The Producers*:
Re:Ruby Javascript (Score:2, Insightful)
Something in your tone tells me you're not the open-minded type. Maybe you just failed to get into the language, expecting it instead to fit your own mindset+knowledge ?
Benchmarks or it didn't happen. (Score:4, Insightful)
I've worked with Ruby for over a year and a half, and I can say with absolute confidence that the language is horrible. You can flame back to this all you want...
That might be an interesting discussion, actually, but:
...the fact remains that it's a slow blob and throwing more hardware at it is a stupid argument.
See, that's a property of the implementation, not the language. You have noticed what's happened to Javascript lately, right? It used to be slower than Ruby. With v8, it's faster than Python.
Also, you fail to address why throwing hardware at it is a stupid argument, and you don't provide any benchmarks that it's slow.
No major VM is going to make it rival the top languages in raw processing power (C/C++/Java even Python).
If you actually looked at benchmarks, you'd notice that if nothing else, Rails beats PHP, consistently, for performance.
And Rails "automagic" combined with Ruby's inability to report exceptions in a meaninful way (the backtrace is 99% rubbish, and often reports the error in a place where it didn't even occur)
It would help if you actually gave an example here, but you don't. In my experience, the backtrace is actually quite helpful, but use of unit tests and specs helps avoid it.
As for Ruby in a browser - there's already projects that do that, and do it fairly well.
Which is one of the things TFA is about. So what's your point?
Some of them use Applets, which is where suddenly everyone has a hissie fit. Yeah, using a proprietary Windows-centric tech like Silverlight is a MUUUUCH better option.
I suspect Silverlight is at least faster to load, but I haven't tried doing either. Javascript does what I want it to do well enough.
Or writing a VM in JavaScript? Talk about MOLASSES!
Again, benchmarks or it didn't happen. Make sure to test it in one of the better Javascript engines, like v8.
If I want to use a quick scripting language with ample flexibility and power, I'll use Groovy, thank you very much. For one thing, Groovy and Grails gives me a LOT more choice as flexibility over RoR any day of the week.
Can you give an example of how? I mean, for one, there only really seems to be Grails, whereas Ruby has more web frameworks than VMs, and that's saying something. Take Sinatra, for example:
That's right, a REST DSL. What has Groovy got, again?
So, Rubyists, have your little childish flames now.
That's the most literal example of flamebait I've ever seen. Unfortunately, it doesn't look like anyone's really flaming you back. I'm the closest, and I'm just asking for facts.
And don't assume I'm a "n00b" - I've got over 15 years IT experience in more languages that I can list in this comment block.
With all that experience, you couldn't figure out that the comment block seems to allow very, very long comments -- almost certainly longer than the total list of programming languages that exist?
More importantly, you seem to have fallen into the same trap that Jerry Taylor [centos.org] did. I have no idea what your experience is, but it certainly doesn't seem to be reflected here.
Re:Ruby Javascript (Score:3, Insightful)
I'm sure something similar is feasible for Ruby too.
It certainly is [github.com].
And there's also a Python port of GWT, very aptly named pyjamas [pyjs.org].
Re:Ruby at a sight (Score:4, Insightful)
Personally, I feel like metaprogramming is an integral part of Ruby programming, whereas, in Python, it runs contrary to the spirit of "one way to do it", but Python does support metaprogramming and plenty of people are putting it to good use.
You have heard of the concept of functional programming, have you? If functions are first-class citizens in data-type world, there is no separation between functions and data (or algorithms and data structures) anymore. So there is no point in a word like “metaprogramming”. What those languages support, is metaprogramming. And it’s sometimes shocking how much it exactly looks like Haskell (where everybody steals from nowadays). ^^
JavaScript also belongs into that family.
As soon as you understand Haskell, suddenly, all those languages become much more intuitive, expressive and useful. (I love higher-order functions! ^^)