A Plethora of Frameworks for ColdFusion and Counting
I agree with Hal Helms that having an ever increasing number of frameworks for ColdFusion is a good indicator of its maturity, however for a newbie figuring out which framework to use can be incredibly daunting. When I first started out with ColdFusion I was of course writing everything as EPAI or every-page is an island. All of my forms were submitting to themselves, and as you can imagine I ended up with huge balls of spaghetti in both hands frequently.
My solution was to quickly embrace Fusebox 3, but at first I had a tough time finding examples that were simple enough to help me along. When I started looking at Fusebox, people were already starting to want more object oriented frameworks. They had begun extending Fusebox in ways that weren't easy for me, as a newbie ColdFusion developer to understand. I did eventually figure out Fusebox, it truly wasn't that hard, it was just important to remember that one doesn't need to know every last detail to use it. If you want to see a really basic application with no beans, etc… Check out my memo application. It is avaialble on the blog as article 12. This was a very simple application that set a series of text fields into a struct that resides in the session scope. This allows a user to be able to go back and recall their memos, as long as the session hasn't timed out.
My next foray into frameworks was into Fusebox 4 which I worked with for only a very short time when I figured out that there was way too much going on that I would never use in Fusebox, and started to attempt to move to Mach-II. Mach-II was and is much more complicated than Fusebox because of the extensive use of design patterns. Most of what is happening in Mach-II is admittedly still somewhat of a mystery to me. I don't understand how the variables scope is coerced into the application scope automatically. I haven't yet worked on anything big enough to necessitate Mach-II so I mostly stuck with Fusebox until I have recently begun writing my own light OO framework.
Some people swear by gluecode, but I wouldn't recommend getting too deep into gluecode or Mach-II until you have a better understanding of design patterns. Even if you understand OO, the concepts of beans, events, listeners, mementos, etc… will throw you for a loop. While we have yet to see anything for newbies as cool as rails for ruby in ColdFusion, Fusebox 2 or 3 is a really good place to start. If you keep working at it, you'll find yourself working with Mach-II or building your own in no-time. Hopefully using a good framework will allow more developers to be successful with ColdFusion. The more success departments have with it the more it will sell, which means the more opportunities for experienced developers! Happy coding!