[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