Conflict PHP

Why is PHP become more like Java, when the PHP developer community seems to want anything but that to happen? What is Zend thinking?

WARNING: OPINION!

This article is the opinion of Ian Felton, who writes on a contract basis for the Developer Shed Network. This article also contains controversial thoughts and beliefs. If you are not prepared or willing to deal with thought provoking concepts, turn away now before its too late!

PHP5 has been unleashed to the developer community, boasting of an improved object model on the path of becoming “fully integrated with Java.”

This comes with the recent partnering of PHP’s driving company, Zend, with Sun to create proprietary PHP software to work with Sun’s Web server. The re-writing of the object model is great, especially for Zend’s business plan and possibly for many Java developers. However, what does it all mean for the PHP community at large and their development needs?

Data from a Zend survey completed in June 2003 (when PHP5 was still in major development) showed that the characteristics of the PHP community didn’t necessarily match up with what was developed in PHP5. For example, with the ability to list three primary programming languages, only 18% of respondents named Java. It was named a primary programming language, on average, 18 times out of 300 possible chances. These results were from a pool of over 10,000 respondents. If such a small number of PHP users were involved with Java, what was the motivation to mimic Java’s object model and move toward making PHP coupled to Java?

In the Zend survey, 93% of respondents listed PHP as a primary language and 69% listed HTML. Both of these technologies were listed at least two to three times more often than any other technology. This makes sense because the very purpose of PHP is hypertext preprocessing, so of course the primary technologies used by PHP developers would be PHP, HTML, and JavaScript, technologies that are literally hypertext or deal directly with processing hypertext. With so few people involved with PHP having any involvement with Java, why has PHP adopted a replica of Java’s object model with the enthusiastic declaration that “full integration with Java will be closer than ever before”? Some people will say that the direction of PHP needs to incorporate a full-fledged object model in order to be a real language. However, is this anything more than a software mid-life crisis?

{mospagebreak title=What the developers like about PHP}

In the Zend survey, the company asked what PHP users liked most about the language. The overwhelming reason given was that PHP is “easy to develop with.” In fact, 89% of respondents said that PHP’s ease of use was the primary reason for using it. They didn’t say they used it because they could remote control their GPS satellite. Almost every PHP user said they love PHP because it was easy to use. When the people at Zend had all this information in front of them while developing PHP5 why would they put so much effort into making PHP a complex, object-modeled language when 9 out of 10 people were primarily using PHP because it was easy to develop with?

It’s no coincidence that a few months before the release of PHP5, Zend released a plug-in for Sun’s Web server that retailed for almost $800. At the same time the hype coming from Zend about the Zend Engine II was that full integration with Java would be closer than ever before. If tightly coupling PHP and Java wasn’t of major importance for PHP users, (only 9% of PHP users claimed to be running Solaris) who was this important for?

On the PHP website, it clearly states, “The future of PHP is mainly driven by its core, the Zend Engine. PHP 5 will include the new Zend Engine 2.0.” This statement doesn’t get anymore black and white. Whatever direction the Zend Engine goes, PHP is going. The call of the PHP community was that they liked PHP simple. As a matter of fact, 85% of PHP users were running Windows as their desktop operating system. The move to make the Zend engine more complex and integrated with Java appears to be the result of Zend’s business maneuverings and not so much as a result of creating what the PHP community at large held valuable.

{mospagebreak title=Does this make good business sense?}

Is there anything wrong with Zend guiding PHP in order for their venture capital-backed company to profit as opposed to creating a product that is tailored toward their community of users and supporters? It’s not illegal to exploit volunteers. It may not even be unethical or even immoral, but is it even good business for the owners of Zend to move away from the simplicity PHP users are fond of?

Zend has maneuvered PHP so that other companies who are in the enterprise software business consider it a legitimate language: Sun, Borland, Macromedia, etc. This is great for Zend so they can sell their accelerators and encryption packages, but again, this is moving PHP away from its user-base and toward Frankensteining PHP into whatever it needs to be that year in order for Zend to turn a profit. This may work for a few years, but in the long run, a successful software company needs its own identity.

PHP is a hypertext preprocessor. A hypertext preprocessor doesn’t require an object model as complex as Java, especially when hardly any members of the community use Java and the vast majority use the product because it’s simple. Instead of focusing on integrating with Java and rewriting the object-model, other actions could have been taken that would have strengthened PHP’s character instead of turning it into somewhat of a “wannabe.”

