You may have noticed that David and I haven't spent much time on the Plum Discussion List over the past couple of months, but don't take that as a sign that we're not active on Plum. To give you an idea of what we've accomplished "off list," we've created a version of the Plum Framework for BlueDragon.NET (with a customized PDF-capable Lucene indexing and search system), and we've established the game plan for how we're going to incorporate AJAX and Nifty Corners into Plum forms.
We're gearing up for the next version of Plum, which all of you are shaping via your comments, kudos, complaints, and recommendations. We collect every single email message to the Plum Discussion List and decide how to change Plum to make it better. Which brings me to the meat of the issue: taking Plum in a new direction. In short, we're opening up Plum to cooperative public development from the ColdFusion community. First I'll cover the "why," then I'll cover the "how." WHY ARE WE DOING THIS? During the past three years of developing and beta testing Plum, and using Plum in production environments, we've learned a lot from all of you, and even quite a bit from those who don't like Plum at all. In fact, I can safely say that the majority of Plum as you now know it is the result of suggestions from people other than David and me. The only way to make Plum really great is to more actively involve these people (and you know who you are). That's one point. Another point is that a spate of offerings has sprung up in the ColdFusion application frameworks arena since we released Plum, and more people are thinking seriously about using frameworks in their everyday work. Each framework -- including Plum -- has its strong and weak points, and they all have different scopes from simply arranging and calling code to providing actual services and building blocks. The third point is that Plum is a massive product. Even if you split up Plum into its three main pieces -- the Plum IDE (soon to be renamed Plum Generator, as per suggestions), the Plum Framework, and the Plum Documentation -- each piece by itself is still a huge piece of work. Sure, we can handle all of it, but doing so requires this little two-man team to set aside a big chunk of unpaid time for even the smallest release cycle. So David and I added up points 1, 2, and 3, and concluded that the only way we're going to move Plum ahead as rapidly as everyone would like it is to involve the ColdFusion developer community in actually developing certain pieces of the Plum Framework portion of the Plum product. To facilitate this and make everyone as happy as possible, we're going to make a couple of radical changes to how Plum will be delivered. First, the Plum Framework will be uncoupled from Plum Generator. In the next and future versions, there will be a subdirectory named "Frameworks" that will contain any number of Zip files. Each zip file will be a version of the Plum Framework. If the Plum Generator sees more than one, it will prompt you to choose it by name. This not only enables you to have multiple customized versions of the Plum Framework from which to start your project, it enables non-Windows customers to separately download and use the Plum Framework independently of the .NET-based Plum Generator. This also lets us release updates to the Plum Framework independently of the rest of the product, which enables us to release updates and fixes as frequently as we like. More importantly, it lets you update your own customized Plum Framework as often as you like. We'll even let you to put your own modifications on the ProductivityEnhancement.com website for others to download. Second, David and I are going to expand the plug-in interface to make it easier for .NET developers to write their own plug-ins for the Plum Generator. Current menu bar items like the unit test generator, stored procedure generator, and component generator will be migrated to plug-ins, as will many future enhancements. Developing new features around the Plum plug-in architecture will give developers the ability to directly (and safely) extend the Plum project file to incorporate new features and functionality without affecting existing features and functionality. This, too, enables us to release targeted improvements as individual plug-ins rather than a new release of the entire product. Decoupling the Plum Framework, improving the plug-in interface, and increasing community involvement will make Plum into a continually-released product that rapidly changes to meet developers' needs. HOW ARE WE GOING TO ACCOMPLISH THIS? Step 1: Make your voice heard Though we already have thousands of Plum Discussion List messages detailing what people like, don't like, issues they've had, etc, and have already used these to determine the upgrade path of Plum features and functionality (as per the previously-published release order document), we now want to open discussion up to incorporate what you like better about other development frameworks (not just ColdFusion frameworks). If you like Ruby on Rails, tell us what tickles your fancy (or other parts of you, as you care to share). If you're enamored with Fusebox, Model-Glue, Mach-ii, onTap, etc, then don't be shy -- let us know the details. There might be a feature here or a useful element there that we're missing, and that might work really well in Plum. We certainly won't be stealing from other frameworks, but if in your opinion there is something general in nature that would lend itself well to Plum, we want to know about it. Step 2: Meet us in Atlanta For the die-hard among you, we're going to have a free "Gathering of Plums" in Atlanta around the first of the year, where we'll all sit down and finalize as a team how we want to proceed and who will build what part. General discussion on all the action items will have already taken place on the Plum Discussion List by this time, so during the meeting we'll triage, finalize details, and assign volunteers. David and I will go over some of the pertinent details of the code and how it should change according to what everyone has experienced so far, and anyone who wants to present anything relevant to the upcoming version of Plum (including things about competing frameworks) will be able to do so. We'll also show you the internals of the Plum Generator and finalize as a team how its interface might change to better suit developers' needs. This will be an informal two-day weekend event where you can fly in cheap on AirTran, hop a $1.75 train at the airport, and we'll arrange transportation from the train station to the venue. If you can't make it to Atlanta we'll still be happy (and honored) to recruit you, but nothing beats a face-to-face meeting where technical details are the crux of the content. Step 3: Releases Soon after we all meet, David and I will kick things off with the release of the new Plum Generator and uncoupled Plum Framework, which will serve as the foundation for everything else being worked on by the community. At first we'll concentrate solely on getting the new product architecture in place as quickly as possible so that we don't hold up anyone else's efforts. Then as each team member submits a new piece, we'll incorporate it into a new release of the Plum Framework, which will be simultaneously posted to the website and announced on the Plum Discussion List. MOVING FORWARD For those of you who are moving away from HomeSite or the older ColdFusion Studio product, we'll spawn small targeted projects like tag editors for Dreamweaver and similar tools for PrimalScript and CFEclipse -- all we need is someone who can help make it happen. We're also looking into a method for archiving our mailing list, making the archive Googleable, and hopefully adding all the past messages to the archive. David and I (and many of you) have a very exciting vision for Plum, which incorporates everything you guys have told us and requested, but there's just so much of it and we want to ensure that we continue moving forward. Plum has always been made better through the input of the ColdFusion developer community; it's time to move that community closer to creating Plum itself. And you're just the person we're looking for. Respectfully, Adam Phillip Churvis Member of Team Macromedia Certified Advanced ColdFusion MX 7 Developer http://www.ProductivityEnhancement.com Download Plum and other cool development tools, and get advanced intensive Master-level training: * C# & ASP.NET for ColdFusion Developers * ColdFusion MX Master Class * Advanced Development with CFMX and SQL Server 2000 ********************************************************************** You can subscribe to and unsubscribe from lists, and you can change your subscriptions between normal and digest modes here: http://www.productivityenhancement.com/support/DiscussionListsForm.cfm **********************************************************************
