Tim Bray has an interesting post on PHP, which actually gets interesting in the updates (which he appends to from email because he doesn't have comments, pity). When SAP did the Zend investment a lot of time was spent on the technical due diligence. The slap on PHP has always been that it's a scripting language trying to be a "grown up" development language... you often hear this from older developers or, for lack of a better term, technology snobs.
Using Python as a contrast there are some distinct disadvantages that PHP has, like:
- Python can be run outside of a web server as a separate process, PHP can't
- indententation makes for easy-to-read code, and if you have ever looked at PHP code you know what I mean
- PHP has a much larger core than Python
- method chaining and multiple inheritance in Python, don't have that in PHP
- lots of data types
- differentiation between array types (lists and dictionaries) in Python
- references are difficult in PHP
- namespaces and modules in Python
In the end, the strength of PHP for the investment decision came down to the fact that there were so many developers using it on so many websites. Community, it's increasingly coming down to the community and not the technology.
I'm not a PHP fan, but re. owned-process PHP:
http://us3.php.net/features.commandline
Posted by: Jeremy Dunck | Feb 20, 2006 at 08:45 PM
I used to listen with interest to these discussion because people had some informed things to say. But how have so many people become so clueless about other languages and development styles. And I love and use Python.
- PHP is not intended to run outside of a web server.
- Only Python freaks would mention indententation. All the PHP code (and every other language) I see is indented for readablity.
- PHP has a much larger core because it is meant to run as a Apache module, not an executable. The size of he core can be changed by recompiling PHP.
- method chaining and multiple inheritance aren't in many major languages. They are arguable advantages.
- There are two ways to look at "lots of data types" and "differentiation between array types." Good from one POV, bad from another POV.
- Why are references difficult in PHP?
- namespaces and modules are possibly features necessary for traditional applications, but hardly web scripts where only a fraction of the application is run at a time.
Understand multiple software development perspectives before trying to create absolute advantages/disadvantages list again.
Posted by: Christopher Thompson | Feb 20, 2006 at 11:37 PM
Jeff,
I understand your position from the point of view the size of the development community. However, you mention "older developers" and "technology snobs". I don't know what you mean by that.
When I look around at the developers I know, I don't know *any* great developers that have PHP as their "favourite" language. Conversely, I know great developers that favour Java, Perl and Python. And, more to the point, the developers I know that really like PHP are all pretty low-quality. It's not that great developers won't use PHP, it's just that they're unlikely to choose it for anything really important: unless they want to deploy their app to low-cost "shared host" web-sites; or they need to hack something together really quickly.
Now, all this may or may not matter. That is, the quality of the community may be irrelevant, and size may be all that matters. It will be interesting to see.
I guess we'll all find out when we get some visibility on how Zend is doing (at their next financing or when it gets trade-saled).
Posted by: Simon Brocklehurst | Feb 21, 2006 at 01:52 AM
Gentlemen,
You have each made my point for me. "Older developers" should have read "experienced" and not older, people like Bray who are pretty comfortable in any language. Technology snobs are those that look only at the supposed elegance of a tool without considering what people are actually doing with it and why it may or may not be a good fit.
Simon, I'd wager that there are some very experienced and very good developers working on the SugarCRM project and it's written entirely in PHP.
I didn't intend to start a pissing contest between PHP and Python junkies, the real point of my post was to highlight the fact that in our Zend investment decision we put less weight on the actual technology than we would have in years past because the community momentum is so significant, among other attributes.
Posted by: jeff | Feb 21, 2006 at 07:22 AM
Jeff,
I understand your investment rationale being based on the size of the community. There's no doubt that PHP has volume.
The open question (to those of us not in the know about Zend's revenue growth since 2003) is how this successfully this volume has been monetised.
A good comparator might be mySQL which grew its revenues from around $6M in 2002 to around $34M in 2005. I haven't seen any figures for Zend.
Posted by: Simon Brocklehurst | Feb 21, 2006 at 06:08 PM