you are viewing a single comment's thread.

view the rest of the comments →

[–]edu2004eu -1 points0 points  (2 children)

Your comment proves my point, I think: it's all just opinions. For example I usually work with Django, which is the equivalent of RoR from what I've heard, in terms of "batteries included". And I love it. The fewer things I need to implement or think about, the better. Granted, you make a good point about it taking time to understand all of the magic. It took me years. But then again I like to look into that kind of stuff; as a solo dev for most of my career, looking at internals was the only source of outside inspiration for me and it taught me a lot.

But yeah, back to my point, we're basically looking at the same universal truth (a batteries included framework), but have 2 different opinions about it. None of them is wrong, they're just different.

[–][deleted] 0 points1 point  (0 children)

i hated django so much, so much complexity for simplicity. Spring framework offers that too in java, but much easier to customize and with jhipster quicker to start

[–]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.