What am I reading now?

To get myself familiar with Web 2.0 technology, I have been reading several technical books in the few days. The books include:

  1. Zend Framework in Action (Cover image) by Rob Allen.
  2. Beginning Rails (Cover Image) by Jeffrey Allan
  3. FBML Essentials (Cover image) by Jesse Stay

All of these are good books. Based on reading as well as my first hand development experience (I wrote a little test application using PHP Zend Framework in conjunction with Facebook Connect), I feel that Ruby offers a much more rapid environment for writing web applications. Zend Framework still follows the traditional mindset and it lacks a set of RAD generation tools. On the other hand, Rails use “script/generate (model, view, and scaffold)”, which really streamlines the development process by automatically generating reusable skeleton code. This is very nice. Of course, I only started learning Ruby only three days. There are still lots of Ruby features as well as shortcoming, which I am not aware of. 

PHP lies in the traditional C/Javascript model. PHP claims to be object oriented. However, it is missing a crucial OO feature – there is no method overload. For example, when I wrote a model class that inherits from the Zend_Db_Table, it will not let me overload the constructor. You probably asks why I want to do that. Well, the model class maps to a table in the database. Sometimes, it is convenient to initialize the object with some parameter. But, PHP will not let me overload the constructor, causing me to write ManagerClass to get around that. In effect, causing ugly and unmanageable code. Furthermore, PHP does not let you specify what is the type of the return object from a method. In effect, the code completion (inside the Eclipse/Zend IDE) becomes unless. Although, there is a way to get around that, by initialize an object with a default object type. But, it is just not clean. 

PHP is a simple language, but it is wholly lacking in term of type-casting management. Maybe, it should be consider as a feature for simple website. But, when I want to develop a software framework using PHP, it fails pretty miserably.

Be Sociable, Share!