Adam and David Churvis Get Fruitful with Plum
The President and VP of Productivity Enhancement talk about their new development tool, Plum.
by Judith Dinowitz
January 26, 2005
I have to be honest when starting this article and say that I am biased. Adam and David Churvis are fine people and outstanding members of the ColdFusion community and my personal feelings for them may color any article on Plum.
Though I did not have a tremendous amount of time to play with Plum to do a technical review of the product, others did and this article reports on their findings. (For a more technical review, please note Stephen Ansari's article in this very issue,
My Experience with Plum.) However, I feel that Plum has great potential, and has a relatively small user base when compared to more mature products such as
FarCry (an open source ColdFusion Content Management System),
Fusebox and
Mach-ii. I'd like to see this change, and the way to do that is to get more people interested in using Plum and giving their feedback. Even if the feedback is negative, it's still useful.
What is Plum?
About two months ago, Adam and David Churvis, the father-son team at Productivity Enhancements (makers of CommerceBlocks), announced the beta release of Plum, a new, free, all-in-one "magic bullet" for ColdFusion developers. Fusion Authority ran the
release of the beta announcement on our site, but we felt that Plum was a topic that deserved fuller investigation. So we sat down with Adam and David to find out what a fruit has to do with ColdFusion programming.
Adam explained that Plum is more than just a purple-skinned fruit you eat for dessert. In this case, it stands for Practical Lightweight Universal Methodology, and it combines a code generator with a comprehensive application framework and an effective rapid development methodology that runs on the .NET platform. "Plum can build a complete website with full administrative control over a large relational database in a matter of minutes," said Adam Churvis, "and building custom business logic and workflows on top of the Plum Framework is simple and straightforward."
Plum in Action: Users Comment
Plum did sound a bit too good to be true. So I decided to speak to some of the users who have beta-tested Plum and worked with it extensively. Every user I contacted gave me nothing but positive feedback. Here are some of the responses I got:
- Leonid Kapel has been a Plum user since it first became available. He says that since he started using Plum, his "development time has been reduced tremendously. It is very useful to be able to generate useful applications without needing to write any code." He has also enjoyed interacting with Adam and David Churvis, and with the rest of the group involved in using PLUM.
- Dan O'Keefe became an active beta tester towards the end of the private beta and through the public beta. He also participated by proofreading the help file as well as performing all tutorials to ensure the documentation corresponded with reality. He finds in Plum a rapid development tool that allows him to quickly generate a site with database interactivity, a Content Management System, security, and more. He says that Plum also comes in very handy when he needs to quickly generate a proof of concept site. O'Keefe is currently using Plum to produce an Intranet application for a well-known e-commerce site (whose name he cannot divulge) that will manage all aspects of the client's website.
- Saeed T. Richardson is in the process of creating a management system for all the courses provided in the curriculum at the Medical School at Duke University. While looking at a competitor's system, he was asked whether he might be able to design a system locally to achieve the same process.
"Using the PLUM IDE, I was able to point to a 20 table database that another college has set up without ever having seen so much as a chart or diagram, and within 20 minutes was able to show several directors the same functionality available through this proprietary system that may have cost an initial $10k to $20K."
Richardson was also able to demonstrate how easy it was to provide changes to form submittals, searches, and content collections. "Needless to say, they were also very impressed with the cost of the application. One individual jumped up in the middle of the presentation so excited, and walked out, saying he was convinced about using PLUM and did not need to see anything else!"
- Jeff Fleitz has had only positive results with Plum: "I built a vessel vetting system for Sunoco using Plum that has been in production for 4 months now, and it hasn't generated a single error yet. That was 3 beta releases ago, which shows you how stable the code is. I have just been contacted to build a similar application for another large energy company that has demoed the system. I built the whole app in less than a month and it would have normally taken at least 7 weeks to build something like this using my old techniques."
To be even-handed, I had Ryan Hartwich, a Fusion Authority reporter, take a quick look at Plum. The download was smooth, and the documentation he saw was good but needed some minor work. He said that Plum looks like an interesting application worth spending some time evaluating for oneself, and that the makers seem to be eager to please and help. Hartwich also compared Plum to FarCry, noting that FarCry is a well-tested, heavy Content Management System application that can be tailored. It's already written, but it takes some expertise. At this time, Plum is an IDE that helps you CREATE the CMS and uses components that are already formed to help you build your own site. With some effort and learning it may meet many people's needs. [Note: FarCry has not been reviewed here in conjunction with Plum.]
Why Plum?
Having seen so much praise of Plum, I wondered: What makes the product so compelling to its users? David Churvis says that Plum helps them solve their development issues easily. "Developers care about everything from delivering solid applications to making a profit from their ventures," he says. "These are the things Plum is designed to help them do."
The Churvises provide strong support for their product, in the form of an active mailing list where PLUM users are invited to ask questions of the Churvises any time of night or day, a website complete with sample code and interactive tutorials, and phone support for an annual fee. The product itself is free of charge.
Why give away a product they've put so much work into? Adam Churvis laughs. "After putting all those years of combined effort into the final product and its predecessors, we still liked the idea of giving it away to everyone free of charge. Everyone thinks we're crazy for doing it, but why not?"
The Churvises place a little 240x120 ad in the lower left corner of the Plum IDE. No adware runs on the developer's machine; it's all handled inside the Plum IDE. (The sole exception is that upon launch, the IDE does check for the revision date of the ad file on the Churvis' server via an HTTP HEAD request, and updates the ad if necessary. The ad doesn't change very often, and there is no other separate adware installed.) If people want to contribute to the development effort, they can purchase a $79.99 License Key from the Productivity Enhancement site that makes the ad disappear, but it doesn't change the features or functionality of the product at all. The full product is absolutely free to anyone who wants it.
The Productivity Enhancement site is a live example of Plum in use.
|
Are Adam and David against making money? At this, they have to laugh. "No," says Adam Churvis, "but we do have a very unusual development philosophy, a philosophy that highly influenced our decision to give the product away." It is this philosophy that made them decide to give back something to the ColdFusion community, which has been by and large supportive of its members since ColdFusion was first released as an alpha product, in 1995.
"When I started developing in ColdFusion back in V3.0, my first taste of the CF community was with the Atlanta ColdFusion User Group. From there I learned about House of Fusion's mailing lists, and it has been a real boost to my development efforts ever since," says Adam. "There were so many people contributing solid answers to real world questions and problems that it became my first point of contact for technical support and collaboration. To this day I feel indebted to the ColdFusion community as a whole, and I wanted to contribute something big."
"David and I discussed it, and we agreed to make it a free tool for the ColdFusion community. It wouldn't be about the money, or the hype, or trying to turn a development tool into a packaged product whose sole purpose is to generate a revenue stream -- it would just be about pure development, and adapting the tool to the ColdFusion community's needs."
How is Plum different from Mach II or Fusebox?
Plum has its own framework, and its own developer methodology. So how does it differ from Mach-ii and Fusebox? Can one use Mach-ii and Fusebox with Plum?
Adam Churvis points out that at the most basic level, Mach-ii and Fusebox provide ways to arrange and call code. Neither of them have any real built-in tools or services like Plum does. If you want security, thorough exception handling, high-functioning forms, layouts, unit testing, user management, content management or prototyping, you've got to build it yourself.
"Plum does all of this for you, right out of the box -- plus it gives you a kick-ass code generator that will save you days of development on even your smallest project." Adam Churvis says that Fusebox and Mach II are not methodologies per se; they're more like
skeletal frameworks. "The Plum Framework provides important core services to
the Plum applications that are built on it, so you can't take the Plum
Framework away from a Plum application." It's one complete system. So no, Plum can not be used with Fusebox or Mach-ii normally.
The Plum IDE is a booster rocket to get the developer to handcrafted coding faster -- and it comes complete with inline help!
|
The system is customizable to suit the developer's need, as none of the code libraries or generated code is encrypted. "For example, if you need the Plum CMS to do something special, like display a category of content in a specific way, you simply copy a similar Plum CMS custom tag and give it a different name, modify it as you like, and call it on a page. It's that simple."
The Evolution of Plum
Plum is the end result of years of development of the Churvises' previous CommerceBlock's product line. They started with DatabaseBlocks V1.0 (released in 1999), which used ColdFusion Studio to generate a simple admin-side application for maintaining relational databases. For the next two years they worked on improving the CFML that DatabaseBlocks generated and wrote a standalone desktop application to generate it; the resulting product was CommerceBlocks V2.1, released in 2001, which served as the base application to which they would add new modules as time went on.
From 2001 through 2002, they developed CommerceBlocks V3.0, an entirely new product with added capabilities like login, role-based security, and a lot more. 3.0 did some pretty amazing things very well, but all the details they'd built into it were complicated to learn, use, and deploy.
"ColdFusion MX was introduced just before we were going to release 3.0, which set everything we'd done on its ear," remembers Adam. "We put 3.0 in front of a trusted friend, Tony Petruzzi, who had used and liked our earlier versions. He gave us the bottom line: the product needed to be as simple to use as possible; you should point it at a database, click a button, and run code -- that's it."
This gave the Churvises their marching orders. They decided to scrap the entire 3.0 project and start over from scratch. They still had one remaining issue that Adam didn't like, which was the need to fit the generated code into the handcrafted portion of an application. There were so many varying elements that they couldn't even guess at. Support was going to be a nightmare. "If we could supply an application framework that would work for everyone," said Adam, "we would not only eliminate the code fitting problem, we could greatly simplify the generated code by building a strong set of core services into the framework itself."
After years of developing ColdFusion applications, they realized, they had hit upon some really good techniques for doing just about every common task needed by a ColdFusion application, including content management. So they started putting together a prototype of a practical and lightweight application framework that incorporated all these elements in a basic, ready-to-run website that people could build upon.
Marrying the code generator with the new framework was a no-brainer. Now Plum could generate the code and its own application framework in one fell swoop, thereby eliminating all support issues related to fitting the Churvises' code into someone else's application. People could easily build their custom business logic on top of Plum's framework.
As Adam Churvis puts it, "Over the previous twenty-plus years I had tried many development methodologies and quasi-methodologies, but they all left much to be desired. I combined the best of those methodologies with solid business process engineering techniques I had learned over the years, and came up with a surprisingly simple development methodology that really worked well."
Having a tool that could generate an application framework, the administrative side of the application, and the basic website eliminated a lot of development work and therefore simplified the methodology even further. The Churvises then added the ability to easily prototype application pages that could be converted to finished code by changing a single attribute, and they finally had all the ingredients of something phenomenal. All that was left was putting it all together into one cohesive tool. That last part took over a year of solid work and testing by dedicated private testers.
David and Adam look at each other and smile. David sums it up simply: "Plum was the tool we wanted to buy at any price but no one had invented it yet, so we had to invent it ourselves. Plum was designed to be a true magic bullet for a big portion of every ColdFusion application."
How Will Plum Help Your ColdFusion Development?
The Churvises explain that from the moment you begin to develop an application on Plum, you're way ahead of the game. Plum gives you most, if not all, of the administrative side of your website. If you've employed the Plum Methodology, you have a document containing the business processes the website will support that is simple and easy to understand by programmers and customers alike. Now, imagine how competitively you can price your development services using Plum or, if you're a corporate developer, how quickly you can meet the boss's mandate to design, develop, and deploy any given application.
"I love the look on people's faces when they first see Plum create a fully functional website with content management and automated Verity, user admin and login, a complete structured exception handling framework, an admin application for a database with a hundred tables in it, etc.," says Adam Churvis. "They're like, 'That's it? It's done?' Even after I explain how the developer eventually divorces the Plum IDE from the code it generates, then proceeds using a combination of Plum custom tags and its other libraries plus handcrafted code, they're amazed. We even made the hand coding part pretty easy with the custom tag editors we supply with Plum."
"Plum really is the tool we wanted to buy at any price."
Where will Plum Go from Here?
The Churvises are open to whatever Plum's users want. They take feature requests very seriously, and carefully consider each and every one of them. For example, they've had a lot of requests to add MySql and PostgreSQL support, so they'll be adding that in a future release. Smaller requests go into the product pretty quickly.
They're also planning to run Plum on Mono, which would extend the product to Linux.
The Churvises are looking for contributors. They could use some artists and CSS experts to create a few more default layouts for Plum. They've had a lot of compliments already on how Plum's layouts and intelligent stylesheets are implemented.
If you're interested in getting involved with Plum, you should check out the Productivity Enhancement website (
http://www.productivityenhancement.com) and download the product. Remember, it's free, so what do you have to lose?
A special thank you to those who contributed information and research for this article, including Adam and David Churvis, Ryan Hartwich, Leonid Kapel, Dan O'Keefe, Saeed T. Richardson and Jeff Fleitz.