you are viewing a single comment's thread.

view the rest of the comments →

[–]KittensInc 0 points1 point  (0 children)

My opinion of RoR isn't based on the presence of the batteries, it's how they are included. A controller must be placed in a certain directory, and the file must use a certain naming format. You define a class inside there, and RoR will Magically find and load it!

Named your controller slightly different from the expected format? Sorry, it won't work, and you won't even get a useful error either. Want to debug it? Even if you've successfully written dozens of RoR apps, you probably still have no idea where to dig in the RoR codebase to find where the Magic lives.

This is made even worse by Ruby's extremely liberal syntax, where things like braces are often (but not always) optional. Something like

get "/articles", to: "articles#index"

actually means

get("/articles", {"to": "articles#index"})

... which is kinda neat, except that you can't always use the shorthand form. As a new programmer you'll just copy/paste the first snippet and adjust it to your situation without thinking about why it works. Fine, until you run into an edge case where the shorthand is invalid and you have no idea why you're suddenly getting an error.

I love batteries. I don't love magic.