I spent the day in Washington, DC today (thank goodness for air conditioning!) meeting with various government agencies all of whom use ColdFusion. I love spending time with government agencies as they tend to be a microcosm of the real world – all sorts of developers with all sorts of needs and all sorts of skills all trying to be productive with limited budgets and looming deadlines.
I met with three different agencies today (and will meet with more tomorrow and Friday), and what struck me was the complete extremes among ColdFusion users. One group was using CFMX for J2EE and wanted more structure, and integrated frameworks, and built-in support for MVC, and explicit data types, and greater access to Java. Another group was still at CF4.5 (looking at CFMX) and is very happy building full blown content management systems minus CFCs or even Custom Tags. And yet another group is at CF5 (about to roll out CFMX) and is intrigued by the new features but really wants more basics, nuts-and-bolts stuff like better control of applications in shared environments, and simplified data-entry screens and drill-down screens and reporting.
As I said, a microcosm.
Which begs the obvious question: What should ColdFusion become post CFMX? Which features should it concentrate on, and for which audience? Should it stay true to its initial mission of simplicity and productivity (is there still a demand for this), or must it become more hardcore to appeal to enterprise users? And either way, what are the features it needs, and at what point must we say “this is not a job for ColdFusion, extend ColdFusion with Java (or .NET or Web Services or whatever)”.
My gut feel is that ColdFusion needs to get back to basics. Sure, XML and Web Services for example, are cool and in vogue, but for the most part these are still being played with as opposed to being used. ColdFusion has great support for both XML and Web Services, and this support must be enhanced and extended. But at the same time, I don’t think that these can be the primary emphasis for ColdFusion. It seems that most developers are still building the same old “data in and out” apps using half a dozen tags at most. ColdFusion was the first to simplify this type of development, and to this day no other language comes close to ColdFusion in this space. If there is still a need for this, and it appears that there is, then this is where ColdFusion need to concentrate – doing what it does best, and doing it even better.
Or so I think.
Agree? Disagree? Either way, I’d love to hear your thoughts on the subject.

