Next, we'll move on to addressing the fact that the guy that says frameworks aren't for real coders refuses to use an editor that doesn't have code completion. It's like some sort of ironic twilight zone we live in where code completion isn't for pussies but reusing existing code is. I am overflowing with fuck.
That fact that you would shun code completion or a good IDE, but prop frameworks for their speed of development is an oxymoron.
Code completion allows you to code faster and more accurately, which is the same argument for being pro-frameworks. The fact I can auto complete something like variable name or a function name means I make less mistakes during the process. It also keeps you from making functions to long function names. Personal pet peeve of mine. A good example of this is when people in PHP make a function like toDB() that runs mysql_real_escape_string(). It makes no sense that you would write a function to a function, I just want to facepalm.
The IDE will also bitch at you if you type something that doesn't make sense and allow you to catch some run time errors before you execute the code. I'm pretty damn good at bug hunting but it's not where you want to spend your time. I know what retarded features right?
Anyone who tells you to not use a framework or that frameworks are a waste is, get ready for it, AN IGNORANT CODER. Ignorant coders cost you money. They spend time working on solved problems. Their list of inventions consists entirely of wheels. One of the best realizations a professional coder can come to in his career is the one where you finally understand that there are a shit ton of coders out there who are infinitely smarter than me, and I should be using, hacking at, and learning from their code rather than attacking every problem with my ten fingers and that thing between my ears.
Ignorant coder? You can preach speed of development all day every day, but using frameworks as a crutch doesn't make you as free thinking or better at coding. At least not as rapidly. I also believe they will keep people from moving to other languages and trying new things.
I don't know why you'd be so afraid to rip something open build it as you want it, make sure it has all the features you want. I've built a lot of custom shit, but you know the one answer you won't get out of me is, I don't know how to do that because I'm stuck in this such and such framework. If you ask me the whole framework argument is a cop out.
I don't think I've ever seen a study that says frameworks increase the speed of development. Now don't construed that as it doesn't make some individual programmers faster, because it probably does. I mean a hack coder is still going to be a hack coder whether you use one or not. They definatly can bring well needed structure in to a larger product, that I will give it.
One thing you overlook is the additional overhead produced by such frameworks. I know some people will say, well with today's computing it's not as much of an issue. The truth be told is that yes, it is an issue. Server side languages have a lot of overhead compared to compiled code. When you look at a language like PHP and realize that it's like 40 - 50x slower than c/c++ and like 20 - 25x slower than Java, that's huge.
Servers still cost something every month, unless you own your own. So if your code is leaner, and does exactly what you want with less waste it means you need less server resources and can give your users a better experience. That shit is money in the bank.
If you never reach that limit, you never realize it. So for the enthusiasts they think, well gee I can use a framework and I'll be golden. If they are doing nothing of scale, they have an argument. It could be a good benefit for them. But it's a lot harder and look past the initial development time for some people, because it's a lot easier to quantify that initial development cost.
The bottom line is, the amount of lines of code you write is not indicative of your abilities. Good coders encapsulate, inherit, and reuse. Fuck copy and paste, fuck writing your own authentication system, routers, persistence layers, etc. Follow along with what the Pros are doing and you will become a better programmer. The logic behind not using a framework for coding is the equivalent of saying you want to become the world's best homerun hitter but rather than watching the best hitters and learning from them, you lock yourself in an empty room with a tree branch and some fucking rocks and start swinging.
I agree that the amount of lines of code you write are not indicative of your abilities. The ability to build, think creatively, and get results are. Reuse of code is only as good as the code your reusing is. If the code is shit the only thing you're learning to do is reuse shitty code. If you can't answer the questions of, "Is this code shitty? If it is how can I make it better?" Then what good is it doing?
The great thing about not using frameworks is you learn, you get better, and you understand everything at the lowest level. You see all the pieces. This goes back to something I said earlier, if you don't understand how to do it yourself, would you even look at another language? I have a feeling a lot of people would say no, it's too much work. Isn't that why you use a framework in the first place?
I also think your analogy is backwards. You have to go out and hit some rocks around to learn to be good. A hack programmer that uses a framework will probably be better than a hack programmer that doesn't. But that hack programmer that doesn't use a framework will probably grow and understand faster what he's doing and will eventually smoke the hell out programmer that relies on frameworks.
Different strokes for different folks I guess. I know my position isn't a popular position (oh boy do I), and I don't care. I only have my own experiences to draw on as to why it's better to not use them. I don't regret it, and think I'm better overall for it. I'm also not trying to start another one of these threads. We've been there, done that. But I won't bend over and take it either. :1bluewinky:
In be4 TL;DR;