PHP Development Ledger
Home Tutorials Reviews Weblog

Review: Open Source's PHP continues to thrive even in the AJAX era of Web 2.0
Feature: What is the Development Ledger for and against PHP ?
PHP is the Rodney Dangerfield of scripting languages. It gets minimal support and respect from the major software vendors: Microsoft has finally in 2007 promised to co-operate with Zend (the creative force behind PHP) in making development more flexible with SQL Server and Visual Studio; Oracle and IBM have been on the bandwagon for roughly two years (see the extensive Web support at both IBM and Oracle). Other major developers offer me-too or minimal support. For example Adobe/Macromedia in Dreamweaver have supported other technologies such as ASP, .NET C# or VB either before or more fully than PHP.

Yet in the world of Web development, PHP is the senior partner in LAMP-Linux, Apache, MySQL, PHP/Perl/Python. Of the 3P's, PHP has had dominating success in the marketplace as the chart shows:
php.netsource
60% of the World's servers are on LAMP. This is a percentage that Redmond covets so much it has taken to buying huge swaths of parked Web addresses from registrars like GoDaddy just so Microsoft can improves its IIS+ASP numbers. But as the NetCraft chart above shows PHP has seen a 6 year rise in usage to over 20 million domains in 2005. This parallels the rise of Apache's Web Server to near 70% market share in the same period. However, since mid 2005 PHP has plateaued (while Apache usage has dipped)as competing JSP/JSF, ASP.NET, Flash, and AJAX/JavaScript/DHTML technologies have blunted PHP's growth.

However, no one can take away the profound impact PHP as part of LAMP has had on computing. PHP and LAMP have been instrumental in making cross platform development, particularly on the server-side, a thriving reality. Major web developers like Adobe, BEA, IBM, Oracle, Sybase, Sun and others all have distinctively cross platform solutions with both client and server applications as well as development tools. Microsoft has had to at least respond with both the new Expression Suite and SilverLight being partially cross platform (some Mac and Linux support but the latter through a third party not directly from Microsoft) plus cross browser (again limited to Safari and Firefox).

The following PHP Development Ledger will help to give users a feeling for why PHP has been so successful and what are some of the factors that may be causing a plateauing in PHP development over the past two years. First, consider that PHP really followed CGI and Perl in the early Web automation surge that occurred in the late 1990's. PHP had two advantages over PERL, it developed the first easy forms+database interaction (notably with MySQL as a free database). As well a community of developers produced Open Source bulletin board and other CMS apps which in turn spawned a deluge of utilities and other competing and supporting apps. These included PHP template apps that were incorporated into gallery and portal apps in such a way that end-users were allowed to customize their applications in meaningful ways. The result has been PHP's huge growth.
The PHP Development Ledger
Positives
Negatives
1)Early success in Web development has given PHP a huge following in developers and the widest selection of free, low-cost tools and applications. Hotscripts shows 14367 PHP apps and tools compared to ASP: 3381, C/C++: 474, Java: 1763; Perl: 4378 (2nd highest) 1)PHP is saddled with being both tag language and Web-only solution. Its embedded HTML+<?PHP...?> scripting can be error prone and does not always move well to desktop, offline ops, or diverse display devices.
2)PHP is cross platform with Linux, MacOS, Unix and Windows versions of equal functional capability and fairly uniform performance 2)Came to Windows fairly early; but dead simple Windows installer and getting started to emerge only within last years with XAMPP or GPHPInstaller.
3)PHP is Open Source and has fostered a huge Open Source community of very effective applications. Check OpenSourceCMS.com for a huge sampler.  
4)PHP has responded well to change incorporating into the language in PHP5 a solid set of OO design capabilities. In addition with Pear and a huge set of 3rd party libraries, PHP has been a pioneer in bringing messaging, Flash + rich media, plus SOAP and Web Services among other development technologies early and often to the Web world. 4)PHP has the same problem that C/C++ does - its easy to get around having to use OO design and development methods and standards. This leads to a schizophrenic world of doing things the OO way or the pragmatic approach. Also, like Java and C/C++, the number and extent of PHP libraries and APIs is huge, partially overlapping and a challenge to manage.
5)PHP innovated early bringing rich media like Flash and video to Web development and allowing extensions to the HTML FORM model for data input. 5)Despite its GUI lead, PHP has been slow to deliver Visual Layout of forms in its IDEs and has moved little on delivering offline+online capable GUI apps. PHP is just breaking away from its browser dependency.
6)PHP has one of the strongest 3rd party development communities bringing a wide range of free or low cost development tools and libraries to the PHP market. 6)After 8 years and counting, PHP still lacks a full IDE with visual, drag-and-drop forms/display design and strong library management tools.
However as previously noted, PHP usage has leveled off. This is likely due to primary movements: Web 2.0 apps using AJAX and Flash to provide better response time and a broader set of GUI widgets and components. The second major trend is the blossoming of RIA-Rich Interface Applications like Flash, Flex, Air, JavaFx, and Silverlight that can not only deliver rich media as well as data from servers but also run in offline mode and still be productive for developers.

