Plum Redux

Development frameworks are a hot topic in the ColdFusion (or any development) community right now. Many consider them essential to developing maintainable, scalable applications. Other's decry community frameworks, arguing that they are crutches and add unnecessary complexity to solving their business problems.  I won't rehash these arguments (Google to your heart's content), but I will point out that there seems to be enough interest in CF frameworks, that Michael Smith and TeraTech are sponsoring a Frameworks Conference in February 2007. 

One framework that sadly won't be represented at the Frameworks Conference is Plum, and that's a shame, because I believe Plum rocks the house.

ColdFusion was originally a Windows-based, procedural, web development environment. When Macromedia acquired ColdFusion from Allaire and subsequently rebuilt it on the J2EE platform, we began to see the beginnings of the "javafication" of ColdFusion.  ColdFusion Components (CFCs; essentially object classes) were added and object-speak started to become pervasive in the community. This has really picked up steam recently, as many developers with Java backgrounds are moving to ColdFusion, bringing with them their best practices for Enterprise team development, Macbook Pros and Linux backends. We now have a slew of Object Oriented (OO) frameworks like Mach ii, Model-Glue Unity, ColdBox, etc. which have adopted the Model-View-Controller design pattern and use XML configuration files.  Even Fusebox, arguably the most widely adopted CF framework, has been morphing from a procedural framework into a OO hybrid.  Do I see this as a bad thing?  Not at all.  I see it as a necessity for ColdFusion to continue to evolve and be taken seriously in the Enterprise development space, which I believe must succeed for ColdFusion to have any long-term viability.

However, let's remember that CFML is *still* a procedural language, and not everyone wants to be an Enterprise psuedo-java developer. There are scores of smaller shops out there that run exclusively on Windows, and use ColdFusion to provide products and services for their customers, who have absolutely no interest in OOP, MVC, etc.  They are focused on getting their projects out the door as quickly and cost effectively as possible, and the luxury of studying and rewriting  their apps using MVC may not exist for them.

It is possible to write large, performant, scalable web applications with ColdFusion without going the down the java-lite route. If you're not into rolling your own, Plum will help do this for you, and very quickly.  Plum was originally an internal framework built by Adam and David Churvis at Productivity Enhancement.  For those of you who don't know, Adam and David co-authored the ColdFusion MX Bible, along with Charlie Arehart and Hal Helms. Their chapters on advanced database concepts and custom tag development are worth the price of the book alone. They are widely recognized for their database and scalability prowess, in addition to being excellent trainers. They espouse development best practices. Plum represents the best of their development and training philosophies.  And it is available to you as a development and/or learning tool, free of charge.

I have been using Plum as my main CF framework for about 3 years now (since the first alpha), and have built about 14 applications with it in that time. Most are not public facing (I do a lot of intranets), but some of these are outsourced projects for some well known companies including British Gas, Sun  Oil (Sunoco) and Merrill Lynch. I have not once encountered an error from one of these applications that wasn't directly induced by me or was a recognized bug in CF. 

You don't see a lot of traffic on the Plum mailing list nowadays, and I believe one of the reasons is because the framework core files are so bug free that you don't have a lot of problems. Another reason is because not many folks are adopting Plum anymore for various reasons.  Perhaps the foremost is that Adam and David are now focusing on Microsoft .NET technologies, and there are no immediate plans to further the development of the CFML version of Plum. It works fine now and there are only a couple of minor issues.  Other reasons include the fact that there is no support for MySQL or Postgres, and that the code generator is a Windows .NET application.

I plan on frequently blogging on Plum, if for no other reason that those of us in that community can share tips and tricks, show off some sites we have done, etc. There is a lot to talk about. We might even be able to address some of the shortcomings with the Churvises blessing down the road if there is interest.  So if you are a Plum afficionado, please stay tuned.

P.S. On a side note, I have just been hired as a full time developer working with a small team on a long term Fusebox project.  You can expect that I will be devoting some time on this blog comparing and contrasting the two frameworks and methodologies.

TrackBacks
There are no trackbacks for this entry.

Trackback URL for this entry:
http://www.jefffleitz.com/trackback.cfm?8F33440C-F978-399A-1734BD10B54B7B21

Comments
Mark Fuqua's Gravatar I always wondered what you looked like! I can't wait to read your posts, I wonder what you would have to do to be aggregated by MXNA?

I think PLUM was looked down on because it is not more of an OOP framework and was therefore shunned my many of the people who matter. I've had the opinion that Sean and some other folks in the inner circle don't like David and Adam very much and approached PLUM with a very negative attitude. What a shame.

And it may have happened anyway, but I think the poor response from the Adobe/Macromedia CF community helped push Adam and David towards Blue Dragon and .Net.

Anyway, I love Plum and I figure, as long as it is not widely adopted, it helps overcome my lack of experience quite nicely.

Happy Blogging! I look forward to many more great posts.

Mark
# Posted By Mark Fuqua | 11/14/06 3:13 PM
Jeff Fleitz's Gravatar Hey Mark,

Yep, that's me on a bad hair day :)

RE: Sean/Adam and David. I agree, they all got off on the wrong foot right after Plum was released and it kind of soured the Churvises a little. I also think it had a hard time because of the Windows focus.

RE: MXNA. Who knows. Remember what Doris Day sang "...what ever will be, will be". You do know who Doris Day is, right? Anyway, Vince Collins over at CFBlogs.com has gratiously aggregated me. Thanks, Vince!

Anyway, I hope you will continue to contribute. You are officially the first person to comment on this blog and I have a small bag of pork rinds sitting here with you name on it to reward you for your loyalty :)
# Posted By Jeff Fleitz | 11/14/06 4:39 PM
jack's Gravatar Hi Jeff,
I see that you're a holdout on using Plum. I wanted to try out the "final"
version, but I seem to be getting one problem after another. Is there a FAQ
or list of fixes to the remaining bugs. I tried to install on w2k, MX7.2,
Access 2k and... hit the "duplicate cfcatch" issue (finally commented out line 191),
then I hit the verity style path issue... which has stopped me .. so, if I find t
the fix for that, then what?? I just wanted to do a quick prototype quickly,
and don't find it as easy as it seems to be for you. I assume I am going to
need all the "workarounds" in order to get this working.
Thanks for any pointers you can give.
# Posted By jack | 12/14/06 4:32 PM
Jeff Fleitz's Gravatar Hey Jack,

