There have been many in the ColdFusion world who have put hours of personal effort into creating so many things that were designed to improve CF and also to help all of us to create better applications. My life is spent in "the engine room" as I call it, "the heart of the matter" the Java Virtual Machine (JVM). There is absolutely no doubt that if things are not right there they will never be right anywhere and that will hurt ColdFusion in the long-term and already has, by companies making the decision to leave CF for alternatives. One of my motivations is to show clients that CF is stable, can scale etc and we have done that many times. Even taking on those wanting help to leave CF only to see the light after our work. Sometimes, though, that is very difficult to do because the client has gotten enmeshed in one of the paradigms created to improve ColdFusion, a framework perhaps and either it was never load tested properly before roll-out or there is a misunderstanding from the client as to how it should be used. Either way, ColdFusion suffers and in the worse case scenario, we lose a ColdFusion user. This is the worst of all worlds because the creator of the paradigm spent many, many hours creating it to benefit all of us, hours not paid for and the client/user spends hours of frustration trying to figure out why there is instability and failure. Here are some small steps that could help in all of this, from my experience.
- If you are going to create something that could be widely accepted please consider the consequences/maintenance needed. In its heyday, FuseBox had a council and a good number of heads working on it.
- If your new paradigm is made to work with others already out there, find some way to load test them together, applications under load behave totally differently to those under no load at all.
- If, as a user/developer, you are going to commit your organization to embrace a particular paradigm/framework, please see what level of support there is and will be. Unlike FuseBox many of the current paradigms completely consume your application and it becomes virtually impossible to move away from such a paradigm. Code organization is a good thing and paradigms such as Hibernate are very widely supported, for instance. We cannot realistically expect one or two persons to support and maintain something for ever, whilst having to earn a living. Also one or two people cannot consult to the whole CF world.
- Also, if I can help with anyone thinking of putting some paradigm out there for the CF community and I have the breathing space and time I will try to help, we have a load testing lab but I will need all the necessary pieces and instructions.
My last points are these, it is far better to use paradigms that Adobe or at least a large community support, even if they are not quite as feature rich and simplicity is almost always better.