Everybody knows that frameworks are the best way to develop large applications, aren’t they? This type of the common knowledge is dangerous – good indication that cycle is over and it is going to become obstacle. So, is framework friend or foe in the age of RIA applications?
I think frameworks can be bad for application development. Here are some of the reasons:
- They enforce certain patterns, code generation and separation that may be not appropriate – you end up of more code that should not be there to begin with
- More difficult to debug and maintain as you have a lot of framework code processing your flow – longer stacks, unpredictable reactions, extra bugs.
- Forces thinking of “adoption” of the framework sample application as your application prototype
Most importantly, patterns like MVC are not necessarily best implemented as external framework. In RIA world, intelligent controls like SuperDataGrid, DataForm, etc can have databinding, all the way to the back-end and provide MVC patterns INSIDE of the control – giving you all the hooks dictated by pattern, but removing the complexity and extra code. In the age of RIA, more controls of that sort will emerge, forcing you to make a choice between conventional frameworks and controls that take care of you. When was the last time you thought of using framework on the top of Excel or Word or any other component that is self-sufficient for the end-user?
For me, frameworks that force to separate programs in views, commands, etc. are like forcing everybody to build/use cars with manual transmission. Manual transmissions are more efficient, have advantages in performance and easier to maintain/repair. They have most vocal advocates ( for record, never convinced the guy who is responsible for “usability” here at Farata that clutch is a good way to do it). They suck on small projects like in-town commute. As for the future (and present for some of us) – good luck finding one in the hybrid or electric cars. Platform is changing, more functions are in platform, less control needed on outside – just enjoy the ride.
PS: I will spend next month collecting statistics on the projects that use frameworks and not use them – including code size per function and success / failure rates. I can be biased as I derive my current sentiment from the projects done 10-15 years ago and few “Save our project” kind of assigments I got involved lately. If you have good or bad experience using frameworks please send me your comments so I can include them.