Hacker News new | ask | show | jobs
by julik 1750 days ago
I have seen a couple of Rails codebases and "metaprogramming keeps being used extensively instead of being limited" was not the problem in any of them. Instead it was mostly picking bad dependencies, rushing to delivery, layering complex features on top of one another. The code was maintainable, it is the business logic (and the decisions made hastily) what made it unmaintainable.

> Unfortunately to reach this disillusioned state you need to hit some really hard walls

I have seen quite a few Rails apps, some pretty old, and these were not the hard walls which were hit. One way of not hitting those specific walls (which are pretty soft IMO) is hiring decent people, decently compensated. And empowering them to make decisions.

1 comments

Notice that we might have a different definition of metaprogramming. Including a module, to me, is part of metaprogramming.

A lot of codebases do that, and they create chain of undeclared dependencies between multiple modules being included that make impossible to determine the requirements to use such module in the first place.

The development tend also to slow down to a cripple, as well as being overstaffed to compensate.