And so I have been working with Mach-ii, ColdSpring and Reactor for more than 2 months now, I think a follow up for my previous post is now due.
I am glad to say that so far my experience has been really positive. The application that I am working on, is really well architected. The solid architecture might have been contributed to Mach-ii or just simply good architecting from the team that built this application - perhaps it's both. Does using frameworks enable people to be good architects or good architects tend to use frameworks?
Having a good architected application is simply the biggest selling point for me, I am just tired of working with spaghetti code and am tired hearing companies needing to hire developers to “clean up” their messy codebase.
Anyway I am really glad that I have spent time playing with frameworks before, this has enabled me to be productive in a short amount of time. I imagine I would have struggled in the job if I was making a direct leap from working with procedural to working with OO (and frameworks). In fact I don't think I would get the contract job with this cool company, if I haven't got any experience with frameworks nor OO.
So the point of this post is really directed to ColdFusion developers who haven't felt the necessity of investigating ColdFusion frameworks. I really think learning frameworks can only bring benefits for you, you'll be exposed to concepts and best practices and in the end you'll become a better developer.
To be more pragmatic, no doubt having some experience in frameworks, will increase your employability and will enable you to be more selective with companies that you want to work for. Though I have to admit, I haven't heard many ColdFusion companies in Sydney that use frameworks or OO for that matter.
The concepts learned from these frameworks are transferable to other technologies too - MVC and OOP are pretty much prevalent in any web technologies like Java, .NET or Ruby on Rails - thus it gives you more flexibility as developer to move from one to the other.