29 thoughts

  1. To be honest, I tend to think that CFMX has just about gotten things right, in theory (still some kinks of course). CF definitely still shines for the data in/out type of apps you mention, but I for one appreciate the more advanced features and I think it allows one to work in either space. And it is still very simple and very productive in my opinion. So I feel that nothing is compromised as far as the original vision, I still can”t find a language that can do what it can natively do even as of Version 4, let alone the new stuff, so fast and so intuitively. I think staying current with the feature set enhancements while keeping the simplicity is a great place to be. Pro will always work for the smaller shops who use the small tagset you describe.
    I also think that CF _needs_ to get itself more into the Enterprise space in order to maintain some longevity and quite frankly, it”s because it costs so much money! Can it compete at a "lower" level against the supposedly-free ones? Not with the price tag, no matter the power, productivity or simplicity. People love free stuff even if it means going out of their way for it. ASP and PHP are both chock full of 3rd party commercial (ASP) and OpenSource (PHP) vendors of components and libraries that take some of the pain away for these developers as well, but many of them will fail to see the advantage of pure programmer productivity and so will not feel compelled by the argument. What to do? Either offer a free one (CF Express failed due to it being castrated of anything powerful at all) or go for the Enterprise, or both! I”d like to see more 3rd party vendors out there offering the same level of value-add products (components and developer tools in particular) that virtually all of the other languages have, but for some reason CF seems to lack on a large scale. That onus is on us, though, not Macromedia.
    Another thing to consider is that MACR wants to make money off of CF just like any other product vendor, and the smaller shops aren”t getting it done at this stage, which is why I think we”ve seen the CFMX/J2EE, FlashComm Server and RIA initiatives.
    If you aren”t tired of hearing me ramble yet, I have a similar-themed essay that I wrote recently here: http://www.cfoop.com/resource.cfm?view=VBSyndrome

  2. I would agree that by and large most business CF development is still what it used to be. Web services and all the new stuff are still new and being experimented with.
    I totally agree with Scott on the price. I understand MACR needs to make money (duh) and even though Time to market is shorter with CF apps and ROI is generally very short, companies are cheap. Especially in this economy. CFMX Pro is what? $1299 or something IIRC.
    What I think really hurts CF is that it”s price keeps it out of local implementations. I am working for a company right now that sells a system that uses a web browser for the application. I wanted to build the app and interface in CF, but dropping $1299 on top of the price of the unit prices us out of the market… It would be great if there was a CF Lite or something for local implementations. Maybe less features. Less connections (10-100) something. THere is a huge market (I think) for devices that are sometimes connected but use a web interface. CF could excel there instead of leaving it to ASP unchallanged.
    just my .01897 (this economy sucks. My opinions are worth less now)

  3. I think this is really about what kind of developers we are, and what kinds of work we do.
    I think Java, XML, Web Services are nice extensions of things we can do with ColdFusion.
    But at the heart of it, and why I am still a fan, is the dedication of making it a Rapid Application Development language/server.
    But the problem, is that we can get so heavy into adapting to new technology, that sometimes new technology may not necessarily be good technology.
    But life is about change, so we do have to come terms with new technology.
    But for me, If I were in charge of ColdFusion. I”d focus on improving efficiency, performance, stability and scalability. Because in reality, who cares if the app uses the latest technology, if it fails all the time.
    I guess this is why I am a Purist, rather than Gui Coder who uses Dreamweaver or FrontPage.
    P.S. I love this economy, because it forces us to work harder, and be more creative capitilists! 🙂

  4. I feel that MACR has been moving in the right direction, keeping the basics simple and providing new features that allow developers to extend functionality via CFCs and Java.
    What concerns me is how ”everyone” seems to be wanting to make their applications Java-like, instead of a simpler OO, modular approach. For example, using STRUTS in a CF app, or FuseBoxMX. Those approaches seem to making development move sophisticated for sophistication-sake.
    What happened to simplicity? This is where CF rocks? Making the mundane and the complex simple.

  5. Mr. Forta,
    Just wanted to thank you again for coming to visit us at DS today, it was extremely nice of you to take time out of your schedule.
    Anyways, just wanted to say that, and that I got off my rear and wrote a UDF to do batch CFPARAM”ing. 😛 🙂
    –d.

  6. I”m sure not too many will currently agree with my position, but it think Macromedia should do with CF what SUN has done with JAVA…. Make it Open Source. CFML is such a simple yet powerful web development language, that it would benefit everyone (especially me 🙂 if it were available for any web developer (ASP, .NET, JSP, PHP, PERL) to develop applications in. Each app server can build its own interpreter or compiler for CFML, and MM can control the licensing and certification of each release (just like SUN). By CFML I mean the core tags and functions, not the add ons like verity, Cluster Cats, ETC.
    I think CF is being strangle-held by the stigma of its competition with asp, jsp & php, and that it will often be the most expensive option (not really, but you know the stigma!)
    To open CFML would be to broaden its horizons, and in-effect make it Much Much Much more popular (and MM in turn). After the release of CFMX I can not understand why people would build data-in data-out applications in JSP, or even more unnecessary, servelets and beans… for the same reason it would not make sense to do so in ASP.NET if you could write it in CFML, and have it interpreted to .NET by a tool Microsoft has developed.
    BTW, I am not worried about MM. Flash has enough traction that it is never going away, but only getting cooler and cooler (ok, the DCK has a ways to go, but it is major progress). We should be concentrating less on what app server we are developing on, and more about what medium we are serving to. Flash is the future, regardless of whether or not .NET goes away, or beats JAVA.
    Now back to your regularly scheduled programming…

  7. Well, support for the CLR would be indeed great :-))
    I would prefer to see next release go back to the basis, improving the RAD factor for the average developer. The Java integration is great and it”s really helping me pushing the limits of CFML but it”s time to go back to the roots.
    Personally I would love to have <cfimage> and improved caching. I also know for sure many developers ask for heavily revised <cfform> and Flash based versions of <cfgrid>,<cftree> and <cfslider>
    Massimo

  8. yes, flash widgets to replace cfform, etc. would be great but so would:
    – support all java locales
    – non-wimpy javacast
    – and of course support all java locales

  9. Well, for one thing, there are bugs in CF that really do need to be fixed. Not a lot, but some are very subtle that don”t show up until we move the code over to the newer CF version. Also, there needs to be a heck a lot more documentation coming from Macromedia.

  10. Talking about JavaCast, interacting with Java from CFML I really fund the need to handle NULL, a CreateNull() or the ability to create a NULL with JavaCast would be handy. Of course, we are talking about details here, not the big picture

  11. A couple of you mentioned the CLR. So, question …
    If an organization has made a commitment to .NET would they even want ColdFusion? Put it this way, the .NET framework is "free", .NET comes with a choice of development languages already all of which are just as free … will any Microsoft centric shops actually pay for what will be essentially an alternate language?
    I am neither agreeing nor disagreeing with the suggestion, but I am intrigued to hear if you think that this would actually sell (so as to be able to justify the effort).

  12. In the past ASP was "free" with Windows servers, but CF managed to survive pretty well anyway, I don”t think .NET would change things too much, but I am not into sales/marketing.
    The reason why I would love CLR is to be able to leverage the growing amount of .NET components, just the same way I used to do with COM in CF 4 and 5.
    One of the reasons I use CF is because it”s the most agnostic solution for web developing, I can integrate Java, COM, CFX or whatever. Now, while I am really enjoy the benefit of having J2EE under the hood, I think CF MX isn”t anymore a 100% "neutral" tool, since there is no CLR integration that allows me to leverage .NET as I do with JRE

  13. I think that there is a bit of a catch 22 at play with .NET support. The benefit of CLR support to me is for folks who already have an investment in CF, and want to leverage the .NET runtime architecture. This is probably because they have developers on staff who are proficient in VB.NET or C# I would imagine, just like the benefit to an organziation who has Java developers. I”d love the ability to have CF truly be the glue in the middle as it was even advertised at one point by MACR. Not jumping into one camp could be beneficial for the platform, it definitely makes CF stand out.
    That said, I don”t think it will open any doors for orgazinazations without a prior investment in CF, as per the price issue we have mentioned before. Maybe on the Java side, but not on that side! So it would be solely for the benefit of existing customers IMHO. Would it be worth the effort? Hmm…

  14. Just to add some comments:
    1) Java is not OpenSource;
    2) CFML is not proprietary;
    3) What about BlueDragon from NewAtlanta?
    []”s!
    Alex

  15. It”s not propietary? How so? Macromedia made it an owns it, it can be expanded but you can”t edit anything already created.
    NewAtlanta rebuilt each tag if I”m not mistaken.

  16. What do you mean whith "rebuilt each tag"? The fact is that NewAtlanta copied CFML sintax which is not proprietary. AFAIK NewAtlanta doesn”t pay any cent (royalties) to Macromedia for it.
    Quoting Forta”s CFFAQ.com:
    No, ColdFusion is not proprietary. In fact, there are several other products (from other vendors) that have implemented CFML (or parts of it). In addition, ColdFusion leverages all open and public standards for everything from database integration (JDBC, ODBC) to configuration files (XML) to underlying architecture (J2EE). In fact, some might argue that ColdFusion and CFML are less proprietary than ASP and PHP (which are not supported by third party servers) and even Java itself (there is no licensing program or fee required to be ColdFusion compatible).

  17. In response to Bens question.
    I agree with Massimo that ASP was free but still folk bought CF, heck JSP is free but folk pay for CF. If the features are there and CF can hold its own aginst ASP.NET (and I am sure it can) then a CLR model for CF would work (as much as a JVM one has) and folk will pay. I guess the acid test for this will be Blue Dragons entry into the CLR world for CF but by getting there first they can target CF users who are interested in using the CLR and JVM and existing CLR users who have gone to ASP.NET.

  18. In response to Massimo, Andrew, Scott, and others …
    (For starters, these are my opinions, I am not talking for MM here).
    Yes, CF did well in an ASP world. But .NET is not ASP. .NET developers do not consider themselves to be ASP.NET or C# developers, they are .NET developers. The awareness and commitment to underlying .NET is important, these developers use the .NET framework and .NET languages and so on. I quite agree that existing CF shops would like the ability to run CF in the CLR, but will a CF/.NET help drive any new adoption? A CF/.NET port would be very expensive, and for Macromedia it would likely be an unjustifiable proposition if all it did was make existing customers happier. Not that I have anything against making customers happy :-), but honestly I think the port would be too expensive unless there were a chance of growing the customer base. And thus my earlier response: If an organization has made a commitment to .NET (make that an organization not currently using CF), would they even want ColdFusion?

  19. That”s a good point regarding expanding the customer base versus satisfying existing customers. In that light, I definitely agree that it may prove to too expensive in the long run. I wouldn”t complain if it didn”t happen anyway, I”ll tell you that much! I definitely think CFMX for J2EE has enormous potential, though, mostly because it raises the level of abstraction for a Java developer significantly – like amazingly so.

  20. Ben,
    Interesting thought, can CF compete if its CLR driven. True .NET programmers do not consider them selves C# or ASP.NET programmers but what market would CF target, C# programmers, ASP.NET programmers or .NET programmers. I would say to them all….use ASP.NET syntax, look at this CF code, look at how much easier it is and does just what you want, in a lot less lines. Want to go high level with the CLR, look at the rich CF API to interact between the CLR and CF…and look at how easy it is to create CF components…in any .NET language you want.
    Could you appeal to .NET programmers, sure, offer them what they already have, offer them much more and let them do it in a quarter of the time (a killa step would be to offer a CLR version of CF running on say Mono and pip ASP.NET to the post) Could you appeal to CF programmers, sure you could, as with CFMX->Java do they use MS technologies, COM, .NET already? With a CLR model they can continue to use those technolgies but get much more out of them with a CLR driven CF. Going further maybe offer them features that are a part of the CLI its self, GC, strong type system, CLF etc.
    So personally I think you can target both, it would take measures of education and marketing but I don”t see why not.

  21. Thanks for the clarifications Ben. I see your points and, not being able to quantify the resources needed for .NET integration I am not able to identify the cost/benefits ratio…

  22. I”ll put my last piece in here by saying that in my opinion, the biggest obstacle to .NET developers adopting CF is the Microsoft culture itself. Most MS shops these days are just as banner-waving as the most ardent OpenSource or Java shop – they are rallying around their flag in the belief that it is _the_ platform. MS shops LOVE Microsoft. It”s almost sick, but it”s true – by and large, they buy in lock, stock and barrel to the MS way and look only as far as the marketing-slick magazines that steer them along the path. It doesn”t matter if something is free or saves them a lot of time or is more powerful – why would they even consider it? How many MS shops are using any other language that has been ported to .NET other than VB and C#? Not very many, if any at all. So to answer the question last put by Ben – no, if an organization has adopted .NET, I don”t see them placing any value on CF – or PHP or Python or Ruby or anything else. Unless Microsoft buys Macromedia!! Ouch, just kidding. I know that was lame! 😉

  23. I do like the idea of going back to the basics.
    Sometimes we can get so over-extended that we lost site of our vision our goal or dreams.
    To me it”s simply rapid application development.
    It”s not a buzzword, just means that the faster we can create web applications, the less money it costs in time.
    Sometimes I feel, unless it is a trend or is impractical or costs a lot of money or has a lot of buzzwords, people refuse to consider it.
    I think that by now we have learned that we need a strong common sense to make sure our solutions and suggestions make sense both in the short and long term.
    Where do we want to be in the next 10-20 years?
    I do not think java or .net or oo is the wave of the future.
    I think matching common sense aka learning from the experiences of all the mistakes that have been made, and honestly aiming towards more stable, more scalable, more long lasting application language, that serves long term and short term goals.
    Being cool is not as important as something that gets the job done, and it stays done.

  24. I don”t believe it”s as cut and dry as a choice between "nuts & bolts" and more elaborate enterprise level integration stuff. I think MM has no choice but to extend BOTH roads…
    An example for enterprise stuff…the cfadmin. Currently folks running multiple instances of CF over J2EE are dealing with a gajillion CF admin interfaces to administer their app environments. Would be nice if you could log into ONE and have all the other CF instances registered there so u can make global changes. (i.e. like the session buddy system based on JNDI perhaps?) – I”ve already submitted this as a feature request some time ago…
    One could argue that the market doesn”t yet justify putting the time and money into features like this but u have to realize that yall need to FEED this market in order to popularize the CF platform. Enterprise folks will comb over the product looking for the types of features I mentioned previously.
    Cheers!
    Stace

  25. I pray everyday for IMAP support in the new CFMX release (CFMX 6.1 RedSky). Nowadays I use 3rd part CFX components to handle IMAP4 mailboxes, but they do not satisfy me completely.
    I guess the IMAP support would be great and would complete the CFMX set of networking tags, as POP3, SMTP, HTTP, FTP and LDAP related tags.
    Hope this enhancement can be added soon.
    Rogerio
    PS: Forta, when are you going to visit Brazil again? I attended your MACR conference in São Paulo last year, and would enjoy meeting you again to discuss CFMX! Cheers.

  26. Make scripting more robust, right now you are limited to what you can do. Why should I have to create a UDF to wrap around a cftag and call it just to get the cftag functionality in a scripting environment?

Leave a Reply