Even if You are Working at a Company Where You Will Stick with Your Product

Back in the 90s, before PHP, most dynamic web work was done in C or Perl. At that time, in those worlds, you had to do all the HTTP work yourself. If you wanted a content type of text/html, you had to set it, in code, on every single response. Errors in CGI scripts would often result in Apache internal error pages and made debugging very hard. All HTML work had to be done by writing to output. There was no embedding code with HTML even as a templating language. PHP changed all that. You had a default content type of text/html. You had automatic handling of request variables. Cookies were easily ingested and output. You could template your HTML with script instead of having to write everything out via print. And you might have thought, wow, what a wonderful world.

But today, even if you are working at a company where you will stick with your product for a long time it makes sense to use a framework. Or let’s just say when you start off you should use an established framework that fits what you need for the most part. So if you need full stack, get a full stack framework. If you need something highly specialized, then maybe a microframework. If you need a forum, use an existing forum, if you need a CMS use an existing CMS.

Why?

1) Free documentation, tests, security audits

2) Ability to higher much easier as your team grows

3) Hack it to bits if 1) and 2) start to matter less and success/failure dictates you turn in another direction

Taking Twitter as an example here, would Twitter exist if they would have had to do everything from scratch? The company actually was working on another product and scrambled to reinvent itself when their investors started loosing faith in their original idea.

Time to market counted big for them and it counts for most projects. If you would have done everything on your own they might have exploded because of security issues etc.

Now obviously their framework of choice didn't keep up with them when they needed to scale. But isn't that a great problem to have? You need to scale when you are successful and using a framework to get started got them there.

Anyway, super scaling light speed performance is rarely required form a team at day one. And any team that is required to do this has done something slightly smaller before and can take that code (aka framework) for this project with some additional tweaks.