Live data from Hacker News

Why I Hate Rails - After six months you’ll be lucky if you have this

kakubei.blogspot.com

31–38 of 38 posts

Re: Why I Hate Rails - After six months you’ll be lucky if you have this

#31
I am a front end web developer. I mostly don't care what is going in backend and I just call the API endpoint to get my JSON blob.

Recently I interested in learning a bit of backend programming. I did start learning Node.js and Rails together.

I hate Rails too. All Rails tutorials and guides are like reader knows everything they know. I feel it was easier before but now there is so much you need to learn to make a real world Rails app. Sure that Twitter clone is easy. But it gets hard when you want to make a bunch of "gems" work together. You need to know a lot of history of Rails in order to get it.

I liked Node.js over Rails not because I know JavaScript better than Ruby, I never had problems writing or reading Ruby code. It's a beautiful language. The reason I love Node is that I know what is going on. There is not much unnecessary magic.

I know it's not fair to compare a "framework" with a "whatever-we-call-node-js". But Node my points are:

- Rails itself is very skinny that can't do much without gems

- By adding multiple gems to make the framework usable you get into truble of making them work together.

So if Rails wants to solve all my problems it should include all functionalities I (usually) want or if it tries to be skinny and light it should be like Node.js

Re: Why I Hate Rails - After six months you’ll be lucky if you have this

#32
The problem here is stated in your first sentence: "I'm not a programmer."

A lot, if not all of this, just kind of "clicks" if you've already worked with something similar in some shape or form in the past.

Things I'd mark off your list as it isn't Rails specific (You came from PHP, right? None of this should be new if you've built a modern web app):

- HTML

- CSS

- Javascript/JQuery

Things I'd mark off your list as it's Ruby specific (PHP was built for the web, but you can run things in isolation if you want. You want to learn Rails, need to learn Ruby - It's just modular in this setup.):

- Ruby

- ERB Syntax (It's just Ruby inside an HTML file wrapped in , there's nothing really special here)

- Gem Management (gem install my_gem isn't hard and is second nature for anyone who knows Ruby)

- Bundler (Make a Gemfile, type gem 'my_gem' - Done)

Things that are left:

- Rails Philosophy

- Rails Commands

- ActiveRecord

- Rake (Not Rails specific - Just you there are rails specific tasks)

- Routing

- Deployment

Those 6 (5 if you don't count Rake as it's pretty common in a lot of Ruby projects) can be knocked out in the first few chapters of Agile Web Development with Rails(http://pragprog.com/book/rails4/agile-web-development-with-r...). Some things will take practice before getting used to, but for the most part things should be making sense after playing around with it for a few days.

I think the issue here is you're jumping into RoR without a lot of background knowledge that is there for anyone who has dealt with something similar. You're tackling a lot of different things at once so it's overwhelming. Learn things in steps and you'll be all set, don't bite off more than you can chew. Good luck!

Re: Why I Hate Rails - After six months you’ll be lucky if you have this

#34
I think this is a good place to bring up the law of conservation of complexity. Every task has a certain amount of inherent complexity and, short of some revelation or major step forward, you can't get around that.

Gem management, ActiveRecord, SQL, rake, ERB syntax--these are just some of the ways in which that complexity is manifested in the Rails stack. Any sort of large community-maintained and developed web stack is going to have these same pieces of complexity, possibly in different forms.

Re: Why I Hate Rails - After six months you’ll be lucky if you have this

#35
I'm particularly sympathetic to the discussion of gems / rvm. Every non-trivial ruby project I've worked on has started with at least a tour of the outer circles of dependency hell, and I bailed on at least one Rails project partly because I couldn't get the environment up on my machine after two weeks of effort.

I really like Ruby the language. Not so sure about the ecosystem of modules, tools, and frameworks, but maybe that part gets better after you put in a few years.

Re: Why I Hate Rails - After six months you’ll be lucky if you have this

#36
This is ridiculous. If you just want to learn "Rails", you've already lost. Your goal should be learning how to build things with software, not learning one facet of building a web application. If getting Rails setup and installed is too frustrating, maybe software development isn't for you.

Re: Why I Hate Rails - After six months you’ll be lucky if you have this

#38
It's not entirely clear what other programming experience this person had before learning Rails but Rails is definitely not the place to start learning programming. It also doesn't sound like he was following any specific tutorial. For any readers wanting to learn Rails, I would highly recommend http://ruby.railstutorial.org/ruby-on-rails-tutorial-book. If he didn't have a well structured tutorial to follow and no prior programming knowledge then it doesn't surprise me that he wound up confused and frustrated after 6 months.

    * They tell you you don’t have to learn anything else except Rails, that this is one of the greatest advantages it has.
Every single introductory book or blog post to Rails I have read says something like "While knowing Ruby completely isn't a prerequisite to Rails, here's the minimum to get going and you should teach yourself the rest as you go".

    * Oh, but you do know about MVC right? The whole Model, View Controller philosophy? Right?
Not sure why having a design pattern is such a problem. I'd say it makes things easier after learning it.

    * Sure, it’s awesome, once you get the hang of how to install and maintain your gems. Is that hard?
If you're diving into rubygems and adding a bunch just to see what happens then you will probably run into trouble. I have followed the Agile Rails and railstutorial.org tutorials and never got into gem trouble there.

    * Yeah, good luck, first you have to install [rbenv] it with Homebrew
Homebrew is so awesome, especially for beginners. 5 minutes Googling and half an hour should give you enough knowledge to know how to install rbenv (brew install rbenv && brew install ruby-build)

I'll skip the rest of the technology rants as it's more of the same.

    I might as well get a PHD in aerospace engineering instead of learning all this shit just to create a few web pages.
I dare say that aerospace engineering involves a few more literal moving parts than a Rails application.

    You can take comfort in the fact that creating a Rails app is nowhere near as bad as deploying one.
This was written on 8th May 2012. The author lists off all of the technologies Rails requires you understand but amongst all of his research had never heard of Heroku?

There are a lot of moving parts in Rails because it does a lot of things. The author is right that there is a lot to learn in Rails but it's not clear what he's comparing it against. If he wants to make websites with iWeb and work at that level of complexity then I'm happy for him. However this rant reads more like a 5 year old complaining after he tried to drive a car and hadn't learnt how to ride a bike yet.

Post reply on HN