Today Robert and Sebastian announced that TYPO3 5.0 will work on top of a JSR-170 compliant content repository, which, of course, has to be implemented in PHP first [sic!]. What does this mean? Clearly a landmark in TYPO3 history, as we are now officially embracing the J2EE specificationism that is elsewhere rightfully ignored. Instead of becoming more agile, 5.0 might be even more of a 500lbs gorilla than ever before.
This does hardly come as a surprise: If you’ve witnessed the discussions at the T3DD, there has been a fairly large Java/Enterprise crowd who constantly argued a) for making anything exchangable (components!), b) that content must be stored in RDBMS, XML, flat files and preferably punch cards (just in case), c) that we must support standards (lots of them) and d) TYPO3 must be designed for any purpose. In short: 5.0 should be a kitchen sink that might also be used as a CMS.
So what does the 300-page spec of JSR-170 tell us:
- All data is stored in a tree, with nodes and properties (oh, really?!)
- You can have any persistence backend (see below)
- You can retrieve data via XPATH or (optionally) SQL-like queries
I’m not going to rant about the fun of mixing JAVA and PHP, which is required until we have a PHP implementation, or the man-months that need to be spent on the core data implementation (we’re not even talking about the actual content schema that is needed for TYPO3 as a CMS).
Ignoring the API for a moment, let’s have a look at the JackRabbit implementations for the persistence layer (i.e. our database):
Three out of four mature persistance managers use binary serialization for storage, which is great for transparency and enables us to use 0 (zero) of the industry-tested enterprise tools, like RDBMS or file systems. The only other semi-mature option is XML-based storage, which is (surprise!) slow and even less reliable.
Please notice that those are all implemented by JAVA people who already have experience with JSR-170. In the TYPO3 community, as represented by the people at T3DD, even a simple ORM solution seemed to be quite a new idea to a lot of them.
I can only hope that the 5.0 project will not get completely off the trail by re-implementing, among others, ZOPE and Websphere in PHP while TYPO3 is still not less and not more than a CMS framework.
[The announcement was made on typo3.projects.typo3-5_0.general which is only available on the TYPO3 usenet (news://news.netfielders.de)]