CSC/ECE 517 Summer 2008/wiki2 1 tm: Difference between revisions
Line 53: | Line 53: | ||
* Rails for PHP Developers | * Rails for PHP Developers | ||
* [http://www.refreshinglyblue.com/2007/8/20/php-vs-ruby-practical-language-differences/ PHP vs. Ruby] | * [http://www.refreshinglyblue.com/2007/8/20/php-vs-ruby-practical-language-differences/ PHP vs. Ruby: Practical Language Differences] | ||
[[CSC/ECE 517 Summer 2008/wiki2 Assignment|Back to the assignment page]] | [[CSC/ECE 517 Summer 2008/wiki2 Assignment|Back to the assignment page]] |
Revision as of 02:06, 25 June 2008
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.
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
Development Speed
Filler text goes here
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
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.
External Links
- Rails for PHP Developers
- PHP vs. Ruby: Practical Language Differences