Does PHP 5 Hurt PHP?

If you follow the PHP blogs, then you are likely to have read Matt “WordPress” Mullenweg’s anti-PHP 5 rant:

PHP 5 has been, from an adoption point of view, a complete flop. Most estimates place it in the single-digit percentages or at best the low teens, mostly gassed by marginal frameworks.

He makes some good points in the post. He also manages to make himself seem like a bit of a dick 🙂

The thing that I keep wondering is if we aren’t seeing a slowdown in general PHP adoption due to other technologies being able to get a leg up while PHP 5 was in development and the succeeding slow migration from PHP 4 to 5.

Now that I work for a company creating Java-based software, I see:

Finally, with PHP 5, it is possible to build OO libraries able to compete with Java libraries as far as quality is concerned – but, well, those Java libraries already have a long market track-record, i.e. have been in production use for a long time.

My impression is that PHP 5 slowed down the development of PHP applications able to compete with similar Java-based server-side products. The problem being that migration from PHP 4 to PHP 5 consumes quite some developer resources for complex PHP applications. Additionally, PHP 4 keeps developers busy with finding workarounds for their applications due to limited OO features.

Did PHP applications lose market share or at least not grow as fast as their Java (or C#, etc.) counterparts due to the slow adoption of PHP 5? Unfortunately, I did not find an informative basis to answer this question sufficiently and would appreciate any hints.

Defining Commodity Features of Open Source Software

Open Source software is often being referred to as commodity products. This is particularly true for OSS databases like MySQL or PostgreSQL. Developers of such systems can heavily make use of defined standards. In this case, it’s the various SQL standards. These standards define the general functionality set your product should have. They help you define the commodity features of your software.

The question is: where do you get your software requirements from if the OSS product you are developing cannot rely on any or only a few standards?

Let’s take a look at two other types of OSS products: Enterprise Content Management (ECM) and collaborative software. I used to work for an Open Source ECM vendor until recently and just started to work for a company offering Open Source collaborative software. Hence, I might be able to provide some useful information.

For ECM vendors, there exist a few standards in different areas of ECM. This is because ECM comprises a very broad set of functionality, e.g. content editing, workflow management, document management, accessibility, etc. Yet, these standards cover only a small fraction of what makes up a full-fledged ECM system. In fact, ECM is very much about customer-specific implementations and integration of legacy systems. It is a lot about experience, best practices.

Hence, a successful Open Source ECM project can define the set of commodity features by listening to its:

  • customers
  • partner companies
  • developers and users community

These groups have different impact in different OSS ECM projects.

For example, eZ Publish is equally influenced by all three of them. At Alfresco, there is massive know-how of customer needs, simply because they have John Newton on board, co-founder of the very successful proprietary Documentum ECM. It will be interesting to see how eZ Publish and Alfresco will compete in the future. This will largely depend on how well the eZ Publish developers react upon market needs and on how fast Alfresco can grow its Open Source community. It’s actually not black and white, because customers can be a part of your developers community.

Before I talk about the interesting aspects of commodity features in collaborative software, one more note about highly standardized products: Of course, the MySQL developers need to also think of market needs. They first implemented the very basic features which made their RDBMS useful for simple, yet common scenarios in Web development. Standards do not free you from deciding which ones to implement first, but they help you to save time collecting all the potential features.

Now about collaborative software: Most development here is based on best practices. The interesting point is: these best practices are mostly already available in the Web. To be more precise: in the Web 2.0. At Mindquarry, we implement collaborative software which includes a Wiki, task and document manager (conversation tools for email and instant messaging coming soon).

Where do we get our basic ideas from? Well, from Wikipedia, Jabber, Bugzilla, etc. Mindquarry’s commodity features are out there in the Web and have been tested by a lot of users for several years. With Mindquarry, the trick is not about simply imitating an already existing and proven software infrastructure. It is about connecting the various bits and pieces of social software into one coherent infrastructure which you can use e.g. in your Intranet.

The point is: You can see the difference between the Web 1.0 and the Web 2.0 also in how OSS vendors define the commodity features of their products. An RDBMS is largely a Web 1.0 tool. It has at least one foot in the old days, when companies fought about software standards. Social or collaborative software is Web 2.0, you can find and influence its standards in the Web by providing efficient and rich user experience.

Of course, Web 2.0 standards rely on Web 1.0 standards, but the Web 2.0 is more about best practices and de facto standards on the user level compared to logical definitions of standards on the developers level. Again, the reality is not black and white. Take a look at MySQL’s and PostgreSQL’s ANSI92 SQL-defying LIMIT clause. It’s a best practice approach and shows that OSS developers always listened to their developers community just like Web 2.0 developers today listen to their users.

New Job at Mindquarry

March 1st, I will start my new job at Mindquarry as VP Marketing.

Mindquarry’s Open Source product is enterprise social software, simply called “Mindquarry”. It supports spontaneous collaboration by including a Wiki, task tracker, file management, etc. The software is MPL licensed, version 1.0 will soon be available to the public. There’s an early access program available upon request.
The company was founded in 2006, it is located in Potsdam, Germany close to Berlin. The main investor is HP Ventures of SAP co-founder Hasso Plattner.

I’ll be in charge of strategic and operational marketing and community relations.

What I like most about this new job is:

  • I move from an Enterprise 1.0 Open Source company (eZ Systems and its eZ Publish ECM) to an Enterprise 2.0 Open Source company (Mindquarry).
  • Having 5 years of PHP programming experience, I am now looking forward towards working for a Java company. Although programming is not part of my job, I am very interested in digging deep into the code to really understand the application’s inner workings.

I actually have known one of Mindquarry’s co-founders for a few years via internet: Lars Trieloff. We only recently met in person. His expertise always impressed me.

I created a dedicated Mindquarry RSS feed for my future postings about Mindquarry, also served by the newly created Planet Mindquarry.

At this cross road of my professional life, I would like to especially thank the following persons who always supported me:

  • Zak Greant
  • Georg Richter
  • Aleksander Farstad

Thanks guys! And of course, thanks to my wife, my biggest supporter 🙂

Relevance-based Ranking of Search Results in eZ Publish

Thomas Nunninger did some research in better ranking of search results within eZ Publish. He implemented a nice test implementation with some fancy AJAX drag&drop. Feel free to try out the implementation. By doing so, you also help Thomas to get some more test cases for his diploma thesis.

Should you be interested in more information about his implementation, read his recently published article Creating a Search Engine.

Call for Papers: eZ Conference 2007

BÃ¥rd published a short note on his blog that the call for papers for the 5th annual eZ Conference is now open. Deadline for submissions is February 1st.

The conference is worth attending not only for eZ Publish or eZ Components users and geeks, it is also interesting if you’re interested in content and knowledge management or PHP/LAMP in general. Last year, I enjoyed talking to guests such as Martin White and Anne Jubert, Rasmus Lerdorf and David Axmark – and some more of the 350 attendees.