Remix.run Logo
horsawlarway 5 days ago

This is where I landed too.

Type system support, and the tooling around that support, has gotten SO much more powerful in the last decade or so.

Lots of the warts also got burned off with better support for smart typing, auto vars, duck typing for inputs, etc.

That tooling covers a HUGE swath of bugs that I just don't have to worry nearly as much about, and it makes quick refactoring less painful and less risky.

Going back to Rails feels like stepping back into the dark ages. So many stupid repeated tests/specs for things that should just be in a type system. The tests are slower to write, cover less ground, and are much more brittle.

My tooling isn't as capable, my feedback loop is slower (hard to beat instant type hinting for errors/mismatches right in my editor as I type), and I feel like I'm working with a blindfold on.

---

Yes, parts of Rails are great, yes - if you know it already it's a very productive environment. But man do I absolutely hate the lack of interest in type systems from the majority of Rails devs.

It's hard to overstate how valuable it is to be able to change a data structure and have all 29 places you might have broken immediately presented to you with basically no effort on your end outside of some minor type work.

I will pick it every time over having to write 29 specs in rails to get even close to the same safety.

at0mic22 4 days ago | parent [-]

Ruby guys have made an attempt to introduce type system few years ago, but they found it nearly impossible to infer types from metaprogrammed code - which makes sense. So they came with the suggestion that you write types for dynamically generated methods yourself. Comeon!