Live data from Hacker News

Ruby 3.2’s YJIT is Production-Ready

shopify.engineering

81–90 of 304 posts

Re: Ruby 3.2’s YJIT is Production-Ready

#81
post #43
post #2

It shows that Ruby still has life left in it yet. The language itself is wonderful, there's a great ecosystem of tooling but the performance was always lagging. Hopefully some of this makes it a choice for people once more over other more esoteric languages. My only concern here would be the time and sunk cost fallacy of someone like a Shopify working on a Ruby JIT. It reminds me of when Facebook was working on the H…

I think it's almost a cliché that Ruby is dying, is dead, or is outdated and uncool. It comes up in almost every post about Ruby. It's going as strong as ever and, if anything, it's stabilised into a robust, expressive and powerful language and in many cases that's a pretty acceptable trade-off. The fact it has long since matured into 'boring' technology (as in 'choose boring technology') is nothing but a good thing.…

Indeed. Oh well, while people keep spouting these cliches Ruby will continue running the worlds code bases (Github), a lot of the world's payments (Stripe) and a lot of the worlds e-commerce (Shopify)

Re: Ruby 3.2’s YJIT is Production-Ready

#82
post #59

Earlier quoted context omitted.

I still think it's a great choice for smaller projects. I can't imagine it at the scale of shopify.

Apparently they couldn't imagine it either[1]. 1: https://sorbet.org/

This is built by Stripe, not Shopify.

Re: Ruby 3.2’s YJIT is Production-Ready

#83

Earlier quoted context omitted.

It's not like strong typing came after Ruby. In fact, duck typing was a _feature_ of Ruby on its days. At the end of the day, you choose your battles, it's not a black-or-white decision.

No, but gradual/optional typing did come after Ruby. Back in 2005, you could choose between static typing with type checking but lots of verbosity (e.g. Java "Point point = new Point();" or C++ "for (std::map ::iterator it = myMap.begin(); it != myMap.end(); it++)") or dynamic typing without type checking but also without the verbosity. Since optional typing, dynamically typed languages got the guarantees of type che…

Ruby does have optional type annotations, if you want them:

https://github.com/ruby/rbs

Re: Ruby 3.2’s YJIT is Production-Ready

#84
I'm so grateful for these geniuses working tirelessly on improving the language and runtime, and it allows me to just add an argument and magically my code runs faster.

It's been fascinating following Maxime working on Yjit.

Re: Ruby 3.2’s YJIT is Production-Ready

#85

Earlier quoted context omitted.

In my time at Stripe, few of the candidates were fluent in Ruby, but it almost always took less than a couple weeks to get spun up with it. If you're looking for Ruby talent, it's more challenging.

I've worked at places that hire folks with Ruby experience only (more difficult) and places that just hired the best available engineer and let them learn Ruby (easier but EXTREMELY mixed results - specifically lots of Java ppl insisting on writing Ruby that looks like Java and insisting upon using e.g. Spring conventions in Rails)

This is super common, (and the mark of a bad programmer if you program the same in every language). What's funny is the opposite - people who get so into ruby that everything they write is cute and overthought - is actually worse.

Ruby is so powerful but simplicity is the best if other people are going to read and maintain your code. Go is great for this.

Re: Ruby 3.2’s YJIT is Production-Ready

#87
post #73
post #45

Earlier quoted context omitted.

The main issue I have with Ruby / Python is the fact that it's duck typed, it makes the maintenance and refactor pretty hazardous. You get objects you don't know what's in there, 6 month later someone changed it, no compile error but it will break when you run it. And so to overcome those major issues they added really ugly stuff that is not core to the language, linters, annotations etc ...

What are you using that's strongly typed and as quick to get stuff done with as Ruby?

I think TypeScript, especially with a full stack framework such as Remix or Next, satisfies these two constraints.

Re: Ruby 3.2’s YJIT is Production-Ready

#88

Earlier quoted context omitted.

Apparently they couldn't imagine it either[1]. 1: https://sorbet.org/

This is built by Stripe, not Shopify.

It is, but Shopify uses it as well and maintains the companion tool, tapioca.

https://github.com/Shopify/tapioca

Tapioca is used to generate type signatures on gems and code that creates functions at runtime. Sorbet ships with some of that behavior, but they updated their docs to recommend tapioca over sorbet where the behavior overlaps.

Re: Ruby 3.2’s YJIT is Production-Ready

#89
post #2

It shows that Ruby still has life left in it yet. The language itself is wonderful, there's a great ecosystem of tooling but the performance was always lagging. Hopefully some of this makes it a choice for people once more over other more esoteric languages. My only concern here would be the time and sunk cost fallacy of someone like a Shopify working on a Ruby JIT. It reminds me of when Facebook was working on the H…

I think you don’t like Ruby and would want investment in the your favourite language. Because why would you care what a corporation does with their money?

Re: Ruby 3.2’s YJIT is Production-Ready

#90
post #45

For anyone thinking Ruby is dying or slow, it's not the reason people like me used it and sticked with it in first place! It's about the experience when you write the code itself. It's natural, like a flow of water, and you're suddenly in Zen mode, where your thought just naturally flow without even you're aware or not. I first time learn Ruby from zero to "hero" in production confidently is in just under a week. And…

The main issue I have with Ruby / Python is the fact that it's duck typed, it makes the maintenance and refactor pretty hazardous. You get objects you don't know what's in there, 6 month later someone changed it, no compile error but it will break when you run it. And so to overcome those major issues they added really ugly stuff that is not core to the language, linters, annotations etc ...

rbs / steep, and sorbet.

Monkeypatching is evil.

Rubocop custom cops to reign-in what's allowed in CI/CD.

Post reply on HN