Search code examples
phpzend-frameworkcakephpsymfony1performance

Are Symfony and CakePHP too slow to be usable?


Until now, I have always said that CakePHP is too bloated and slow. I don't really know that, I just saw "some" benchmarks. What I really want to know, is that if those two frameworks (Symfony and CakePHP) are too slow to be usable in a way that the user will get frustrated. I already know that those frameworks are slower than other alternatives, but that's not the question.

I ask the question because I want to create a project management web application and I still hesitate between a couple frameworks. I've had some trouble learning Zend, but imho I haven't tried hard enough.

So in conclusion, in addition to the first question above, I would like to ask another question:

If I want to create a project management tool (which is a pretty big project), which of the following should you suggest, considering the developement time, the speed of the resulting application, and the robustness of the final product:

  • Symfony
  • CakePHP
  • Zend Framework

Also I should mention that I don't know any of those frameworks, and that I want to learn one of them (at least).


Solution

  • The problem with benchmarks, is that they normally don't lend themselves to the real world. Write a real application, and you'll see that all the frameworks are within about an order of magnitude of each other when it comes to speed. And they are all slower than if you didn't use a framework (and know how to program).

    However, what you need to look at is the tradeoff. Frameworks sacrifice a little performance for the ability to reduce development time significantly. What's more important to you, raw unadulterated performance or reasonably rapid development time? Facebook wouldn't use a RAD framework for their site, but that's because the performance to them is worth more than the added development time. Likewise a small company with a single developer is likely to benefit more from a framework than the reasonably small performance hit (I say small, because the impact on each page view is minimal. The effect "adds up" with higher traffic).

    What I'd suggest, is take a look through a bunch of frameworks. Try them (most have a "blog" tutorial). Get a feel for how they work. Pick one that you like, and then play around with it for a little while. Learn its coding style, and how it likes to do things... Most importantly, learn how it functions. Try to learn the "why" behind the details. The ability to use a framework is IMHO directly tied to the understanding of how it operates... Don't use something you're uncomfortable using unless you have to. Find one that "fits" you, and then stick with it until you are fluent...