It's amazing how all-over the place these comments are on frameworks! Maybe it's because frameworks vary so much in their goals, weight and architecture.<p>There are really 2 kinds of performance; latency and throughput. Latency is how fast a single request is served; throughput how many requests you can serve concurrently. A good framework has a noticeable but negligible effect on latency (which also goes down all the time as the framework improves and hardware gets faster), yet also makes scalability <i>easier</i> by helping you abstract out the parts that make it scalable. If the framework you're using makes it hard to scale horizontally, that's a failure of <i>that</i> framework, not of the concept of frameworks.<p>I also disagree on the size of web sites that frameworks are useful on. I see a lot of comments like "ok for small/medium sites but bad for large sites". Why would frameworks suddenly get bad on a large site? For performance reasons? Architectural reasons? If either of these happen to you then you've simply chosen the wrong framework.<p>The argument that "an organizational system and set of useful libraries for programming web-related tasks" all of the sudden stop working once a site reaches a certain size is bogus. It might be true for a framework, but it won't be true for all of them.<p>I ended up writing a php framework (<a href="http://phocoa.com" rel="nofollow">http://phocoa.com</a>) in order to write <i>less</i> code. Frameworks give you leverage. They only box you in or cause scalability problems if they're architected poorly. I have really enjoyed the experience of building a framework as well as using it. I have been writing web apps, mobile apps, and desktop apps of all kinds for nearly 15 years and so I have had broad exposure to a variety of development stacks, from nothing to rich frameworks. Of course it's just my personal opinion, but in my experience a well-written framework is always better than doing it yourself, and a poorly-written one is almost always worse than doing it yourself.