What's the difference between getting locked into a framework someone else developed, and getting locked into your own framework that you end up having to develop?
At least with something like CodeIgniter, you can go elsewhere for help.
but if you have written the framework, you don't need to go anywhere for help.
You just fix the problem because now that you have written it and it's tailored to your application, you have a pretty good idea of the problem and how to fix it.
This means that you can progress more quickly and that your project doesn't get littered with "workarounds" for "bugs" in the framework (i.e. hacks around stuff the framework hides for you or you don't know how to access)
Until you do something else for a few months and come back to realize that instead of there being only a single person in the world who understands your homebaked framework, now there are none at all.
> but if you have written the framework, you don't need to go anywhere for help.
Sure, if you're a genius who knows how to solve every problem, can keep the entire codebase in your head, and remember every change you - or someone else on your team - has made.
I'm doing some contract work for an old employer that uses a home-built framework that I've worked on and improved extensively. I'm betting it'll take me another hour to truly catch up on the ol' codebase enough to actually write something useful. And if I have a question about something? Well, I hope my old coworker has been keeping up with things enough to remember the answers that I've forgotten.
"but if you have written the framework, you don't need to go anywhere for help." Never had to come back to an old project or a part of an active project you haven't touched in ~6 months? I spend a fair amount of time figuring out why the hell I did X or Y a year ago, even with source code docs, narrative docs and tests. I don't think I'm the only one.
Not only that, but your team has somewhere to go for help other than you.
So many of the "do it yourself" comments are so clearly written from the one-man shop perspective. No thought of working in a team environment.
Drop 5 Rails programmers into a team and they're going to be a lot more productive than 5 guys arguing about how to do their own framework.
When you're trying to bring something to market or deliver something to a client, bitching about how routing should work when there's a ton of functional and tested ones to choose from is a big fat waste of time. Choose one and get to work.
At least with something like CodeIgniter, you can go elsewhere for help.