First, the object model effort could have stopped for now at passing objects by reference. That would have been a fine improvement in the object model realm. If a complete re-haul of the object model was going to take place, more time should have been taken to develop a simple, innovative object model that fits with the branding of PHP as an easy language to develop with. Instead of rushing to get PHP tight with enterprise applications in a short amount of time, PHP could have introduced an innovative object model that is much simpler and more in line with PHP’s essence.

All of the work spent making PHP a Java object model clone could have been put into creating consistent naming conventions throughout the package and creating a more consistent syntax for the entire package. This would have given the community what it wanted: simplification, not more complexity. Or what about devoting all that energy to creating complete and simple Unicode support instead of having to go through all the hoops that are necessary still with the introduction of PHP5 to maintain a multilingual website?

Surely as a hypertext preprocessor, PHP needs robust Unicode support far more than it needs a complex object model that already exists in other packages more suited for those tasks. However, it seems that PHP isn’t happy with what it is, and rather than building upon what has given PHP so much character, it’s trying to be something that it’s not or at least something contradictory to the qualities that the PHP community has clearly stated as their reason for implementing the package.

{mospagebreak title=What would Linus do?} 

With the introduction of PHP5, the question emerges, What would Linus do?

“I want to continue to try to avoid making money directly off Linux – that keeps me focused on purely technical issues with the Linux kernel,” says Linus Torvalds(http://www.firstmonday.dk/issues/issue3_3/torvalds/).

It’s clear that Linus sees a conflict of interest between being the guiding force of an open source community project and directly profiting from its implementation. He sees that if he owned a company that profited directly from implementing a proprietary Linux OS, he would make decisions that would help his company profit, not necessarily improve the Linux kernel for the community effort. 

PHP5 is an example of what happens when a company who guides the development of an open source software project has their entire business model wrapped up in its success. Decisions aren’t made entirely for the community, but instead are more self-motivated. Then PR statements are issued and press releases are sent to bend the minds of the community to accept the chosen direction of the few, not the many.

These days, the people at Zend are eating fine food and driving luxurious cars. Congratulations on this. However, they have lost touch with their own creation. Instead of a business plan that involves sacrificing community in exchange for lucrative deals with corporations, consider an alternative business plan that will make more money, increase the popularity of PHP and give PHP distinction throughout the IT world. The key is to amplify the qualities that people have said makes PHP their choice for development.

{mospagebreak title=Amplify simplicity} 

That means amplify simplicity, not the opposite. Include the code that improves the performance of PHP into the public PHP kernel. If every implementation of PHP is the best it can be, PHP will be more competitive with other scripting languages so that it can remain the preeminent hypertext preprocessor. People should be saying, “PHP is beyond a shadow of a doubt, the simplest, most innovative forward thinking scripting language” instead of saying, “Did I miss something, or is PHP drifting into some kind of Twilight Zone where it’s neither great for quick development nor for large scale development?” as someone recently stated on a popular PHP message board.

On that same vein, instead of being so eager to make PHP tightly coupled to Java, ease off and concentrate on more hypertext preprocessing needs such as better security for protecting against SQL injections and XSS attacks, and better Unicode support. Stay focused on what the average PHP developer is doing. Provide every developer with the means of encrypting his or her PHP code. Doing this will encourage commercial PHP development.

Instead of selling 6000 licenses of your proprietary code to enterprise businesses and forking the direction of PHP away from the community, sell production licenses to every commercial website using PHP for a low fee. Zend has worked to influence MySQL to adopt a dual-licensing approach that appears to be working. Why can’t PHP adopt a similar license? If Zend wants to target enterprise level companies to generate company profit, instead of creating proprietary software that could be included in the kernel, why not focus Zend on creating PHP enterprise Web applications that demonstrate the power and flexibility of PHP?

While surely this is the plan already, the approach that is being taken could alienate the PHP community. Don’t withhold code and guide the direction of PHP away from the community that helps create Zend’s success. Then there will be no conflict of interest and then PHP can see its character develop as the years go by, remaining true to itself and to those who made it successful.

(This article originally appeared in the September 2004 issue of Plug-in).

[gp-comments width="770" linklove="off" ]

antalya escort bayan antalya escort bayan Antalya escort diyarbakir escort