3 ms·
Yeah, those are good examples, along with Java or .Net or even PHP. There’s an understanding that a developer can open a file from the source code tree, look at
by dcwca 8y ago
Yeah, those are good examples, along with Java or .Net or even PHP. There’s an understanding that a developer can open a file from the source code tree, look at which includes are in scope, which methods are being used, and follow the API docs on those in order to track down what’s happening. This works almost everywhere but Rails. With Rails you need to have a basic comfort with the entire ecosystem and which behaviours are globally applied, often you can’t follw the source code to know, even if you go into the Rails source, where many methods are dynamically generated.
Other responders on this thread think I’m saying Rails isn’t productive or easy to learn, I’m not. I’m saying there is a higher bar for the minimum amount of knowledge you need to comprehend the flow of control in a Rails app.
- erokar 8y agoFair point, I agree that a lot is implicit in Rails. It might feel intuitive and easy, but at the same time be hard to track or explain.
- jpittis 8y agoI feel like this is a problem rooted in Ruby’s mettaprogramming system. Class state (new methods, changed methods, inheritance hierarchies, etc.) and unexpected control flow materialize out of seemingly nowhere at runtime because you happened to load some library. There’s lots of power here but it would be incredibly dishonest to call it simple. (As you say, hard to track and explain.)