Yeah, I appear to be a dieing breed.

The bug fix list in in the help file. That is all there is; where the Churvises left it. The CFCATCH issue is really the only show stopper I know of. I have built about 20 apps with 7.02, with no problems. I have made numerous changes to my component/tag libraries, so I no longer 'generate' an app as described in the tutorial, but copy a starter project and database project instead. However, I ran plain vanilla Plum for quite a while and never experienced any problems, once I took care of that issue.

As to the verity issue, not sure what you are referring to? If you make any changes to the components, be sure to re-run the setup/setup.cfm template or restart CFMX, as they persist in the application scope. Be glad to try and help if you will provide a little more explanation. Did you find the mailing list archives at http://www.mail-archive.com/plum@mail.productivity... ?
# Posted By Jeff Fleitz | 12/14/06 8:56 PM
Bill's Gravatar Hi Jeff,
Will there be any other releases of plum for coldfusion? How about Plum.net? Any News? I really like the plum framework.
# Posted By Bill | 2/8/07 9:04 PM
Jeff Fleitz's Gravatar Bill:

No more updates for Plum for CF, unless the current user community gets together and works with the Churvii to obtain licensing to do so. I am not sure there would be enough interest at this point, with all the other frameworks in the spotlight right now. Too bad, IMO. I will continue using it for the forseeable future, and start looking to adopt something else, or just continue modifying the Plum libraries to suit my needs.

With regard to Plum.Net, I heard a rumor they are working on one, but don't know anything about it. I heard they were going to kill the mailing list (maybe that is why you are here?)
# Posted By Jeff Fleitz | 2/9/07 6:39 PM
Bill's Gravatar Hello Jeff,
Has anyone tried running plum on ms-sql server 2005 express. Any tips on getting plum running on 2005. Have you found any new frameworks that might be interesting, "Plum Like". Thanks, Bill
# Posted By Bill | 6/15/07 6:41 PM
Jeff Fleitz's Gravatar Hi Bill,

I got SQLExpress working at one time, but discarded it, as I am using the standard version. I got the Plum IDE to talk to the full version, so I know it will work. SQLExpress is more work to setup in CF, but it can be done. I would suggest googling for it, as I know there were a bunch of folks, who blogged about it a while back.

As for CF frameworks that work like plum, I don't know of any. All of the current community frameworks are OOP-based and don't have visual crud generators like Plum did. They use ORM frameworks like Transfer and Reactor instead. The mind-shift from a procedural framework like Plum to one of these is a major endeavor.

HTH,

Jeff
# Posted By Jeff Fleitz | 6/21/07 10:28 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.5.001.