A Jakarta for PHP

Yes, Sebastian is right, it would be great to have something like Apache Maven. It was really impressive to see how useful it is for rapid prototyping in Java at a related OSCOM session some weeks ago.

But I would not say “let’s clone Maven and port it to PHP 5” – that would not take into account PEAR, especially it’s installer, which is like the little sister of Maven, seen from a conceptual perspective. Just like the PEAR installer’s online repository, the maven CLI allows to donwload Java packages from an ibiblio package repository. The definitive plus of Maven is that it is not library-centric, but application-focused: It also creates a default application directory structure and performs pre- and post-installation processes based on a plugin interface.

This is something which is missing in the PEAR installer, I would even go so far that something like the Jakarta project in total is mssing for PHP. Maybe it is now a good point to start something like this as an official PHP community effort, given the recent discussons on Enterprise PHP.

One more point about the Maven/PEAR issue: The ZZ/OSS Installer tries to overcome the deficiencies of the PEAR Installer when it comes to applications. Unfortunately, the interest has yet been low and the main problem I see is that PHP developers don’t want to drop the benefits of a scripting language (edit the script -> execute it in the browser -> fix bugs) in favour of a more flexible application design which has a source2built tree installation process. In fact, it seems like a trade-off: either you have a rather monolithic application that allows for quick fixes or your application is modeled with packages that need to be edited in the source and installed to the built tree (as PEAR does). Due to these problems, simply porting Maven would not help PHP application developers – it would need some more thought and education on the source/built tree issue.

Battle of the Books: We Won!

Contrary to other believes, Harry and me have certainly won the Battle of the Books. It was clear after some serious analyzation over a couple of swiss beer, that our book PHP für Fortgeschrittene is so much better compared to PHP de Luxe. Christian and Hannes had some good marketing strategy, but in the end, quality always wins 😉

The location and event was really cool – thanks to Christian, Hannes and etoy for making this possible!

"PHP 5 Enterprise Edition?" – Slides Online

Just put up the slides of my talk PHP 5 Enterprise Edition? at OSCOM 4. The session was well attended, equally by PHP and Java developers. The discussion after my talk suggests that there’s a growing interest on both sides: The PHP devs want to learn more about Java approaches to the enterprise market, like J2EE. On the other side, Java-devs are curious about this rapid development scripting language called PHP. Seems like OSCOM’s conference topic “cross-pollination” just works out fine.

My basic impressions from the discussion are the following:
– The PHP and Java world still reside on two different planets, there’s yet only little, but growing contact between both dev communities.
– PHP and Java form two different paradigms of problem solving, mainly comming down to “getting things done” (PHP) and “doing things right” (Java).

I will write an article on this topic for the forthcoming issue of the International PHP Magazine, trying to compose a kind of PHP 5 Enterprise Edition software stack and comparing the pros and cons with J2EE.

Session at PHP Conference: Build and Installation Tools

With the advent of PHP 5 and the push to the enterprise market, professional build and installation environments for PHP applications become more and more important. My session at this year’s International PHP Conference discusses pros and cons of such a build system and compares existing solutions like PEAR Installer, Phing, ZZ/OSS Installer. Furthermore, I will take a look at the Java world and identify missing tools that would be nice to have in the PHP world.

4th Conference on Open Source CMS – Request for Papers

There are many PHP CMS out there and the next conference on Open Source CMS is ahead, organized by OSCOM with assistance from the Apache Software Foundation.

Take a look at the OSCOM.4 Request for Papers and feel free to propose a session. Of course, anyone is invited to attend at ETH (Swiss Federal Institute of Technology), Zurich, Switzerland, Wednesday, Sept 29 – Friday, October 1, 2004.

Let me know if you come: please ping- or trackback this entry, or write a comment. See you there!

How to Patch a Buggy Package with ZZ/OSS Installer

I had to do, what developers really don’t like: patching a third-party class package due to a bug for the forthcoming release of one of our software products.

