# Is rails for me?

**URL:** <https://www.ruby-forum.com/t/is-rails-for-me/155991>\
**Category:** Rails\
**Created:** [December 19, 2008, 2:20am UTC](https://www.ruby-forum.com/t/is-rails-for-me/155991 "2008-12-19T02:20:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![walterbyrd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/3d9bf3/32.png) [@walterbyrd](https://www.ruby-forum.com/u/walterbyrd)\
**Post date:** [December 19, 2008, 2:20am UTC](https://www.ruby-forum.com/t/is-rails-for-me/155991/1 "2008-12-19T02:20:56Z")

</div>

I am a casual user of php, perl, and python. I am trying to learn more  
about those languages.

I would like to build some data driven web-apps. I don’t much care for  
perl or php. I consider perl and php to be difficult to read and  
maintain.

I somewhat like python. But, I have had trouble trying to get anything  
actually working with django. For me, deployment, and installation  
were difficult, and it seems that the ongoing configuration boarders  
on excessive. I need to maintain so many configuration files, and have  
to touch each file, or restart the server every time I make a change.

I don’t know if RoR is any better. I have heard that RoR is good for  
getting simple CRUD apps up and running. But, I have also heard that  
everything in RoR is “magic” i.e. the developer is not really  
connected to what is going on beneath the covers. I’m not sure I like  
that.

Is RoR a framework, or a code generator?

---

<div class="post-metadata">

**Author:** ![walterbyrd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/3d9bf3/32.png) [@walterbyrd](https://www.ruby-forum.com/u/walterbyrd)\
**Post date:** [December 19, 2008, 2:33am UTC](https://www.ruby-forum.com/t/is-rails-for-me/155991/2 "2008-12-19T02:33:13Z")

</div>

Django is configuration over convention framework, i.e you tell django  
where everything is and where to find it.

Rails is convention over configuration, i.e there are specified places  
to put your controllers, models and views, there are specified naming  
conventions and methods to use.

So if you don’t like the amount of configuration in Django then you’ll  
probably like Rails.

It is a steep learning curve, however, to memorise all the conventions.

Regarding ‘code generator’, the generators exist in Rails to further  
speed things up. If all you want is a very basic CRUD app, then script/  
generate scaffold will get you up and running in under a minute.

And with Passenger, Rails is becoming much easier to deploy.

But in the end, it is all about how you like to code and how you like  
to work. So I suggest having a look at the new Rails screencast  
because it gives you a pretty good idea of how things work with Rails  
and then giving it a go and try to make a small app and see how you go  
with it.

---

<div class="post-metadata">

**Author:** ![walterbyrd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/3d9bf3/32.png) [@walterbyrd](https://www.ruby-forum.com/u/walterbyrd)\
**Post date:** [December 19, 2008, 2:44am UTC](https://www.ruby-forum.com/t/is-rails-for-me/155991/3 "2008-12-19T02:44:20Z")

</div>

walterbyrd wrote:

> Is RoR a framework, or a code generator?

It is a framework and platform that allows you to ignore zillions of  
low-level  
details. When the high-level methods don’t work, you can easily write  
the  
low-level details yourself. For example, given an ActiveRecord model  
called  
Model, you can use Model.find\_by\_name(…) to generate and run the SQL  
query  
required to find a model by its name. If you need a more complex query,  
you can  
write Model.find(…) and put little snips of the target SQL into that  
method.  
If you need still more complexity, you can write Model.find\_by\_sql(…),  
and  
then put an entire customized SQL statement in there.

This concept is called a “Domain Specific Language”. Rails’s authors  
have  
constructed little languages out of Ruby primitives that let you stay  
mostly in  
Ruby while creating SQL and HTML code.

RoR offers the best of those data-driven systems you listed. And, unlike  
a  
Java-based solution, the Ruby language is very flexible and dynamic.  
People who  
switch to RoR tend not to switch back!

–  
Phlip

---

<div class="post-metadata">

**Author:** ![walterbyrd](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/3d9bf3/32.png) [@walterbyrd](https://www.ruby-forum.com/u/walterbyrd)\
**Post date:** [December 19, 2008, 6:49pm UTC](https://www.ruby-forum.com/t/is-rails-for-me/155991/4 "2008-12-19T18:49:37Z")

</div>

walterbyrd wrote:

> I don’t know if RoR is any better. I have heard that RoR is good for  
> getting simple CRUD apps up and running. But, I have also heard that  
> everything in RoR is “magic” i.e. the developer is not really  
> connected to what is going on beneath the covers. I’m not sure I like  
> that.

There are many things you’ll “hear” about Rails, as with any web  
framework that’s worth anything. Some may have a grain of truth, but  
most are just rumors and hearsay.

Is it true that RoR is good for simple CRUD apps? Sure. But, the reason  
it’s good for simple CRUD apps is that it’s good for building web apps  
in general.

Ruby is a general purpose language and Rails is a set of classes and  
tools build using the Ruby language. Ruby like any general purpose  
language can be used to build pretty much anything your mind can  
conceive. Rails simply imposes a set of conventions that help keep your  
code clean and organized in order to provide a less fragile application  
code base.

As far as the developer not being “connected to what is going on beneath  
the covers.” The best frameworks are the ones designed to allow a  
developer to concentrate on what makes their application unique. As for  
me, I care very little about how my data gets translated from objects  
and pushed into a database. I want that part to be as natural and simple  
as possible. Nearly all application need to do that in some fashion and  
is certainly not unique.

My users are going to care even less about how the data gets stored and  
retrieved. If I can have a framework give me @people =  
Person.find\_by\_last\_name(“Walker”) and give me some Person objects for  
anyone with the last name of “Walker” I really could care less about how  
that happens under the covers. I figure smarter people than me have  
figured out how to make that work well. And, this also applies to the  
rest of the framework such as routing and view templates, etc.

> Is RoR a framework, or a code generator?

Rails is definitely a framework. More specifically it is a “full-stack  
framework.” Meaning it contains everything from the database persistence  
and relational mapping to the model objects up to the presentation in  
the form of views.

The fact that it has some build-in code generators is just one very  
small, but important, aspect of the framework.
