In case you didn't know, Ruby Kaigi is going on right now, the biggest conference for the Ruby programming language.
It's going to lay out what Ruby 3.0 looks like, including how they plan to make it 3x faster, and possibly add some sort of type system.
It's in Japan, so details are scarce, but this image is floating around on Twitter. Some kind of weird way to handle concurrency? I haven't heard of a concept like this before.
>It's going to lay out what Ruby 3.0 looks like, including how they plan to make it 3x faster Based on what I know about Ruby, I don't really see how this is possible.
Jaxon Bennett
JIT. That'll give it a reasonable speed boost.
Lucas Bailey
>jit
>blog.heroku.com/where_will_ruby_go_now_talking_with_tenderlove_at_railsconf >Yeah, exactly. You can flip that with flags and stuff. So I don't really see how memory usage would be that much of an argument. Though, when you look at the stuff that Chris Seton has done on Truffle Ruby, so Truffle + JRuby — that thing is super fast, but you'll notice that in presentations that they never talk about memory consumption. They never talk about it.
I don't think ruby jit with low memory consumption is possible at this point. Unless they can make Mike Pall working for it, some how.
Nolan Evans
This whole 3x3 meme is just too late.
I really like Ruby as a language. I'd much rather write Ruby than JavaScript.
But a three times performance increase hailed in a major new version will still put it long behind many other platforms.
They should at least be targeting 10x if they want Go to stop stealing their users.
Nicholas Parker
even rpg maker has stopped using ruby for javascript.
well, you still can write prototype in ruby then change it to crystal later for performance though.
They talked about that back in the 1.8 days, but as I recall, other structural improvements were deemed easier to implement, with more speed benefit. The 1.8->1.9 speed jump was amazing. I don't know if they could pull off the same trick with 3 again.
Asher Johnson
I am only interested in this conference if the organisers have assured racial, sexual and religious diversity
Dylan Miller
Are eggplants and dongles banned?
Henry Foster
That's about the most obvious bait one ever seen.
Wyatt Cruz
I don't think it's bait, just irony
Landon Diaz
It's in Japan. Japan doesn't really do "diverse."
Nathaniel Roberts
The whole problem with Ruby is that it's a really, really comfy syntax married to an awfully complex structure underneath. How can you get performance out of a language with almost no real basic data types, or one that has to check variable names for context? I'm not a language expert but Ruby's speed seems limited by design to me. You can't have luxuries baked in without the performance hit.
Carter Scott
Who the fuck uses Ruby anyway. Is this 2011?
Brayden Kelly
ever heard of Truffle?
Jeremiah Edwards
>almost no real basic data types Fixnum, Bignum, Float, Array, String, Hash... Ruby has plenty of data types. What it doesn't have is primitives. That said, some performance improvements have been made despite the system being wonky. For instance, the interpreter can tell an object is a Fixnum just from its object ID, and can use that object ID to extract the integer it represents without having to further access memory.
>one that has to check variable names for context You do scanning/parsing once, and it's typically not the most computationally expensive thing to do. Also, Ruby's name rules only require checking the first and second character (first for everything other than class variables) to determine everything you need to know.
You would be right in saying that some of the design features of Ruby will make optimization difficult, but some improvements can still be made. Recall that Javascript is also relatively dynamic, but has approached many other JIT-compiled languages in performance. If Ruby had a native JIT compiler, it might use more memory, but it also might have faster execution speed.
Believe it or not, there is more to Ruby than just Rails.
Daniel Hernandez
>the interpreter can tell an object is a Fixnum just from its object ID 2*x + 1 right?
Nathan Barnes
Yep. On 64-bit Ruby, there's also some system for certain floating point numbers, but I'm not sure what it was.
Aaron Davis
Ruby is already beating Python at most benchmarks. If you triple its speed it won't make it C-level fast, but it will make it much faster.
The main thing 3.0 can bring is true parallelism. Once that happens, Ruby will be significantly better at Web-related tasks, which is awesome.
More importantly, continuing to increase speed shows that the Ruby team is growing in competence, and that Ruby is still vibrant as a language. It's great for marketing, at the very least.
Nolan Richardson
this multi threading proposition actually makes sense, and is pretty decent, i could get behind this.
Adam Carter
> >Believe it or not, there is more to Ruby than just Rails.
Been using ruby for 10 years. Have never touched rails. Can concur.
Levi Reyes
>It's going to lay out what Ruby 3.0 looks like, including how they plan to make it 3x faster, and possibly add some sort of type system. So it's basically Crystal, except probably less thought through?
Ryder Rodriguez
>Unless they can make Mike Pall working for it, some how. He's good, but remember Lua is a much smaller language than even JS, which means, it would at least take 10 Mikes and 5 years to get to a usable JIT compiler for Ruby or Python.
Connor Smith
Ruby is hard to JIT, but I think that trading memory consumption for speed is okay in some cases.