The package I had to patch is PEAR::Archive_Tar because of a yet unfixed bug I have reported some time ago. The application depending on that package is the forthcoming release of ZZ/OSS Installer. I was able to use the installer itself to apply the patch due to the fact that the ZZ/OSS Installer is itself developed and installed with the ZZ/OSS Installer – I love russian doll architectures :).

Creating and applying the patch was as simple as:
1. Fix the bug in Tar.php.
2. Put the fixed Tar.php in a package called com.zzoss.pear.archive_tar.patch.
3. Make sure in the deps element of the package.xml that the patch package has a dependency on the PEAR::Archive_Tar package.
4. Add this package to the application.xml of the next ZZ/OSS Installer release.

What happens when installing the application with the ZZ/OSS Installer is that the Tar.php file from PEAR::Archive_Tar gets overwritten by the fixed Tar.php from com.zzoss.pear.archive_tar.patch, because of the dependency definition.

Harry Fuecks Comments ZZ/OSS Installer

Harry Fuecks took a look at ZZ/OSS Installer and his honest comments clearly describe the status of the application and its potential.

Yes, true, the latest release of the installer is a development release with known and still-to-be-found bugs 😉 We are collecting feedback from the community on new features and hidden bugs, that’s why we did this early release. Meanwhile, development goes on and we are fixing bugs and implementing new features for the next release 1.1.0dev2.

Although the application itself is not yet superstable, I believe it is good enough for experienced PHP devs to start deploying their applications with it. Developing and installing applications that entirely or partly consist of PEAR-like packages, is much easier with ZZ/OSS Installer compared to PEAR Installer, because there is e.g. automatic dependency resolving built in. This tutorial on deploying phpMyAdmin with ZZ/OSS Installer gives you a basic idea how to procede.

Should you encounter any problems, feel free to contact the ZZ/OSS Installer developers via the mailinglist, IRC, etc. as stated on the ZZ/OSS Installer project Website – we’ll do our best to help you. The nice thing is, that once you have a working ZZ/OSS Installer on your system, it is pretty easy to install the latest version with this installer from CVS sources.

What's the Problem With PHP5?

What? There’s already a problem with PHP5 although a stable release is not even out yet? Yes, there is – and I am not talking about technical problems, rather about business problems.

Don’t get me wrong: I love PHP and I am very excited about the new features of PHP5. With PHP5, no doubts, PHP is really ready for the enterprise – at least when it comes to PHP as a programming language.

But what about PHP5 in a business environment? I am sceptical on the business success of PHP5 in the enterprise market:

  • Java is already there,
  • there’s no global player providing professional services for PHP applications development,
  • there are too few really good PHP programmers,
  • where are those professional (Open Source) PHP tools, frameworks, and applications that minimize the risk of enterprise application development?

I will shed a light on these 4 questions and probably some more in forthcoming postings to my Weblog – and I will also tell you, why I still see a future with PHP5 in the enterprise market.

KISS or ASS?

Most programmers know about the KISS paradigm: Keep it simple, stupid. Meaning that you should favor simple solutions over complex ones. Have you ever heard of the ASS paradigm? I would translate it to “Avoid stupid simplicity”. Sometimes, programmers legitimate too simple constructs with the KISS paradigm – because maybe they don’t know better.

You can find ASS wherever you ask yourself if a piece of software is as modular and flexible as the producers promised it to be.

In fact, KISS and ASS are two sides of a coin. Software developers with little experience tend to do simple things overly complex because they love to demonstrate how intelligent they are. On the other hand they do not understand all the implications of what they are doing. They chose overly simple solutions because they lack the overall view, especially when it comes to interoperability.

In both cases, it’s a matter of experience, with experience comes abstraction and pattern-oriented programming – or call it “smart ASS” programming 🙂 “KISS or ASS” stands for a steady learning process of applied simplicity and thus a better understanding of programming itself.