First impressions of Rails
My internship at UniversityNow had me using Ruby on Rails, but I was mostly working with Backbone.js and fixing small Rails bugs. I had never sat down and built anything from scratch before. Today, I spent about six hours learning my way through starting a Rails app.
I thought it'd be interesting to catalog my first impressions of Rails. Please keep in mind that I have no bloody clue what I'm talking about, this is just my reflection.
- Rails is crazy. It seems like a nice (and extendable) collection of good server-side libraries ("gems", I should say). It also seems to force rigidity on you, and when you begrudgingly comply, that part of your app is finished in two minutes. I haven't built anything exciting yet (mostly just user signup), but this simpler stuff takes longer to learn than to implement. It seems.
- RailsCasts is really well-done and even more helpful.
- I've known about Twitter's Bootstrap for awhile now, but I finally tried it for the first time with the help of RailsCasts. I don't think I'm going to stick with vanilla Bootstrap long term, but it makes your site look not-butt-ugly really fast.
- Devise is wild. I had a full user authentication process complete in 30 minutes and I had no idea what I was doing. Imagine how quickly I could do it now!
- I find it a little disconcerting that, in many cases, I have no idea what Rails is doing. As of this writing, I have 12 gems in my gemfile and with dependencies, that becomes 71 gems. It seems fast. It also seems suspicious that 71 different gems aren't going to explode. I know I'm wrong -- people love Rails -- but something about that freaks me out.
- I feel like I'm walking on a tightrope when I'm doing migrations. I wanted to rename two columns -- that was it -- and I was nervous that if I screwed up, databases would come crashing down. Certainly false, what with version control and the "down" migration and Them Internets, but I was much more careful with those than with, say, ERB.
- I'm glad I'm learning it because it's an important skill to have, both for my own personal projects and because (selfishly) it's employable.
Posted on .