As tweeted yesterday, here is some further information about mainly 3 tweets of mine (@xperseguers). This is my personal opinion and although I am member of the TYPO3 Core team, some facts may be slightly twisted.
The three tweets were:
So now some further explanations...
Quite some years ago, in 2005-2006, a small group of developers came up with the idea to basically recode TYPO3 from scratch, taking into account new needs because back then our CMS was mainly used to publish some content to the Web and that was basically all.
The team that formed around Robert Lemke and Karsten Dambekalns thought about more advanced features and realized that the need for more advanced websites, namely going towards what we now name as web applications would be more and more needed. This is how "v5" was born. Why "v5"? Because TYPO3 version was 4.1 or 4.2 and as such the next "big" version would naturally be a 5.0 version. Since then, the community used to refer to v4 or v5 for the two development branches of TYPO3.
Their enthusiasm was so big that they thought they could come up with a solution roughly 1 year later.
In October 2008, the TYPO3 Core team met in Berlin to primarily discuss the roadmap for TYPO3. The point was to address some fears from agencies not really knowing when v5 would be released and if this new version would be compatible with v4. In fact, more and more clients hearing from a possible v5 at the corner, put the agencies into a difficult position of arguing that v4 was still the way to go even for new sites and that waiting a few months for the release of v5 would not make sense.
The outcome of this important meeting to clarify the future of both v4 and v5 was the so-called "Berlin Manifesto" [1]:
Over the years, it turned out that to be able to create v5, the team needed a rock-solid underlying framework. They brainstormed their specifications, evaluated loads of existing frameworks and finally decided to create their own as, at least back then, no existing framework was well-thought nor powerful enough to fit the bill. This is how FLOW3 started, as a clean base to build v5 on.
Now I want to do a first digression to point out that this is how Extbase and Fluid then emerged, after an initial attempt from Jochen Rau (who then became part of the TYPO3 Core team) to create a dedicated extension "bridge" allowing this framework to be used within v4 installs. It turned out not to be possible and Extbase and Fluid were created. We are in March 2009, in Laax during the well-known TYPO3 Snowboard Tour (T3BOARD). You can read more about that in [2].
The more the project evolved, the more the expectations raised for this v5. Perhaps you remember the exciting presentation "TYPO3 5.0 Experience Concept" [3] or the other one "TYPO3 5.0 - The taste of Phoenix" [4] for T3CON10 in Frankfurt, both presented by Jens Hoffmann? Although it is hard to remember, the codename "Phoenix" for v5 seems to be mentioned since then, in 2010.
In order to be able to turn all the beautiful mockups into HTML, CSS and JavaScript, the v5 team started to use ExtJS as the underlying JavaScript framework. And this lead the v4 to use it as well actively since the beginning of 2009 to be finally part of TYPO3 4.3.
The v5 team pushed the ExtJS to the limits and finally figured out that they were losing much time with ExtJS. During the T3CON11 in Frankfurt, Sebastian Kurfürst and Christian Müller, both active members of the v5 team, hold the presentation "TYPO3 Phoenix - The Current State" [5] explaining how they were able to greatly speed up the User Interface development by switching from ExtJS to SproutCore (currently known as "Ember").
You may have noticed that whereas the presentation in 2010 was "TYPO3 5.0 - ..." the one from 2011 is "TYPO3 Phoenix - ...".
In fact, despite the Berlin Manifesto, the technology and moreover the architectural choices made while creating FLOW3 slowly made us, TYPO3 Core team, aware that TYPO3 Phoenix became less and less a sensible successor for v4. One of the key point is that the internal structure for the records (pages and elements of contents) is stored in Content Repository and the structure of content would be so different from v4 that a smooth upgrade path from v4 to v5 would mean a lot of effort. And we still did not have an official first release of TYPO3 Phoenix which would possibly encourage agencies to actually write such upgrade scripts.
So, while it never was really official, it became clear that the 5th point of the Berlin
Manifesto would not be met.
So why is this version 5.0 so problematic for the development of TYPO3 v4? As said, we had a TYPO3 version 4.1, 4.2 then 4.3 and the version 5.0 still not was at the corner.
The idea behind the version numbering scheme is easy, a version is composed of three parts, the major, the minor and the revision number. The revision number is used for patch-level versions of TYPO3, namely bug and security fix releases. The minor number is used whenever we want to introduce new features. Since TYPO3 4.6, we switched to a 6-month release cycle.
Our policy which first was really applied with TYPO3 4.6 is to keep a backward compatibility whenever we want to renew the API. Whenever a method or a component turns out to be outdated, we mark it as deprecated and still make sure it keeps being usable for 2 more versions, that is until TYPO3 4.x+2 where it is removed. This allows extension developers and agencies — whenever some configuration options get deprecated just as with the Rich Text Editor — to get a log of deprecation method calls and upgrade their code to be in line with the
up-to-date API.
But the major number is there to allow us to introduce breaking changes and publicly show that TYPO3 is able to evolve and introduce big new features. Having the version "5.0" reserved for the successor of v4 is a big problem because:
So many people were waiting for this 5.0 that we even thought of making one of the last TYPO3 release a 5.0 just to make it clear that, in the end, yes! the upgrade path to TYPO3 5.0 was fulfilled. But we quickly forgot about it because it would not have been what people expected from the numerous presentations of v5. In fact, TYPO3 Phoenix has been somehow postponed again and again and had the effect of making the exceptation of what it would provide raise to a tremendous level.
The answer to this came thus naturally, just forget about TYPO3 5.0 as se but do not forget about TYPO3 Phoenix, I come to that later. If we forget about 5.0, just use the next major number available to finally give TYPO3 the version number it deserves!
TYPO3 4.7 will not become TYPO3 6.0, it is too late and we do not want to raise the version number just because we can. We want TYPO3 6.0 to provide some real major feature and FAL (File Abstraction Layer) really fits it. So we may expect TYPO3 4.7 to be the last version of the 4.x branch but we will see in the next few months how it goes.
As Phoenix is not the v5 we thought it would be, it simply will have to find an own name to be released as "Phoenix 1.0" later this year. "Phoenix 1.0" is a new CMS from the TYPO3 family but it is not a foreign new CMS either, it will share some of the key features of TYPO3 v4, for instance TypoScript. Of course, the TypoScript in "Phoenix 1.0" will be a reworked, enhanced version of what we know in v4 but just as we had parts of FLOW3 backported to v4 as Extbase (and Fluid being nearly identical in "Phoenix" and v4), we could expect parts of this new TypoScript to be backported to v4.
And this is were we may come back to the Berlin Manifesto and analyze the bullet points again:
1) TYPO3 v4 continues to be actively developed
This is true! As long as there is a need for it and "Phoenix" cannot be considered as a complete successor of TYPO3 v4 in terms of feature set, v4 will continue to be actively developed. And even then, v4 will for sure continue to be developed for a while.
2) v4 development will continue after the the release of v5
This is the case, just as I described it.
3) Future releases of v4 will see its features converge with those in TYPO3 v5
We see that since TYPO3 4.3 where features of "Phoenix" have partially been backported to v4. I heard of real-life projects that were initially created for Extbase and were then migrated to FLOW3 without real hassle. Having parts of the key features of "Phoenix" in v4 already made developers start to think the "Phoenix" way when coding their extensions.
Add to this possible partial backport of the TypoScript from "Phoenix" and integrators as well will for sure "feel at home" once they start using "Phoenix".
4) TYPO3 v5 will be the successor to TYPO3 v4
"Phoenix 1.0" will not be the successor of TYPO3 v4 in terms of feature set. But "Phoenix Y.0" certainly will be, though with some confidence for new projects solely. However, FLOW3, the underlying framework of "Phoenix 1.0" is already the successor of v4 if we consider that back to 2005-2006, Extbase and Fluid did not exist and that they already made huge improvement to the way we now develop extensions. Who would still rely on pure pibase? Not me!
5) Migration of content from TYPO3 v4 to TYPO3 v5 will be easily possible
This is little to not known but the Google Summer of Code (GSoC) initiated by the Phoenix team last year will be continued this year. Existing result of GSoC 2011 showed that valuable content such as pages, content elements and even FCEs from a TYPO3 v4 will be easy to migrate to TYPO3 "Phoenix". What will not be easy to migrate are the various plugins that one may use in a current TYPO3 website. But as said, Extbase-based extensions are said to be relatively easily migrated to FLOW3 so we really can expect websites using clean, state-of-the-art extensions to be good candidates for a smooth upgrade path towards "Phoenix".
I'm convinced that we are currently facing a real revolution in our beloved CMS and we should enjoy it! I personally was an early adopter of Extbase when it was far to be as stable and powerful as it is today and I naturally plan to be an early adopter of "Phoenix 1.0" as well.
Greetings from Laax where the T3BOARD12 is coming to the end,
Xavier Perseguers
twitter: @xperseguers
[1] typo3.org/development/roadmap/berlin-manifesto/
[2] docs.typo3incubator.org/ExtbaseFluidBook/_build/html/0-Introduction/1-short-history.html
[3] www.slideshare.net/wrybit/typo3-50-experience-concept
[4] www.slideshare.net/wrybit/t3con10-the-taste-of-phoenix
[5] www.slideshare.net/skurfuerst/the-current-state-of-typo3-phoenix-t3con11
Sounds like an opportunity to clean up some parts in the TYPO3 4.x Core and Backend - curious to see what will happen for TYPO3 6.0.
Ah - and let me add the link to typoscript 2.0 sketch 5 years back:
http://buzz.typo3.org/people/robert-lemke/article/first-sketches-of-typoscript-20/