Some advice to choose framework for a web application

Hi,

This question may asked so many times. I google about it and got lots of
discuss generally. After reading all of them, I go to
a conclusion is choose the framework which your understand to it is the
most. But we are willing to lean new language or framrwork to make our
app
better.
So we need some advices to determine which framework we should go with.
So
I’m posting here, hope
someone can give some advice from real experience when working with ROR
and
some PHP Framework.

We are developing a web application (it somehows likes a file management
sytem with multi users, drag and drop user interface,…). Our
application
is really a back-end for a system which runs on embedded device. We
are in progress to determine a “good” framework for our need.

Our purposes:

  1. Build a business web application.
  2. Easy to maintain, update.
  3. Easy to scalable.
  4. Easy to separate test& live environment.
  5. Great performance. (We have like 1000 devices is getting data via
    our)
  6. Easy to deployment.
  7. It already has a many components/modules for general purpose such as:
    ACL, Authentication, Uploading, Picture processing,…
  8. Have a great community behind the framework to support for it.
  9. Unit testing.

One thing I notice, code in Ror is very short. To do the same purpose,
we
can just use some line of code in ROR compare
to PHP. This is better for us. Also we want to use AGILE method in our
project. The reason is our product keeps
changing to meet to the need of customer. So I think AGILE method is
better
than for us than WATERFALL method.

I was a PHP Developer before switching to ROR, and here are some reasons
to use RoR.

  1. Build a business web application.
    Of course :slight_smile: Almost all frameworks can do this nowadays, including RoR
  2. Easy to maintain, update.
    Code is highly readable, and Ruby’s core priciples include Developer
    Happiness :slight_smile:
  3. Easy to scalable.
    Whatever framework it is, scaling is possible when done correctly. In
    RoR we use gems like EventMachine
  4. Easy to separate test& live environment.
    You get a Development, Test and Production environment when you start a
    new project. Not sure if you can add more, but these 3 are enough for
    99% of the cases.
  5. Great performance. (We have like 1000 devices is getting data via our)
    Oooh yeah :slight_smile: Ruby is not the fastest language as it’s interpreted, but
    it’s still extremely fast for most of our intents and purposes.
  6. Easy to deployment.
    With the Capistrano gem, we usually do

$ cap deploy

…and done!

  1. It already has a many components/modules for general purpose such as: ACL,
    Authentication, Uploading, Picture processing,…
    Yes to all, you have CanCan/Cantango, devise,
    RMagick/MiniMagick/ImageScience
  2. Have a great community behind the framework to support for it.
    Agreed. This is one marked difference I found over PHP frameworks. RoR’s
    community is excellent, considering its the community that makes the
    framework :slight_smile:
  3. Unit testing.

Several excellent gems available, and test driven development is
actively encouraged in Rails. A popular and great combination is
RSpec/Shoulda

Dheeraj K.