Does ColdFusion's Cost Inhibit Its Development?
The important distinction here isn't the price, per se, because these businesses can generally afford the costs. The issue is that in order to sell Mrs. CEO or Mr. CTO at Acme we need features they can appreciate to justify the fact that the up-front cost of ColdFusion is high when compared to the other options that are "free". The problem here lies in the fact that developers tend to focus on language enhancements within each new version. However, Mrs. CEO or Mr. CTO at Acme don't generally appreciate language enhancements, or even if they do, not to the tune of $7,500 per server or even $3,750 for the upgrade. Thus, each new version ColdFusion includes any number of features intended to impress the person holding the purse strings more so than the developers using the product.
This is not to say that language enhancements don't make it in, because they do. However, you've probably heard this line from Adobe directly, something along the lines of "...but your manager won't pay for that feature." In fact, if you were at the ColdFusion 9 BOF at cf.Objective(), some variation of this line was uttered by both Tom Jordahl and Jason Delmore on different occasions. With each new version we get features that look great in a presentation and help sell the product to Mrs. CEO or Mr. CTO at Acme but don't turn out to be very useful in the end. For example, my list would include Flash forms in 6, Eclipse wizards in 7 and Ajax integration in 8 (yes, you heard me...integrating the latest version of Ext and using it without CF is easy enough that the tags don't maintain their usefulness in my opinion). Anyway, the point is not to debate whether you agree with my list of less than useful features but I think most of us can agree with the premise that these features exist. Some of us developers, myself included, may even have been initially enamored of these features during the initial presentation of them but eventually came to see them as more gloss than substance.
In the end, time and resources were allocated to these features over others, such as language enhancements that might make us more productive. Each of them has a "wow" factor in a presentation and probably serves its purpose to sell server licenses to Mrs. CEO or Mr. CTO at Acme but doesn't actually get used much in the long term by the developers. My point here is, does ColdFusion keep adding these fluff features eternally in order to keep justifying the purchase/upgrade cost? It seems to me that because they don't need to justify their price point, the .Net's, PHP's, Ruby's and JSP's of the world can focus on what the developers need/want than what will help sell their language to their managers. So, after taking the long road here, my question to you is, does the fact that ColdFusion has a cost in a space filled with free options hold back CFML's language development or lead the product down the path of bloat for the sake of managers rather than developers? Is it valid that we are asked to consider "would your manager pay for that feature?" Opinions please.
I'm not up enough on how much of this decision is still driven from the managers down vs. from the developers up. I know that it used to be whatever management's fickle eye turned to, that was what you did. Nowadays I'd like to hope that they place much more realistic emphasis on actually gathering real information from the people who have to use the tools. Maybe I'm living in la-la-land and it's just as management-driven as ever. But regardless, the answer to these questions would seem to be, at least partly, the answer to your question as well.
Not sure what the sub-licensing cost of the bundled components is, but Verity, for instance, could be easily (and positively) reoplaced with Lucene, for instance.
I suspect Adobe does the same. Further I am not sure that resources were taken away to do other items more glamorous features. I don't know their engineering team, but they have many members working on various parts from what I hear.
That said I think CF9 or whatever they call it will be the true test. It will be the first time Adobe has been involved from the start and thus a good indication of the direction Adobe plans on going. Will they go for a model of just maintaining current install base or go for new markets? Will they go for sexy new innovative features AND robust improvements to core stuff and improve the language in ways that are useful but difficult to justify to CEO? Will they release updates more often? Can I fit in more run on sentences and questions? Etc.
<i>"But as a commercial software developer there are indeed times we add features as they help sell, and features that make the product better all the way around but are not sexy for upgrades. Those fundamental changes but not key selling features help sell the product to new developers, but not for upgrading existing non tech clients."</i>
Being in the same boat I agree completely.
Also some features always fall flat on their faces so I'm not sure its fair to say that those features have cost us language development.
The line Adobe takes is appropriate in most cases. I appreciate that Adobe also still understands the value of preparing a RAD system....I agree with Brian that Ext is easy to use, etc, but the additional decrease in development time for people to use neatly wrapped tags is still a draw...not everyone is as comfortable in their programming shoes yet and can knock out other libraries. I have to be mindful of the experience of the resources I get to use and what they can efficiently deliver. This approach of RAD code with the power of going nuts under the cover is a feature to me, and in many ways I frame the discussions in my world of presentations.
Of course, I deal in federal-land where such arguments are more required than I wish. For smaller shops, we have tended to offset these issues with semi-dedicated hosting or something similar, in which the month-month costs of renting a CF Ent license is more palpable. You can do that with Crystal Tech.
I used to believe the price was a detraction, but with free developer editions, free tools in Eclipse, and a tremendously powerful platform available at appropriate price points I think is another reason CF gets the 2008 awards and the growing attention and respect it deserves.
More Kool-Aid Please!!
Let's say Adobe makes ColdFusion free. So now the choice of the CTO (with cost no longer an issue, the CEO can go home) is between ColdFusion, .Net, PHP, Ruby, etc. If he has no in-house ColdFusion developers to influence him or her, what's going to make that CTO choose ColdFusion over the other choices? The easy-to-read syntax or the ability to generate a PDF with a few lines of code?
Even if ColdFusion were free, it would still need to offer features targeted at management-level decision makers that make it a more attractive option when compared to competing technologies.
None of what I just said has anything whatsoever to do with CFML as a language. The Java model has worked differently for years: cooperate on standards for the language, compete on implementation of these standards. ColdFusion the product is still too wrapped up with CFML as a language in my opinion for this to be such a clear issue, and frankly because of the lack of standards this has, again in my opinion, squelched the adoption of CFML as a language because of the single proprietary vendor issue.
The second main point I'd like to make is that by its very nature and being driven by numbers and profit, ColdFusion is looked at VERY DIFFERENTLY than an open source effort that is focused more on--and DRIVEN BY--the developers that use the language. The difference in what drives the decision making process between these two models can't be underestimated. If you're driven by profit you're going to go for the features that impress the people who write you big checks. If that motivation simply doesn't exist in the DNA of the product, radically different decisions are made.
Let's face it: scripting languages are a commodity. In my opinion the days of paying for the privilege of writing a CFML tag are seriously waning. Where Adobe CAN still innovate and drive the almighty profit is by giving CFML developers for-pay add-on modules to a base CFML language engine. Need cfvideo? Buy the video module. Don't need it? Fine, don't buy it. The trick? People tend to not pay for stuff they don't need.
I have very grave concerns about the path things seem to be taking with ColdFusion as a product and I personally think it's time Adobe hits the pause button and really thinks about some of these issues before blindly forging ahead and cramming everything they can think of into ColdFusion 9.
And I say these things with all the love for ColdFusion in the world. :-)
I agree with the financial aspect of this product but on the condition that it is not the sole reason CF is not as successful as the other current dynamic languages. I believe it is one of a multi-folded issue. With that, I think it is one of the minor aspects.
Moving from Boeing (who is one of the largest customers of ColdFusion and has been since 1.0) to Disney (who uses CF very little internally for IT at the Studios in Hollywood) has forced me to look at ColdFusion from a different angle. Don't get me wrong, I still use it for all my projects outside of work at Disney. However, I have been exposed, and forced to work with other languages as Java and PHP (which I've know for a long time but have chosen CF over them).
Brian made a very profound statement with the mention of CF being sold to managers, not developers. Sure we, as a community, are all sold on the product because we know and love it so well; we realize its benefits. As developers, however, the benefits that we see in the language are the benefits that have been there all along: Easy database connections, rapid application development (though not when using OO concepts), etc. I say all along because these items are what brought CF to the table as a benefit for developers. What I don't see, however, is outside developers coming to the ColdFusion world because they like it's AJAX integration, PDF creation capabilities, and it's new cfinterface tag. I agree fully that they are fluff features and that perhaps the time to create these could have been used to foresee the big Web 2.0 picture and get on the band-wagon with a more solid scripting architecture as well as making the language be more grounded in object-oriented concepts. I don't care what anyone says, I truly, honestly feel that programming in a true strong MVC way, is kind of painful with CF. I feel like there is a lot more that is involved and it almost feels forced. I can't pinpoint exactly what I am feeling. It comes from me working with ActionScript a lot lately. I love programming in AS 3.0 because of how easy it is to follow the true MVC paradigm.
One of the main barriers of entry that I see for this beloved product of ours for non-CF develoepers is it's relevance in today's online development world. Adobe needs not to only get the opinions of its loyal followers but it needs to reach its respected roots out and tap the shoulders of Ruby, Java, .Net, Python developers and ask them, have you ever heard of CF. If they say yes, ask them why they don't use it today. I think they will get an answer that they did not expect to hear. Or maybe they will expect it, and that is why these questions have not been asked today. I'm not real in tune with Adobe's effort to do this, perhaps they already are/have.
Let me say that by doing the above would not only clear up about things that are true about ColdFusion but I think what it will really bring to the table is what is not true about ColdFusion. What are the misconceiving thoughts about the product that have been upheld since its earlier days.
I was thinking about this a while back and came to an interesting blog post by DHH, the originator of Rails. He was basically saying that every aspect of Rails had derived from a need for that particular feature, there was no pre-planning of what people /might/ want, but what they needed at the time, And as the industry evolves, so does the platform. Add to that the open-source nature and that anyone can customise stuff how they need and it's looking pretty rosy.
Now, if you take a look at ColdFusion, it's the other way around. Adobe will be constantly trying to 2nd guess the community on what they /might/ need six months down the line - and whether they are worth spending the resources on (i.e is there the ROI). This means you end up with a slightly warped view on the developer needs. It's never far off, but it's never quite there either.
There has been some stuff mentioned on various blogs about potential CF9 features that I find nasty sounding (CFVIDEO anyone?). They won't help developers at all day-to-day (except a minority), but it definitely gives Adobe something else to put in their keynotes....
@Matt hell of a response can't say I disagree with anything you say. Heck I had some of the same thoughts. I won't link spam but I had a post about why even Adobe should love OpenBD. It centered on the plugin architecture of OpenBD and how they could be a plugin vendor.
@Matt Woodward, i don't disagree with you at all
but to add enough perspective ... I've seen this all before. this "dissent from the ranks" from people at the coal face...
... a f'instance:
years ago when I was a VB6 programmer, there was a hell of a stink in the community over this VB.NET thing.
don't forget, VB was both a language and a platform: remember VBRUN.DLL?
anyhoo, People walking away from the language in dusgust at "what Microsoft had done" with changing the next version of VB to be totally incompatable with the old. They totally missed noticing the .NET framework
as it turns out, VB.NET is one of the best things that could have happened to the language. It was finaly able to throw off it's BASIC shackles and really _breathe_ as a language.
but what is VB.NET? C#? they're just enablers into the platform. it's ALWAYS about the platform. Java platform, .NET platform... Adobe platform?
I just can't get Adobe sometimes. between stupid ideas of attaching the Acrobat brandname to the Connect collaboration tool thru to confusing the issue with WTF the LiveCycle branding is: is it PDF's? is it workflow? is it BlazeDS/data services? Is it ColdFusion10?
Bite the bullet, Adobe. Set up the Adobe platform based on LiveCycle with ColdFusion as a bunch of componetry within it. and CFML as an enabler to get to it. or AS3.
meanwhile I'm getting back to the other side of the equation - cross-platform integration: AIR consuming authenticated .NET webservices...
which bring up another point: the lack of seriously good killer open source apps in the CF world. The FarCry application framework (used for the FarCry CMS) is a good example but there's not a lot else...
(although there is the CHUG app, very handy for user groups...)
The 'free' options may be free, but more importantly they're also more widely supported. PHP has a great number of open source projects driving its adoption. Java has both open source projects and commercial grade tools (e.g. Eclipse, Infragistics) driving its adoption. C#/VB.NET has commercial grade tools (e.g. Visual Studio, DevExpress, RESharper) driving its adoption. ColdFusion has high prices, much fewer open source projects, and comparatively much weaker tools.
I suggest that J2EE+Eclipse+3rd party components and tools that are developer priced instead of server priced are potentially more productive and cost effective than the ColdFusion stack. It is also possible the same is true of the .NET stack.
Why pay a premium for server software when there isn't a strong supporting ecosystem? On the other hand, you can get strong ecosystem elsewhere, and not even pay for the server software. Also, let's not forget that ColdFusion is only a layer on top of one of those strongly supported ecosystems...
The value add of ColdFusion used to be in RAD, but now it is more in the added functionality, unfortunately that added functionality is often a surface level 'wow' feature that doesn't really deliver when you get in deep enough to add significant business value to your project.
Yes, the high price is preventing some adoption, but that's not the key problem, the key problem is the relatively anemic surrounding ecosystem.
Quick 2 cents:
Why doesnt Adobe just make it the CF server Free, open the SDK and create a CF Builder IDE like FB3/Eclipse Plugin, with all the CF8 "components/capabilities" in WSYWIG style, plus code view, debugger, etc...
They would make more money in the long run, because one server lic... servers multiple developers... while one IDE serves one developer.
Adobe needs to stick to the tool side of the business for $, and keep developing/improving platforms (Flex, CF, Flash) to drive the need for the tools.
Wouldnt that solve this "cost" problem?
PS: I know there are other things that were brought up in this feed about CF in general, I am still pondering that before I post
My thinking may be a bit off here, but here is where I am coming from.
Two Assumptions I am making:
1) There are more developers than servers
2) Making a platform free would increase its popularity
So if both of those are true (maybe there not), Adobe would make more money in the long run having a free platform, with paid support and/or paid enterprise version. This would drive the need to use a CF IDE that had more functionality than say CFEclipse.. I am thinking more on par with Flex Builder 3 (and the Flex 3 Eclipse Plugin).
I think some of the discussion here is somewhat related to the future direction of CF and having a CF SDK so any good Java developer could improve and add new features would be very beneficial.
Now I could be totally wrong here, this was just an idea I was throwing out there for discussion which I think is related to Brian's original post and some of the comments.
Its a big risk doing that because there is no for sure way to know that they will make more money. But adobe is wise to at least consider it. Who cares what part they sell. If it means less direct/indirect cost to them and increased revenue then thats the right path. If the total profit is about the same then go for whats best for the developers or long term growth/sustainability. That said I would be ok with either model but prefer the $ IDE path. I think that will help with product adoption and overall market share growth.
While I feel that Adobe shouldn't totally ignore the manager/marketing aspect when considering the feature roadmap, I think that the "developer" centered features are much more important and should be given the most attention.
Why? Because ultimately Adobe needs to satisfy and pander to the developer's needs and wishes. Sure, a CTO/CEO/manager might be the one that "officially" makes the purchasing decision, but hopefully that's after discussing it with their developers and following the recommendation of their developers.
I think it's becoming obvious that many CF developers are getting frustrated because there are improvements that could be made to CF that would make their lives easier, their products better, and shorten development time. But instead, most of the time and effort of late seems to be focused on flashy features that are of marginal use to most developers.
Ultimately, if developers become dissatisfied with ColdFusion it will fall into obsolescence. This is because no matter how appealing it is to the CEOs/CTOs/managers they're not the ones using it and writing the applications. And if developers don't want to use it, it matters very little how much your management team is willing to pay for it.
One the other hand, if developers totally love ColdFusion and it's meeting their needs, their satisfaction and outstanding applications will speak for themselves. This satisfaction and enthusiasm will filter up to the managers. Any smart manager will recognize this and that should be enough to persuade them.
"Why? Because ultimately Adobe needs to satisfy and pander to the developer's needs and wishes"
cough! Steve Balmer (from MS) prancing around the stage shouting "DEVELOPERS! DEVELOPERS! DEVELOPERS! DEVELOPERS!"
"Sure, a CTO/CEO/manager might be the one that "officially" makes the purchasing decision, but hopefully that's after discussing it with their developers and following the recommendation of their developers."
not from what I saw in a v.large enterprise I recently worked at. the decision to EOL CF for new (small) apps in favour of ASP.NET was from a report by a bunch of Java guys threatened by CF's rad capabilities. They were also factoring in the existing investment in .NET with Sharepoint and other MS app integration. Why get CF to integrate with Exchange when .NET can too?
Yes, I agree Steve Balmer isn't a very good dancer. ;-) But I contend that the presentation of his message doesn't affect the validity of it...
Just as a website should be designed to meet the needs of its users (and not the whims of the organization funding it's development), a development platform should be designed for those that will use it (i.e. developers) and not for those individuals who make the purchasing decision. I believe that over the long run, this is the best way to ensure the success of the development platform.
As for your previous work experience, of course there are going to be organizations that make decisions for the wrong reasons. Again, smart managers would base their purchasing decisions on the recommendations of their developers. Otherwise they risk having dissatisfied developers who choose to leave the organization, just as you did.
My second point, when integrating with open source js libraries like YUI, Ext etc for the new AJAX features, have FLEXIBILITY and performance in mind, not a one-size-for-all solution, because the current (cf8 or cf8.0.1) ajax related tags looks pretty cool but less than desirable in performance IMHO, cooking up one's own (by developer) requires resouce relocation, think of "Opportunity Cost"...
Thanks.
just trying to summerise:
- that price is *still* a pain-point.
- that there's starting to be a bit of a blowback from features-driven releases? (although just what is going to be in a new release? maybe some improvements to existing limitations? COUGH! cfpresentation. COUGH!)
- that a strong focus on the developer and the development process is the way to go? (how? IMHO, being able to modify the code generation in the Eclipse plug-ins would be a help)
- that there's a real shortage of open-source apps to increase adoption (for whatever reasons: http://www.coldfusionweekly.com/index.cfm?event=showArchive#3-08 (32 min in): IMHO "free beer" apps seems to have helped PHP, and will probably help RubyOnRails in time. see: http://vincentcollins.com/2008/05/19/coldfusion-community-what-gives/)
- that the "on-the-ground" Adobe sales staff in my region seem to be interested in pushing the LiveCycle enterprise suite and are ignoring CF (which wasn't brought up but I thought it'd throw it in)
what else?
I'm just saying that there's a chance Adam Lehman is reading this - what's the impression he's going to get out of this thread? hopefully more than CF ppl are a bunch of whingers...
When Adobe asks "will your manager pay for that?", what they are trying to gauge is how high of a *real* priority this feature request is. Adobe gets all sorts of feature requests, and often the squeakiest wheels are not representative of the larger community. Developers will ask for anything, even themselves sometimes knowing that a particular feature will really only solve an edge case. A lot more goes into each decision Adobe makes than just ROI, but features without tangible ROI (that won't drive upgrades, that will only be used by a small percentage of users) have to be balanced by sexy manager features to guarantee that the next version does sell, so development can continue.
I can say with some certainty that a lot more people use CFAjax than use CFInterface. The CF team knew this, but still gave us both. Adobe builds features like CFInterface and JS operators to make developers happy, and CFAjax and CFPDF to make managers happy, and performance gains, because they rock. I think it's easy for us (developers) to forget all the little things we asked for - and got - just because the marketing pitch doesn't hammer them in.
I'm wondering if the release cycle is producing too many versions too quickly?
"what, we gotta upgrade again?"
I remember Borland copped a fair bit of stick over their fast paced release cycle with JBuilder.
I know the August 8th release was nearly a year ago, but it doesn't feel that long...
Now we're probably stuck. If Adobe DOES release an IDE can I go to my manager and explain why I need this tool when I already have Dreamweaver and CFEclipse? Can I use that editor to build OpenBD apps?
Why doesn't Adobe contribute to OpenBD? Help build a generic CFML IDE! Then everyone gets a 'free' version of CF and Adobe wouldn't have to alter any of it's existing products. People who need more features can then look towards Adobe or New Atlanta for more enterprise level solutions.
http://www.adrocknaphobia.com/post.cfm/managemente-operationse-developers-open-source#commentForm
@Jim regarding an IDE, if adobe built one then it would have to be substantially better for CFML development then dreamwaver and cfeclipse, or otherwise why bother building it? Therefore I think the pitch to buy it (if it costs money) will not be hard. Unless it sucks. :-)
From where I'm sitting, each new version has added features that have become critical cornerstones of projects. You might not use event gateways but I know of several projects for which they are absolutely critical (and, no, they're not all my projects!). I know of projects that are built on the CFAJAX stuff that couldn't have been built on time and on budget without it. I know of projects that rely on the PDF features.
Adobe - and Macromedia before them - have shown over and over again that they are driven by their customers, adding features that their customers want, as well as innovating by trying to leapfrog what their customers think they want to offer them what they might not even have dreamed about yet.
When folks learn more about Centaur, I think they'll change their tune (at least temporarily - some people seem to find something new to complain about with every release :)
Do I wince every time I sign a PO for a ColdFusion Enterprise license? Yes, but I wince every time I sign a PO for anything that costs more than a few hundred bucks. Do I think I'm getting value for money with ColdFusion Enterprise? You bet! Could I run my business on ColdFusion Standard? Nope. Could I run it on PHP or Ruby on Rails or...? Nope, not without spending a *lot* of money to build stuff that I have in ColdFusion out-of-the-box.
Your points are valid, however I think a huge part of this is perception, which of course trumps actual discussion of value.
Many of the items discussed feed that perception and it's long standing, or we wouldn't get the ColdFusion as Black Knight skits every 6 months...
*Adobe*'s CFML engine costs, but the things it can do and Railo can't is always narrowing.
ColdFusion is free for development - from all vendors - and only costs for (shared) deployment (right now Railo is not free for Enterprise edition and Adobe is not free for non-developer edition).
Sorry to be pedantic but there's a lot of confusion around both "free" and "open source".
Like Edward Smith, we wonder if the increased sales would offset the reduced revenue if professional was dropped to $199 and enterprise was dropped to $999.

