[TYPO3-dev] The extbase dilemma

Dmitry Dulepov dmitry.dulepov at gmail.com
Thu May 19 14:46:02 CEST 2011


Hi!

Sebastian Kurfürst wrote:
> The skills are there (at least for me), but lacking is*time*... We did
> benchmarks at some points, but obviously not enough...

(Sebastian, this is not directly for you but rather general thoughts. 
Please, do not take this personally)

I think the approach should be different, especially for the framework. 
Main criteria for the framework is always this: "it must be usable". So the 
first thing that the developer should think about is not fancy new 
technologies but things like speed, ease of use, clarity, etc. If new 
concepts come before performance or scalability, the project will have 
problems in future (yes, and we have those in TYPO3 still). Compare it to 
cars: concept cars would never never survive the streets. They only show 
what car manufactirers capable of but they are not for the real use. We 
know that t3devs are highly capable people but we need something for real 
life use.

I never liked to write bad about Extbase/Fluid/FLOW3 but I always thought 
it is more academic than real. The framework clearly cares more about being 
pure than being usable. And that it is a dangerous approach. It may become 
so pure that nobody will be able to use it in real life. In real life it 
has to be somewhat dirty because real life is dirty. And being dirty means 
testing the product for dirty life all the time. Each new feature must be 
tested and optimized at once. These are not two separate processes but one 
single process. Think: would you make a cool looking jet plane but care 
about it being able to fly later? Same with software: it is ONE single 
process: being cool and being usable.

Recently I had to create a sophisticated community web site using only 
TYPO3 as a base. I made a small MVC framework, which protects me from 
security issues but allows me to be flexible with database. I had to 
profile it quite a lot because the first default implementation was not 
fast enough. I was able to fine tune the code to make it nearly 20 times 
faster. That took me full two days. But I did that at early stages playing 
with real data (millions of related records). It was not easy but I was 
able to optimize the framework and every table that I use. I even changed 
ucase() calls to a direct map of uppercase characters because that was 
significantly faster on thousands requests.

In my opinion every framework developer should prioritize his goals. There 
is no perfectness in the world and perfect solutions are not usable in real 
life. So every framework should be developed with usage in mind. Usage 
first, good concepts next.

-- 
Dmitry "itoldyou" Dulepov
TYPO3 core&security team member
E-mail: dmitry.dulepov at typo3.org
Web: http://dmitry-dulepov.com/





More information about the TYPO3-dev mailing list