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.
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 easier 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 that framework, not of the concept of frameworks.
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.
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.
I ended up writing a php framework (http://phocoa.com) in order to write less 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.
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 easier 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 that framework, not of the concept of frameworks.
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.
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.
I ended up writing a php framework (http://phocoa.com) in order to write less 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.