To framework or not
Using a frame work for development has it's advantages. A lot of the functionality is already there, database access, file uploads, authentication and such. All available straight out of the box. This is a good thing. The fact that you don't have to write all those routines and methods from scratch saves time and effort and allows you to focus on the task at hand (listing properties, saving profiles, making sure what you are writing is secure and the like) with a greater degree of granularity.
The bad things come from a lack of understanding. Too many people use a framework to save time but never bother to work out what goes on under the bonnet. Others have a basic understanding of a given language and use a frame work to "cheat" their way up the coding ladder. With minimal experience and a little research time you can be performing CRUD (Create, Read, Update and Delete) operations within just a few hours with no understanding of "what goes on underneath". Assumptions are usually made that one's chosen framework is safe and sadly, that isn't necessarily so. A prime example lives here: https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/16 (might have a pay barrier) at no point in this video tutorial does Jeffrey Way point out that even though he has set up roles and permission ANY user can just type the correct URL into a browser and the route method will run without question, probably just oversite on his part but this is the kind of pitfall a new coder won't notice!
I've been using laravel 5 for about 2 months now and have spent many hours pouring through the code contained within and, it's fine. It seems safe, efficient and adheres to good practices. But do you really need 40 Megabytes of code and some 4000+ files for a simple CRUD site? My hand built perl "framework" can do these operations including authentication, roles, db access, uploads and more with just 5 files (can be reduced to 1) weighing in at a tad over 150 Kilobytes!!!
Fast initial set-up.
Lots of functionality built in.
Can help enforce coding standards.
Douses inspiration and slows learning.
For most projects frameworks can be like using a hammer to crack an egg.
Does not necessarily solve the best practice issues in teamwork.
Layers and Layers of abstraction (unnecessary abstraction is another pet hate of mine)!