New to web app development -- ROR pros and cons

I am brand new to web application development, and I'm looking for a
good web framework to learn in order to build a new web application
(sort of a personal task/project management system). I've got some
experience with website building, HTML, CSS, and a little javascript.
I don't have any experience with server-side coding, but I do have
general programming experience (i.e., not web/internet related) as
well as some experience with relational databases and SQL.

Since I'm new to web development, I'm looking for a framework (and
language) that will be easy to set up, learn, and find support for.
Also, rather than creating everything from scratch, I'm hoping to rely
as much as possible on existing libraries, plug-ins, applications,
examples, etc. So, a framework that's compatible with as large a
universe as possible of existing solutions would be ideal. I'm also
planning to link to various web service API's (e.g., Google Calendar).

(Note, I'll be developing on a Windows 7 machine.)

I've been considering Ruby on Rails but also checking out some Python
frameworks (Django, web2py, and TurboGears) as well as ASP.NET
(WebForms and MVC). What are some of the pros and cons of going with
ROR vs. some of these other options (particularly interested in
hearing from people who have experience using the other options)?

web2py in particular seems very interesting because it sounds like it
incorporates many ideas from ROR but may be easier to set up, learn,
develop with, and deploy. Does anyone have any experience with both
ROR and web2py?

Finally, since I'm new to Rails, would it make sense to just start
with the new Rails 3.0? If so, how does that impact the above
comparisons?

Thanks a lot.

There is one video in google videos section on a conference on ROR and pjango.

Search Ruby on Rails conference in google videos. Both the creators of
the ROR and pjango are in the conference both explain what they are upto.

Welcome to the weird and wacky world of web application development.

Anthony wrote:

Since I'm new to web development, I'm looking for a framework (and
language) that will be easy to set up, learn, and find support for.
Also, rather than creating everything from scratch, I'm hoping to rely
as much as possible on existing libraries, plug-ins, applications,
examples, etc. So, a framework that's compatible with as large a
universe as possible of existing solutions would be ideal. I'm also
planning to link to various web service API's (e.g., Google Calendar).

I would be careful with the thought that the largest universe of
existing
solutions is the best. Almost by definition the framework with the
largest number of solutions is the one that's been around for a
long time. That's good in terms of stability, but not so good in terms
of innovation.

Quality of existing solutions trump quantity. Of course this also
stipulates the existence of said solution.

That being said RoR has a very rich set of gems and plugins to handle
just about anything you can imagine. Granted, it may not be as "large" a
collection as other frameworks that have been around longer.

(Note, I'll be developing on a Windows 7 machine.)

Sorry to hear that. It boggles my mind why developers torture themselves
in such ways. :slight_smile:

Get you a good UNIX based system. Something with a halfway sane command
line, whether that be Ubuntu, some other Linux flavor-of-the-week, or
Mac OS X. In the long run I think you'll benefit greatly when it comes
time to deploy your web application, regardless of what framework you
choose. ASP.NET being the obvious exception, but there's no hope for you
anyway if that's the option you choose. :wink:

I've been considering Ruby on Rails but also checking out some Python
frameworks (Django, web2py, and TurboGears) as well as ASP.NET
(WebForms and MVC). What are some of the pros and cons of going with
ROR vs. some of these other options (particularly interested in
hearing from people who have experience using the other options)?

I'd rather be building web applications with RoR than anything else I've
tried. I spend my days developing web applications with various Java
frameworks. I often wondered why web development was such misery, until
I discovered RoR. RoR reminded me that software development can be fun
and productive. It reminded my why I got into software development in
first place.

web2py in particular seems very interesting because it sounds like it
incorporates many ideas from ROR but may be easier to set up, learn,
develop with, and deploy. Does anyone have any experience with both
ROR and web2py?

Why use something that "incorporates many ideas from ROR" when you can
use the framework that inspired them?

Finally, since I'm new to Rails, would it make sense to just start
with the new Rails 3.0? If so, how does that impact the above
comparisons?

Not necessarily. Most of the "Getting Started" tutorial material is
going to be targeted at the current stable version of Rails. I would
recommend getting used the current release and then look into the
changes in Rails 3.0 once you have a decent grasp of the framework.
There's nothing that's going to change so drastically that you'll have
to relearn everything. One does not learn to fly airplanes by becoming a
test pilot for experimental aircraft.

Nice analogy. Good advice.

Best regards,
Bill

> (Note, I'll be developing on a Windows 7 machine.)

Sorry to hear that. It boggles my mind why developers torture themselves
in such ways. :slight_smile:

Get you a good UNIX based system. Something with a halfway sane command
line, whether that be Ubuntu, some other Linux flavor-of-the-week, or
Mac OS X. In the long run I think you'll benefit greatly when it comes
time to deploy your web application, regardless of what framework you
choose. ASP.NET being the obvious exception, but there's no hope for you
anyway if that's the option you choose. :wink:

Is the main benefit of developing on a Unix based system that it will
be easier to deploy, or are there other problems/limitations with
development in a Windows environment?

Anthony wrote:

anyway if that's the option you choose. :wink:

Is the main benefit of developing on a Unix based system that it will
be easier to deploy, or are there other problems/limitations with
development in a Windows environment?

Windows is frankly a pretty bad OS (and a completely inappropriate
server OS, which is a big strike against .NET unless you're using Mono).
I don't use Windows myself, but my understanding is that while a number
of people are successfully using it for Rails development, there are a
lot of common Ruby- and Rails-related tasks that work better on *nix. I
hope someone who does use Windows will provide more specifics.

Best,

Anthony wrote:

anyway if that's the option you choose. :wink:

Is the main benefit of developing on a Unix based system that it will
be easier to deploy, or are there other problems/limitations with
development in a Windows environment?

I hope you realize I was kidding... mostly. Although it is my opinion
that everything to do with software development is better on a *nix
based system. Especially when it comes to open source software tools
Like Ruby on Rails. Better tools, more secure, more open, more stable
and they don't assume that EVERYONE runs Windows.

Dear friends,

sorry for intruding but Robert makes a good point and I would like to
answer that.

> web2py in particular seems very interesting because it sounds like it
> incorporates many ideas from ROR but may be easier to set up, learn,
> develop with, and deploy. Does anyone have any experience with both
> ROR and web2py?

Why use something that "incorporates many ideas from ROR" when you can use the framework that inspired them?

Rails is an excellent framework. I am a Python programmer but I would
still pick Rails over most of the Python frameworks, both because of
its design and because of how professionally it is evolving. Whether
Anthony choose Rails, Django or web2py, I think it will be a huge
improvement over PHP.

Yet the comment below deserves a response because it is based on a
misconception. web2py does not attempt to copy Rails and it is not mix
and match of features that you can find on other frameworks.

Here are some of its unique features: web2py does not require
installation and has no configuration files; it has a one click button
that turns apps into bytecode compiled apps that can be distributed in
closed source; the web2py Database Abstraction Layer supports 10
different back-ends and it is the only DAL to support the Google App
Engine (that means the same exact code runs on GAE and Oracle); It
comes with a web based IDE that can be used for development,
debugging, testing, deployment, internationalization/translation and
maintenance (all in the browser); web2py helpers provide a server-side
representation of the DOM and than be used to build generate XML/HTML
programmatically without manipulating strings; web2py migrations do
not require writing migration files, are automatic based changes in
the models vs what is in the database; it has a different system for
generating forms from models; web2py promise backward compatibility to
the users and this was not broken since 2007 (even if lots of new
features have been added).

The two main features that web2py got from Rails (in striking contrast
with all of the other Python web frameworks) are: it gives precedence
to "convention over configuration" over "explicit is better than
implicit" (a Python motto, this pissed off a lot of python users);
full Python in templates (in your case full Ruby in templates), while
Django for example has its own template language.

Another comment was:

One does not learn to fly airplanes by becoming a
test pilot for experimental aircraft.

True. web2py is 4-5 years younger than Rails and it has smaller number
of users. Yet it is not an experimental product. It is 3 years old and
counts >50 contributors and >1800 registered users.
Most users use it for intranet applications which unfortunately you do
not see.

Anyway, Rails came first and it was a great experience to learn from
it. Thanks Rails.

Massimo

If you really really have to use Windows look into cygwin, and bitnamy
rubystack http://bitnami.org/stack/rubystack, also JetBrain's
http://www.jetbrains.com/ruby/ or SublimeText.

But if you can afford a Mac OS X laptop you will be on the same level
as 99% of ruby developers... hey, it's what Linux always wanted to be
(a usable desktop unix).

That being said, I've tried working ZendFramework and I'm always on
the lookout for what other frameworks and languages are doing, the
only competition to Ruby on Rails I would say, is coming from Scala
and Lift, but there's about 3 people using it right now (they are the
developers)... most other options seem to completely miss the boat at
what ruby is good at: sweet concise syntax and rails: a complete web-
framework that will teach you how to develop proper web applications.
Now, if you haven't done any web dev, (simple PHP sites?) then you
will be a bit overwhelmed and you might not have a reference point for
why Rails is a good framework in comparison to others...

My 2C

In the past I have used Rails on both windows and linux without
problems. Some posts here seem to imply that Rails runs better on
Linux. Are you saying there is a problem with Rails on Windows? Or are
you just suggesting Linux/Mac for the stability of the OS and the
availability of other open source development tools?

Massimo

There's nothing inherently wrong with Rails on Windows, but there is a
definite tendency of Windows installs to cause peculiar heisenbugs.
For instance, there was a glitch a while back in Bundler (I seem to
recall) where things went wrong if you were bundling in a directory
whose name contained a space.

As another example, there was (still is, I think) a nasty race
condition with the rake task that grabs the current Rails code from
installed gems and unpacks it into vendor/rails. Under certain hard-to-
reproduce combinations of virus scanners and environments the task
would fail - but could be tricked into succeeding by adding a 1 or 2
second delay between creating the directory and unpacking the gem.

Both of these point back to a single issue: there's not nearly as many
devs on Windows, so plugins and tools tend to get somewhat less
thorough testing there and it's harder to find support.

Add in the lack of a single standard compiler environment and
compatibility issues with other parts of the toolset (MySQL + some
Windows versions, for instance) and you get a whole bunch of headaches
that many developers simply don't want to have to deal with.

--Matt Jones