Scott asked this question last night during the break between our
sessions and I didn't have enough time to go into it with him then. I
have given it some more thought and think it would be better to share my
answer with y'all.

As he teaches a class in web site development, would learning Ruby on
Rails be a logical next step for his students? Or would the more
traditional approaches (PHP, Perl, Python, ASP) be better? I am assuming
the students are proficient in HTML, Javascript and some CSS by they
time the graduate from under Scott's tutelage. Having been paid for
developing web sites with all 4 of these mentioned technologies (save
Python), I have to say I am suitably impressed with Ruby on Rails.
(RoR)   Keeping it brief, here is why, IMO.

First off, Ruby really embodies the KISS principle, just like the
Firefox developers do. If FF is the best user-friendly web browser, then
Ruby is quite possibly the best developer-friendly language. As I hope
you saw last night, it make it easy to express common ideas very
succinctly and doesn't let a whole lot of baggage get in the way. If I
want to do something 5 times, for example I can just write:

5.times { do_something }

Second, RoR takes this principle and extends it into the realm of
creating web application frameworks. I know some developers are leery of
Yet Another Web Framework, but they can be done well and RoR certainly
qualifies as one of the easiest to learn and quickest to develop with in
my experience. In the first place it is a full stack application. All
the pieces you normally have to install from separate modules with the
other languages, come pre-installed with RoR. Next, RoR employs modern
principals to site development and architecture. For instance, it is
driven around the Model-View-Controller (MVC) idea of separation of
concerns (don't pollute your display logic with business logic and
vice-versa.) It also uses a superb Object-Relational modeling library
(that can be used outside of Rails frameworks. This one is so nice that
I hardly ever actually write any code to talk to the DB. And finally,
the default is to setup a complete testing environment for you out of
the box. Nice.

Although all these bits and pieces exist in other languages/frameworks,
RoR uses the most modern of them and nicely ties them together for you.
One thing that struck me was, whenever I had to guess how something
might be named before looking it up in the docs, it turned out that
Rails had the same idea I did. I no longer had to worry about pathnames,
configurations or environment settings. It just works.

So, even though there are many ways to skin the cat, RoR is certainly
easy to get started in and teaches very good design principles along the
way which would translate to other technologies as the
student/programmer progresses.

In fairness, I should mention there are a couple of downsides. The
performance of Ruby at present is not one of its strong suits. It lacks
a proper VM (all code is interpreted.) This might have an effect on
scalability of Rails web sites. Although, Rails deals very well with
this issue by caching things for you in an intelligent way. Also, it has
been my experience that improperly architected and tuned DB's are the
usual bottlenecks. Finally, the Ruby and Rails documentation is is not
the best I've seen. It is kinda spread out around different places. But
the two books by Dave Thomas are more than adequate to get you started.
I just wish there was a comprehensive printed total reference guide
(With examples like Scott's upcoming Linux phrase book.)

Ed


-- 
Ed Howland
WDT Solutions, LLC.
[EMAIL PROTECTED]
(314) 962-0766

 
_______________________________________________
CWE-LUG mailing list
[email protected]
http://www.cwelug.org/
http://www.cwelug.org/archives/
http://www.cwelug.org/mailinglist/

Reply via email to