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

  1. Easy to maintain, update.

Code is highly readable, and Ruby’s core priciples include Developer Happiness :slight_smile:

  1. Easy to scalable.

Whatever framework it is, scaling is possible when done correctly. In RoR we use gems like EventMachine

  1. 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.

  1. 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.

  1. 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

  1. 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:

  1. Unit testing.

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

Dheeraj Kumar