.
copied from: https://www.quora.com/Why-is-the-Zend-Framework-not-popular#
.
- Don't try to solve every corner case of everyone's app. Try to provide a solution for the 80% common cases, to keep the code simpler. But this means that the framework as it stands cannot match any app's requirements exactly, because any given app is likely to need some custom functionality in at least one component or another.
- Loose coupling between components of the framework, to make it easy for people to use an alternative component if any of the ZF components don't meet their needs. That was the intended way to solve the other 20% of cases. But very loose coupling meant that in many cases, the "right way" to implement a web app was too vague and too flexible.
- Make sure the code is "clean" and does not reuse code that anyone else has a claim to. This was important to some of Zend's customers in the wake of the SCO v. IBM lawsuit. Many people were anxious that using a single line of illicit code could be the grounds of a multi-billion dollar lawsuit (or even not using illicit code, but being sued anyway, to prove it). So every line of ZF code is original, even to the extent of reinventing classes that already existed in other libraries. And this requirement was viewed negatively by potential contributors who objected to signing a Contributor License Agreement to assure that they were not contributing code that was already copyrighted. Ultimately, this requirement for clean code was not important to the developers who choose frameworks.
- To distinguish ZF from Java frameworks like Spring or Hibernate, it was a strong policy that there should be no XML files to hold application configuration. But this meant that configuration had to be done with PHP code. But really there were configuration files, just not written in XML. Again, vague and over-flexible usage made it a confusing process to learn how to create an app.
ZF2 also gradually became more and more complex, adding many layers of classes for reasons that seemed abstract and confusing to most users. The layers of classes written in pure PHP caused a lot of runtime overhead, giving ZF2 the worst performance of any popular framework, even worse than ZF1 (cf. Performance benchmark of popular PHP frameworks).
I think a primary problem for the Zend Framework was that the project didn't really use Zend Framework for a web application project. They had a lot of unit tests, but the developers had no direct experience of how it served as a runtime component of an app that was under production load. There's something to be said for software projects that grow organically, developed as an in-house solution by the people who need it to serve their needs, and then later released as a public product.
So the end result is that Zend Framework is:
- Complex and hard to learn
- Not backward-compatible with its own earlier version
- Very slow
No comments:
Post a Comment