CSC/ECE 517 Summer 2008/wiki2 1 tm
Rails vs. PHP
While Ruby is fast growing in popularity, there are still more PHP Web applications communicating with MySQL databases. Compare Rails with support for Web applications in PHP. Which are the advantages of each for the developer? For the finished application?
Introduction
This document seeks to enlighten programmers who are deciding between using PHP or Ruby on Rails for their next web application. We will take a look at the differences which matter most in determining just which language is right to your project. Please note that this document does not plan to blindly promote one language over another, it seeks to give you the information needed to decided which language is right for your next application. You may use this information each time you begin a new project and decide on a different language each time.
Fixed Metrics
Fixed metrics will likely affect all projects and programmers making a choice between Ruby on Rails or PHP.
Installation
Filler: Compare and contrast the various implementation differences between PHP and Rails; such as how to properly configure a rails server vs php server. Quickly cover the various hosting companies available that support the two languages.
http://en.wikipedia.org/wiki/LAMP_(software_bundle)
Being a relatively new framework, Rails deployment can be tricky. Deploying Rails applications to production is constantly changing and improving, but the installation is nowhere near as simple as PHP. For instance, the Ruby on Rails configuration is far more varied, with no dominant configuration having yet emerged. Rails will run under Apache, lighttpd, or nginx by proxying to Mongrel.
Learning Curve
Filler: Compare and contrast the barriers to entry into either language including object oriented design in PHP 5 and the MVC pattern in Ruby. Also covered textbooks, classes, and online resources available between the two languages. What languages you already know often affects what language is best for your new project, especially if deadlines are looming.
Applications Available
Fillter: Compare and contrast the availability of applications which have already been programmed and are currently available for both languages. Is what you are developing already available as open source software?
Variable Metrics
Variable metrics must be considered each time a project is taken on. These will likely change between each of your projects. It would be a good idea to evaluate them each time you must choose to use PHP or Ruby on Rails.
Scalability
Filler text goes here
http://www.scribd.com/doc/49575/Scaling-Rails-Presentation http://www.techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/ http://www.buildingwebapps.com/articles/13-can-rails-scale-absolutely
Development Speed
Filler text goes here
http://www.radwin.org/michael/blog/2005/10/php_at_yahoo_presentation_.html
Development Tools
Filler text goes here
Maintainability
Filler text goes here
Other Factors
Development Model
Ruby on Rails is a full stack framework, and includes components such as ActiveRecord , an object-relational mapper, to interface with databases. In general, Rails places a large emphasis on coding standards and convention when designing Rails applications. PHP, on the other hand, provides a large set of core libraries, with many third party add-ons for additional functionality. For example, databases in PHP may be connected to with low-level API database-specific calls, or through higher level APIs such as Pear::DB, ADOdb, and even MDB2.
Similarly, templates for views in Rails are specified in an MVC design pattern. In PHP, programmers can opt not to use templating at all, instead embedding their business logic directly within their view. Alternatively, they can use a variety of templating frameworks such as Smarty, or PHPLIB, just to name a few. Indeed, some would argue that PHP itself is a templating language, and requires no additional templating engine on top of it.
Both PHP and Ruby have their advantages. PHP provides a greater amount of flexibility in the architecture of your application, at the expense of dealing with multiple, sometimes fragmented frameworks. The Rails' strict adherence to convention allows for more uniform development across applications within an organization, but applications with unique requirements that do not fit cleanly into the Rails MVC framework may require additional resources to code around the framework's limitations.
Support and Documentation
Zend offers extensive support through books, mailing lists and newsgroups. Rails help is not as centralized, though the Ruby on Rails Forum and the newsgroup comp.lang.ruby can provide assistance. A large part of the development in Ruby on Rails is sponsored by 37 Signals.
With respect to documentation, PHP developers rely on the searchable PHP Manual. The Rails Documentation is also comprehensive but has fewer code examples, and lacks the ability for users to provide their own comments as additions to the documentation.