[TYPO3-mvc] TYPO3-Core complete rebuild to realize modern development paradigms?

Andreas Wolf typo3ml at andreaswolf.info
Mon Aug 12 13:26:54 CEST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Gabriel,

Am 12.08.2013 11:50, schrieb Gabriel Kaufmann | Typoworx:
> That's why I made the suggestion for a complete new tree trying to
> adapt the syntax and backend of current TYPO3 releases and do a
> complete rewrite. I also would prefer a complete separate TER for
> such a tree, as the current implementation of mixed TYPO3 4.x and
> 6.x Extensions is a real pain (my 4.7.x TYPO3 projects always
> report "updates" even if those are then only compatible with the
> 6.x tree).

well, there is lots of room for improvement in the TER. On the one
hand, extensions should not be delivered to versions that they're not
compatible with and on the other hand we also need multi-version
support (e.g. for a 4.x and a 6.x extension). You're more than welcome
for helping to get these things done!


>> i think its better to have an continous improvments on the core 
>> than an rewrite.
> I can only partly agree with to that. Of course it would be better,
> but don't forget that even tiny changes can lead into
> incompatibility for some extensions. There may be a lot of work to
> archieve only small effects on trying to rewrite an old concept
> that may be can never really lead into a good rewrite at all as
> some old static concepts are untouchable (touching them may also
> lead into a large compatibility issue then).
> 
> So I would prefer adapting the existing concept only, but do a 
> code-rewrite.

The thing is that you can't really adopt the old stuff in a modern
code structure without risking lots of incompatibilites and creating a
new unmaintainable code monster. Trust me, I tried to refactor TCA and
TCEforms in 2009/10 to have a common data structure abstraction and a
common forms engine on top of that. It would have been possible, but
too much stuff would have broke, and the effort would have been very
huge without a real advantage (at that time, probably it would be a
different thing with today's web, e.g. mobile cients).

You'd have to throw (nearly) *all* existing code in
TCEforms/FormEngine (in 6.x) away before even attempting to rewrite
it. It's almost impossible to reuse the concepts in TCEforms (like
element naming and all that stuff) in a rewrite when you want to
replace the underlying data structure.

I never dared touching TCEmain, and if you do, you will probably break
even more stuff. If you're willing to do so, good luck, but I'd
refrain from that and invest my energy somewhere else.


>> if you are looking for a modern codebase you Should focus your
>> work more on TYPO3 Neos they plan to have an 1.0 release in
>> Oktober this year.
> I'm also looking forward to that and I'm watching the progress. I
> did'nt have a look in the recent core-code yet (it's planned), but
> I fear that even there is too much of the old code only copied
> rather than adapted to something new. If NEOS would lead into
> another TYPO3-Version that doesn't make a cut-off of old coding
> paradigms that have been used in current 4.x and 6.x versions, this
> would be only another half solution into something modern.
> 
> As far as I know TYPO3-NEOS is basing on FLOW - this would (what I
> hope) implicate that there already Doctrine has been used for
> database handling. Extbase on TYPO3 4.x and 6.x has lead ito a
> dead-birth in my opinion as Extbase still bases on the very old and
> unstable first versions of FLOW3.
> 
> And even TYPO3 6.x didn't do the "cut-off" I had expected for a
> new TYPO3 major-version trying to introduce something new to the
> community.
> 
> Maybe someone in here already know's more about TYPO3-NEOS
> concepts?

Most of us know and we follow the Flow/Neos development. But TYPO3 CMS
is neither Flow nor Neos, it's an established platform for building
websites. You cannot expect modern rocket-science technology in
something that was designed 15 years ago. And trying to implement it
there will almost always fail.
Look at software projects that dealt with modernizing old
infrastructure. Many failed or completely blew up their budget, by
factors between 10 and 1000 (and probably more).

The software engineering community is still struggling to find
concepts for dealing with long-term software projects, despite the
huge progress made in this area in the last 15-20 years. Modern
software is written with maintainability and exchangability in mind.
This was not the case when the initial concepts for TYPO3 CMS were
created.

Additionally, the sense for code quality and programming paradigms in
the Web development community only developed in the last five to eight
years - look at old $yourLanguageOfChoice code from around 2000.

It's no wonder that this code is hard to maintain and even harder to
replace, because you have no clue how people (ab)use it. Without
breaking almost all existing 3rd party stuff, we can't change the
external interface of TYPO3 core classes. Even with the mild
refactorings done, people still complain that their ten years old code
does not work anymore ("But we've invested huge amounts into our
website in 2003, why do we have to adjust it now?").

Despite some broken concepts and the old, hard-to-maintain code in
TYPO3 CMS, the CMS has been the technological lead for quite some
time. Things like IRRE were copied by quite a few commercial CMSes.
But the code and concepts have aged. To stay on top of the CMS world,
Neos has been created, and I'm pretty sure it will rock the web once
it's stable.

So if you want to do something revolutionary, invest time into Flow
and Neos (I also do that). We will continue to improve TYPO3 CMS, but
we won't rewrite it from scratch.


Regards
Andreas


- -- 
Andreas Wolf

TYPO3 CMS Active Contributor
TYPO3 Association Member

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (GNU/Linux)

iF4EAREIAAYFAlIIxn4ACgkQVRefK2MMWg7DQwD/adoTygHw5LrzWVQLcWBp6TL8
FBsyaNqzXOCqg1yrG5EA/RnwTMAVvnktmRH7lpoCcC308J+ab6SB+Gmp7Cg2NLOB
=L6tl
-----END PGP SIGNATURE-----


More information about the TYPO3-project-typo3v4mvc mailing list