From what I understand, it's the fastest VM out there at the moment for Ruby.
And yes, it's from Oracle but they have GPL'd the code [2]
[2] https://www.graalvm.org/docs/faq/
Edit: looks like TruffleRuby is built onto of Graal.
From what I understand, it's the fastest VM out there at the moment for Ruby.
And yes, it's from Oracle but they have GPL'd the code [2]
[2] https://www.graalvm.org/docs/faq/
Edit: looks like TruffleRuby is built onto of Graal.
Not sure when they clarified the licensing around GraalVM, but it's what kept me away from it since it's inception. Looks like the single executable binary is under the Oracle license side of the equation.
Meanwhile Ruby 2.6.5 chugs along and finishes the whole suite in 8 minutes. Never hitting any unreasonable amounts of memory.
Also our C extension emulation layer used to be extraordinarily slow while we made it work correctly, and it's still rather slow.
It's a challenge but we're working on it.
But TruffleRuby is the only alternative Ruby implementation to even run major applications that I've tried at Shopify.
Question: (a) do you believe we'll ever get to a day when TruffleRuby/Graal will be able to 100% run Ruby on Rails and (b) how much faster over MRI do you believe it could achieve?
For parts of the Ruby ecosystem running production workloads, such as the Liquid template engine, I see 6x performance today. I think that's a realistic goal in time.
Any rough estimates on when the masses will be able to run RoR on TruffleRuby?
(Just order of magnitude timing ... e.g. late 2020, mid 2021, etc.)
If people have Sinatra apps or similar they could also try those now.
I'm in the GraalVM Slack - https://www.graalvm.org/community/ - ask me for help.
Don't want to speculate more than that.
I'm aiming for around 6-10x for real production code.
> Does it ever seen like a lot more trouble to try to optimize ruby instead of just writing slow parts in a different language?
I'm pretty philosophical about this.
People want to write and run Ruby code. I trust they've got their own good reason for that. Taking that as a given, I want to let them run it as fast as they can, with the best tooling I can give them. Instead of 'you shouldn't do that' I want to have the attitude of 'ok we'll see what we can do'.
I do personally really like Ruby and I reach for it pretty much whenever I start a new project.