Like most innovations, PHP was born out of necessity. In 1994, programmer Rasmus Lerdorf created a new Web language to maintain his personal homepage. In 1997 Andi Gutmans and Zeev Suraski, working on a university project, joined Lerdorf in his PHP efforts and rewrote PHP to greatly enhance its openness and extendability.
From those humble beginnings, PHP took on a life of its own, becoming the de facto standard when it comes to developing Web applications. From the beginning, PHP stood out for a number of reasons, namely: its high interoperability, extensibility, intuitive design, ease of use and amazing speed. (see Figure 1.) For these reasons, a vibrant community developed around PHP. Ultimately in 2004, we decided PHP was the only choice when developing SugarCRM.
One of the simple facts about building Web applications today is that they must talk to other systems. And PHP is hands down the most interoperable language out there. PHP’s design allows it to easily interoperate with various Web services, XML and older legacy systems.
Of course, with its birth as an open source project PHP operates with lightning speed on Linux systems, such as Novell’s SUSE Linux. Thanks to work from the community, Microsoft and from PHP specialists, such as Zend, applications built on PHP run perfectly in Microsoft Windows environments as well.
In addition to Microsoft, both IBM and Oracle have endorsed PHP in the past several years. I have used many languages in my time and cross platform support was always a major issue. PHP is a language with which you write code once and it will basically run anywhere. And to my knowledge, SugarCRM’s products—Sugar Open Source, Professional and Enterprise editions—are now the leading CRM applications on OS X. People are successfully running Sugar on Windows, Linux, Unix, i5OS and OS X.
PHP also works great with Ajax technologies to create even faster user experiences. Take the SugarCRM UI for example. With liberal use of Ajax on top of PHP, users can perform many tasks without having to refresh their browser, which increases productivity as well as creating a more pleasing interaction with the application.
Many of the best parts of PHP are built as modules. This modular architecture at the language level provides a way to implement custom code in PHP. Modules are used for e-mail connectivity, accelerators, caches, bridges, cluster managers, session management, SSL, output compression and JSON encoding among many other functions.
The modular architecture of PHP also provides the ability to extend the language itself. You can write or leverage existing code that efficiently performs some task (such as translation or encoding) and rapidly make that code available in PHP. For example, SugarCRM was quickly translated into dozens of languages almost overnight thanks to the open source community taking advantage of PHP’s extensible nature.
For developers, PHP as a language is surprisingly easy to learn and start using. In fact, prior to creating SugarCRM, I had no major experience with PHP. My previous job was focused on Java, J2EE and C++. Within weeks I was fully familiar with PHP and comfortable programming with the language.
But what is perhaps most important about PHP when it comes to building Web applications is that it is simple to use. It requires much less coding to create great user experiences with PHP. Java, for example, tends to take up to five times more lines of code than PHP. Building Web portals, for example, is much easier with PHP than other languages. Web user interfaces in general are easier to build with PHP. SugarCRM has one of the most cutting-edge, easily customizable user experiences thanks to PHP.
There really is no argument that PHP is fast, both in terms of development and performance. With PHP, there is no need for lengthy manual recompiles and deployments, a simple refresh of the Web page shows the fruits of your labor. This encourages rapid prototyping and development. Because PHP applications are typically deployed as plain files, it is easy to work with the code, track and review changes, and update your code based on others’ contributions, which aids community development.
Performance-wise, PHP is one of the fastest languages I have ever worked with. It can compile and execute hundreds of thousands of lines of code in less than a second, even on a laptop. PHP is incredibly good at processing large amounts of text. So PHP applications understand requests and produce the appropriate responses quickly, resulting in faster server response times. PHP is basically stateless and handles requests using very little memory which boosts the speed and makes it easier to leverage a grid of computers to scale out.
A PHP installation can be made even faster using a PHP accelerator. There are commercial products, such as Zend Platform from Zend, that offer great support, clustering, Java Bridge and other features. Open source projects, such as APC (Alternative PHP Cache), eAccelerator and xCache, are widely available in the community.
The basic function of a PHP accelerator is to cache the precompiled PHP code. This produces a significant performance boost without code modifications. Additionally, PHP accelerators may provide data or output caches. Programs, such as Sugar, can easily leverage these caches to provide significant additional performance boosts.
SugarCRM has become one of the most popular open source application projects in history in just three years. This is thanks in part to standardizing on PHP, which has a growing and active open source community behind it. Almost 10,000 developers are working actively on modifying and/or extending the PHP language, with hundreds actively contributing back into the core project. And the numbers are growing. Estimates show that the number of PHP developers in the world has increased by 37 percent during the past two years. Today, literally tens of millions of Web properties and projects are based on PHP. (see Figure 2.)
That large community, coupled with the general acceptance of PHP among major software heavyweights, such as Oracle and IBM, makes PHP an obvious choice in terms of building Web applications. The support and backing of large companies and the PHP community is driving the PHP language to scale to any level. Many of the largest Web sites are powered by PHP including Yahoo!, Wikipedia, facebook, Viacom and Charles Schwab. And SugarCRM, with more than 1,200 customers, is another great testament to PHP’s strength as a development language.