Remix.run Logo
october8140 5 hours ago

I'm not sure any language + framework prioritizes developer happiness as much as Ruby on Rails.

milch 4 hours ago | parent | next [-]

I don't think I've ever been unhappier than working on a Rails project. See a bug on the site - something is rendering incorrectly. grep to find the view. Great, there's a method that is being called to render the buggy section. Grep for the method name - 0 hits. Amazing, it's something that is synthesized somewhere and I have no idea where. Guess I'll stop what I'm doing and read docs for an hour. If you do nothing but use Rails all day, sure, but the whole convention over configuration thing is such a huge anti pattern to me.

ramon156 an hour ago | parent | next [-]

I would advice reading the "efficient rails" book, which explains a lot about how to debug RoR apps.

3 hours ago | parent | prev | next [-]
[deleted]
jimbokun 3 hours ago | parent | prev | next [-]

I’ve had similar experiences with Spring Boot Java applications. Methods in stack traces that don’t exist in source code but are magicked into existence by annotations.

cyberpunk 3 hours ago | parent [-]

Hell with lombok it’s not even uncommon to have entire classes with no defined functions at all. shudder

craigmcnamara 4 hours ago | parent | prev [-]

method(:name).source is your friend

chao- 7 minutes ago | parent [-]

`method(:name).source_location`, but yes. Ruby is very introspect-able and it is fantastic.

pjmlp 2 hours ago | parent | prev | next [-]

I have been pretty happy with Java and .NET frameworks, regardless of the lack of appeal in SV influenced circles.

Happiness doesn't always translate into performance, e.g. famous Twitter logo until they moved into JVM and Scala.

While Ruby on Rails took the fame, we already had similar experiences with AOLServer and Vignette, using Tcl.

We had our own variant at a Portuguese startup, and eventually the founders created OutSystems, one of the first graphical RAD tools for Websites and distributed systems development in low code/no code, targeting JVM or CLR infrastructure.

Now having said all of this, it is great to finally see CRuby getting a JIT in the box.

jdkoeck 3 hours ago | parent | prev | next [-]

It’s short term happiness at best, and at the expense of every other possible architectural characteristic (maintainability, performance, reliability, scalability, you name it).

Gigachad 2 hours ago | parent [-]

Updating Rails is one of the most painful processes ever. There is no real way to be sure it works. You just have to have 50,000 unit tests, cypress tests, and then hope and pray.

On any sufficiently large and old app, something will always break in a way that isn't caught by your tests or manual testing, and only shows up after it goes out live.

chao- 29 minutes ago | parent | next [-]

This has not been my experience.

I have taken applications from 2-to-3, 3-to-4, and so on, through 8.X.

If anything it has gotten better/easier over time. The most challenging upgrades were 2.X to 3.X (for reasons I can't recall), and then 6.X to 7.X (for an application that had issues adopting zeitwerk). In both of those situations, there was a lot of rote legwork, but once tests were passing, the application was working reliably. The other upgrades (3-to-4, 4-to-5, 5-to-6, 7-to-8) weren't happy-fun-rainbows-and-unicorns, but they weren't catastrophically complicated? Not even in fairly large codebases.

For each of these, a strong test suite was the best tool, which it sounds like you already know?

In my experience, the other impactful factors were:

(1) Reading the CHANGELOGs and knowing enough about Rails to know what they meant for the application.

(2) Using test fixtures (or fixtures with only some factories) for a quicker feedback loop for engineers.

(3) Having a true QA function in the company that isn't just engineers testing their own code.

lloeki 21 minutes ago | parent [-]

> 2.X to 3.X (for reasons I can't recall)

Many big structural changes, IIRC bundler integration, plugins became engines, etc...

It was the big Rails+MERB merge.

chao- 19 minutes ago | parent [-]

Ah yes! I remember Merb now that you say it :)

I have my criticisms of Rails, but that definitely set it on a better path.

yxhuvud an hour ago | parent | prev | next [-]

That may have been true (I'm skeptical) back in the RoR 2.x -> 4.x times, but nowadays updating it is a breeze.

flats 2 hours ago | parent | prev [-]

Honest question: what’s an example of a fully-featured web framework that makes upgrading a “large & old” application painless? In my experience, upgrading an underlying framework that a piece of complex software depends upon without breaking everything pretty much always requires time & good test coverage.

Gigachad 2 hours ago | parent | next [-]

Type safety would fix 99% of the issues I've had upgrading Rails.

pjmlp 2 hours ago | parent | prev [-]

Most Java and .NET ones, not everything breaks, statically compiled, so not as many unit tests required as in dynamic languages.

While it is deprecated, you can do a File=>New Project for Web Forms in 2026.

pmontra 2 minutes ago | parent [-]

Why do many people mention the need of tests for types in dynamically typed languages?

In Rails my tests are mostly to ensure that a request to a controller returns the expected response and the expected changes in the database. Unit tests are often on validations and the errors they return for invalid data. Then there are functional tests that drive a headless browser.

ch4s3 5 hours ago | parent | prev | next [-]

I get a similar feeling from Elixir and Phoenix without the method_missing foot gun.

37 minutes ago | parent [-]
[deleted]
gobdovan an hour ago | parent | prev | next [-]

For me it surely is Python with Pytorch, if we talk about frameworks in general.

For web, I can't really offer any useful positive input, I was never satisfied with any framework for Python or Node. I see people praise RoR and Phoenix quite a lot tho!

tobyhinloopen 2 hours ago | parent | prev | next [-]

Rails is the worst. It’s so easy to make a mess and it’s hard to debug.

jimbokun 3 hours ago | parent | prev | next [-]

I’m sure the LLM that translated the code was ecstatic!

thunderbong an hour ago | parent | prev [-]

Ruby? Yes.

Rails? Depends on the project.