Euruko Keynote: Beyond Ruby 3.0 (Yukihiro Matsumoto)

Ah, I am mostly saying it’s hard, not impossible, you know?

But I get it, most people are after stability and don’t want to change jobs. Not judging.

3 Likes

Think of Matz as the “CEO” of Ruby. He’s not the one writing all the code. He’s not the one coming up with all the ideas. But he is the one, who have to be responsible for everything. He’s the face of Ruby. To that, yes, he’s playing with technology. He has to. He’s looking for what’s next for Ruby to pursue. That’s how we got Ractors. Matz started that project many years ago, by experimenting with different actor libraries and such.

You’ll see that the world disagrees with you here. Take a look at for example Shopify and GitHub. Both use Ruby extensively and both drive it forward, with for example Sorbet.

Why are people still using C? C was released almost 50 years ago. It doesn’t have garbage collection. You need to manage memory references yourself. There’s no classes or objects or anything. Different programming languages meet different needs. You want speed? Go for C. You want human-programmable? Go for Ruby.

If you go to your local grocery store, you’ll probably see a bunch of different brands of orange juice. Why do you think that is? I assume it’s because they each seek to fulfil a different need in their customers. Some are organic, some are with pulp, some without. Some are with sugar, some without. I see the different programming languages the same way. I would never use Ruby for making a stock trader, it’s not what the language is meant to be doing. A web app? Sure! I can even write one pretty fast with the current libraries and offerings.

Rewriting something just for the sake of having it written in some other language is, in my opinion, just as much a waste of time and energy. What’s wrong with MRI being written in C? Do you see many type errors or mutability errors in the interpreter itself?

That seem to be where we are headed. Especially with the # frozen_string_literal: true magic comments. However, as Matz discussed in the video, you can’t just say “From tomorrow all strings will be immutable” That would split the community in the same way we saw with Python2 and Python3.

I don’t think there’s such a thing as a “perfect language”. There’s no “one size fits all” solution to programming.

Yup. And still, we don’t see any other languages being so massively concurrent at its core. Why is that?

That’s exactly where it becomes important! If the language you use is unintuitive and unnatural, you’ll be making a ton more mistakes than if it wasn’t. Sure, if you want a job, where you have to write a thesis before you can start coding, you shouldn’t use Ruby, but Ruby is so intuitive that I believe I could have even my mom write most basic programs and understand what’s going on.

The beauty of civilised online debates. :heart: :tada:

Oh yes, indeed. I haven’t had the chance to fiddle with RBS or even Sorbet yet, but I am overjoyed that they exist and help make the world a (type) safer place :laughing:

I want in on the heart situation here: :black_heart::purple_heart::green_heart:And I hope that everybody reading this knows, that no ill intensions have ever been made. The internet and thus written communication can often be difficult, because you can’t convey tone and mimic. It gets even worse when the language you’re communicating in isn’t your own. (I tend to write more formel in English than I would in Danish)

5 Likes

No worries.

Speaking of stability, I started on this company less than 3 months ago. I was working with nodejs and go for about 4 years on my previous company.

This is the first time working on a foreign startup, so things are quite a bit unstable on my end :smile_cat:

3 Likes

Fully agreed, that’s why I feel it’s a bit unjust for him to always take all the credit in many online discussions I’ve seen in the past. Matz is the leader but he has a ton of hard-working people behind his back who make Ruby happen.

I am quite okay with that, just want to point out that popularity doesn’t equal quality. They are only loosely correlated.

Good question, I have the same one. :smiley: A lot of people are moving to Rust, myself included.

For all the reasons you enumerated plus one more: they all want a slice of the pie. We shouldn’t forget that one. A lot of programmers are very vain and popularity and using their stuff is important to them. That’s a character weakness in many situations. My point with part of the post was: too much individualism! We should all collectively read code some more and write code a bit less.

Not disagreeing with you here, will just add one nuance: memory-safe languages and Rust in particular protect you against the biggest class of security bug fiascos that we’ve seen in the last several years: non-safe memory access. I won’t go full zealot here but I believe “should we rewrite $EXTREMELY_IMPORTANT_SOFTWARE that’s used every day by millions, in a memory-safe language?” is a very worthy discussion to have.

Almost everybody has moved to cloud where Docker / VMs are used. Maybe it’s high-time to have things like docker, kvm, qemu et. al. be rewritten in memory-safe languages because not doing so is a continuous business risk of private data leaks.

Yep, I was still around when it was introduced and I approve of it but IMO the migrating is moving way too slow and the core team is paralyzed by fear of another Python 2 vs. 3 showdown which might, ahem, freeze these efforts indefinitely. Time will tell. I like the trend – but not the speed with which it’s happening.

Agreed. But wouldn’t you agree that picking particular 5-10 languages would cover everything that people need in commercial programming? I am leaning towards that opinion lately.

F.ex. there’s a number of tasks for which I’d unequivocally reach for Elixir but I know its weaknesses and where I don’t feel it’s a good fit I’ll just use Rust. And if both would be too much trouble (and too slow to develop) I can and have made fully functioning programs written in bash or zsh scripts as well.

My theory: in most technology, if you don’t bake something in from the beginning, adding it post factum is 100x harder. Hence people either never do it or it takes them years and years (Rust and OCaml both come to mind; they are trying really hard and are moving forward towards OTP-like guarantees but even with their insanely talented teams it takes a long time).

I concede I was a bit dismissive here and I apologize. Yes, having joy while programming is essential. Absolutely. That’s what brought me both to Elixir and to some extent, Rust (joy there doesn’t come from syntax because it’s kind of bad, but from its guarantees and uber-powerful dev tooling that literally gets better every week).

Absolutely! :heart:

3 Likes

Very well put Ohm! I agree with pretty much everything you said :nerd_face:

I think ultimately it boils down to preferences - some people like some languages or certain types of languages over others, and that’s totally fine. The important thing I feel is that people are making cool stuff with whatever they decide to use :blush:

2 Likes