The Web 2.0 performance improvement using AJAX can be duplicated in PHP and there are several libraries that support PHP as the primary AJAX server. See for example PHPit's coverage or the list here at AJAX Patterns(there are some advantages in slipping out of the XMLHTTPRequest mode of server interaction) . The other benefit of Web 2.0 and AJAX is that infrequently used PHP libraries garnered new attention - see here for a Zend example and again hereat TechRepublic). The net result is more performant PHP code.

Flash and RIA pose two problems. First, the W3C XForms spec is stalled and yet the AJAX space is exploding with novel desktop equivalent widgets The latter GUI improvements allow Web users to have the same GUI interface ease of use that Mac and Windows desktop apps deliver. PHP must use AJAX code to produce equivalents in many cases. The second problem is that rich media, though supported in PHP with some powerful Flash and video routines; PHP still does not have the capability to script, compress and deliver like Flash does. This puts PHP at a comparative disadvantage on the Rich side of RIA. But perhaps the most serious problem is that a drag-and-drop Visual Layout IDE has yet to be delivered, even from Zend, to the marketplace. In contrast see Adobe is delivering Flex and Flash CS3, Java has WindowsBuilder Pro, JavaFX, and NetBeans Matisse among others, and so on.

Perhaps equally serious is a so-called strength of PHP - its huge libraries of application routines. True, there is PECL; but the amenities around PECL are sometimes quite primitive. The resulting problem is that 2 out of 3 times I either defer or bake my own when coding some new functionality. I would like a system like dBase used to have where I had a page that displayed all my dBase Menus, Forms, Reports, and Utility assess so I could copy and reuse with great ease. Also I would like a code searching system like the Koders Open Source Code search engine which allows me to quickly see and again copy/reuse PHP Open Source code assets. If Koders were built into PHP IDE like Google is in Web browsers that would be quite helpful.

PHP Improvements

PHP 6.0 is already in the worksand the major additions are Unicode support, continued OO refinements, engine speed ups including support for XML foreach syntax and resulting code speed up. The move to Unicode support is critical - PHP would eventually wane if that did not occur. But what developers should watch equally closely is how well and quickly PHP adopts to the demands of Web-based apps that can run both online and offline. Since 5.0 was delivered, the PHP Engine has been available as a scripting runtime similar to say VBScript or Matlab. So the basic technology is there. However, it will require a conceptual leap to get PHP out of Client-Server-must be-web-browser mode and into a runs anywhere there is a PHPEngine mode.

Clearly tools like Java which can change an Applet into a desktop app with comparative ease or Flash that is equally adept standalone on Linux, Mac and Windows desktops as it is in a Web browser - these tools currently have the lead in the drive towards RIIA-Rich Integrated Interface Applications that can not only run on any OS platform (a PHP can do too) but offline or online (PHP doable but stretching). Based on how PHP adjust to meet these requirements, one can then decide where, when and how much PHP development is appropriate to your development work.


Top of Page  Home  Tutorials  Developers Weblog  Graphics Reviews and Tips