CFArgument: State of the Fusion
Posted on Feb 03, 2009
This week a short but provacative post by newly annointed Adobe
evangelist, Terrence Ryan, sends Peter and I on a discussion of the
current state of ColdFusion and CFML as well as the potential
opportunities that lie ahead this year. We ponder how to reach out
beyond our community to bring in new developers and discuss the
relevance open-source Railo and the importance of the upcoming Centaur
release. Most importantly, I nearly match Peter in verbosity for once
in this debate series. Does that mean I won the argument?
Brian Rinaldi
I was reading Terrence Ryan's recent post where he slyly tries to
compare the ColdFusion community to the Apple community. We in the
ColdFusion world seem to constantly be examining our situation in
comparison to other languages or pondering our survival in general.
Perhaps it relates to our changing owners somewhat regularly.
Nonetheless, I think if we look at ColdFusion's position right now, it
seems to me perhaps we are feeling safe now but lacking potential for
any significant growth.
I guess my question for you, Peter, is threefold. 1) Do you agree with
that assessment? 2) What can we as a community do about it? 3) What can
Adobe do about it?
Peter Bell
Adobe (and Macromedia and Allaire) have continued to innovate with
ColdFusion. Every new version brings a great set of new features to
make "hard things easy" and I'm particularly excited about new features
like Hibernate integration which could move ColdFusion to the next
level. However, I think there is a real challenge when trying to
broaden the community. I regularly present outside of the ColdFusion
world and when I mention that SystemsForge is coded in CF, most people
are incredulous that (a) ColdFusion still exists and (b) that I choose
to use it over Java, C#, Python, Ruby and Groovy!
As a community, I think we really need to broaden our evangelism. I
would like to see ColdFusion promoted at major Java conferences as a
saner alternative to JSPs. However I think that to draw people in
initially, it's going to be important for the community engines like
Railo and OpenBD to really push the adoption of ColdFusion outside of
the community. I'd also like to see continued cooperation between Adobe
and the community engines to grow the size of the ColdFusion market.
I also think we need to focus on easier and more comprehensive
integration with key Java frameworks like Spring. I see ColdFusion as
an alternative for quickly coding Java based apps and it needs to
provide integration with key frameworks and a seamless path for merging
Java and ColdFusion code to play in that market.
Brian Rinaldi
Well, you bring up a good point though. Not too many of us speak
outside the ColdFusion community and so many times our evangelism
amounts to preaching to the choir. However, as to your other point, it
isn't easy to get accepted to speak outside our community many times
because ColdFusion isn't respected in many circles. Thankfully we have
a big presence in the Flex community and many top Flex speakers and
writers are former ColdFusion developers, but they tend to be speaking
specifically to Flex and ColdFusion is a side-note.
So sometimes I wonder if our inability to broaden our audience is one
of those chicken or egg questions. Are we hindered at promoting
ColdFusion to outside groups because it isn't respected, or is it not
respected because we don't speak to these groups?
It doesn't help too much if the only people who know about the great
new features in Centaur are for the most part ColdFusion developers
already, and already committed to the product.
Peter Bell
Flex is a great opportunity and one I think Adobe is doing a great job
of focusing on. In terms of credibility, I think the JBoss announcement
by Railo is key. I really believe that they are offering the ColdFusion
community its "last best hope" of becoming a credible alternative to
JSP for front end development rather than just being the Rodney
Dangerfield of web scripting languages. I think that if Railo can work
with JBoss to promote ColdFusion in the wider Java development
community that could be huge for the community as a whole.
Brian Rinaldi
I agree, assuming Railo can break through that layer of bias. I often
wonder where our bad reputation among these communities came from. I
know people had concerns about scaling way back in ColdFusion 4.5 and
the initial launch of MX (i.e. 6.0) was somewhat disastrous until 6.1
was released. Nonetheless, I think if you looked at other languages you
might find similar bumps in the road of their development.
Peter Bell
Most people I speak to are just surprised that ColdFusion still exists.
I presented at a Domain Driven Design meeting in New York a few weeks
ago and when I mentioned that I spoke at ColdFusion conferences, the
genuine response was "they still *have* ColdFusion conferences?!". When
I explained that it's now a RAD, dynamically typed OO capable scripting
language for fast development of apps on a Java stack that is way
cleaner than JSPs, people got it. I think it's more a question of lack
of publicity than strong negative prejudices.
Brian Rinaldi
I also think its fair to ask why the onus for that initiative falls
upon a small company like Railo when it seems Adobe has the a lot to
gain if it succeeds.
Peter Bell
I think Adobe has been very supportive of Railo and I hope that they
continue to support their efforts to build the overall community. I
also think that Adobe has to stay on their toes (which is good for the
whole community). Given the substantially faster performance of Railo
and its great interface based features allowing you to do things like
cffile over FTP or to Amazon, I'm seriously considering upgrading from
the Adobe engine to the Railo one!
Brian Rinaldi
I am also glad that the relationship with Railo is not a contentious
one...and possibly a cooperative one, though I am unsure as to what
degree there is cooperation. I also suppose that it might afford some
of us the opportunity to look outward for speaking and evangelism
opportunities. If we can speak, for example, at a Java-focused
conference on Railo and get people adjusted to thinking about CFML
again, it may benefit ColdFusion as well.
Peter Bell
That's certainly something I'm hoping to get involved with! So, to
summarize, I think the core ColdFusion market is solid, and between
Adobes efforts to present ColdFusion to Flex devs and the possibilities
that should come from Railos partnership with JBoss, I think there is a
real chance for ColdFusion to break out and become a serious
alternative to JSP for the front end, and possible an alternative to
Groovy and JRuby for dynamic scripting on the JVM if we can get the
Hibernate and Spring integration nailed and the outstanding performance
issues resolved.
Brian Rinaldi
I agree, this definitely seems like a moment of opportunity and this
year with the release of Railo open-source and (probably) Centaur, we
should get a better sense of whether we will be able to seize that
opportunity.
Comments
Great stuff guys! I am just shocked though by people who would call themselves programmers and not be up to date with whats going on in our profession. I have a favorite as we all do but there are tools and technologies that I will probably never use that I am very aware of. I make it my business to know whats going on around me even if does not directly affect me. I guess that is just my way of thinking then if people are shocked to find out CF is still around. Do these same people know that Adobe purchased Macromedia?
Posted By Dan Vega / Posted on 02/03/2009 at 9:02 AM
Thank you, Brian and Peter, excellent discussion. I agree with most of the points you brought to the table. I especially wanted to comment on how relevant CFML needs to be evangelized at conferences that are not ColdFusion / Adobe centric. On a detailed note, using the term "CFML" versus "ColdFusion" is an important piece to include when evangelizing. I think it would be a strong argument to market CFML as an excellent alternative to JSP (God knows I wish we were using it that way here at work).
I personally don't know of any more creative ways to get developers to use ColdFusion from the backend as well as the frontend technology, but perhaps that is not the goal and it should be offered as an either / or product. It would be a good ripple effect--get developers to use it as a tag library and by the ripple will eventually use it for other things.
However, to clarify on the last point, in the past year or so, I have switched from focusing on using ColdFusion for the projects I have been working on mainly due to it's lack of speed in processing large sets of objects quickly (which is a common documented issue). Clearly, Java wins the prize in that category. On very large sites that are passing DTOs back and forth all the time, you are going to have a hard time convincing them to use CF as the backend.
Again, thanks for the post, I hope it gets looked at by even more folks who can direct the winds of change.
Keep it alive.
Posted By Kyle Hayes / Posted on 02/03/2009 at 9:20 AM
Maybe it would help to examine the flow of traffic in the other direction. Look at things like Groovy and Python and Java. I don't really see any real evangelism for those technologies in the ColdFusion community. And yet, people in this (CF) community do use these technologies. So, I guess, perhaps if we can figure out how those technologies are attracting people in CF despite the lack of evangelism, perhaps we can leverage those strategies in the other direction.
Posted By Ben Nadel / Posted on 02/03/2009 at 9:25 AM
I was just IM'ing with a friend who pointed out that Railo has not actually presented at any Java conferences (but have done a CFUG tour). I think it's a really valid point.
I don't really expect to see much in the way of presentations to Java conferences by Railo until they launch the open source version later this year, but I *do* expect to see real activity from them later this year to see that they really are evangelizing outside of the existing ColdFusion community.
Naturally I expect the same from Adobe and will be interested to see which of the two businesses presents CFML at the most Java conferences in '09 and '10 :-)
Posted By Peter Bell / Posted on 02/03/2009 at 9:28 AM
Nice discussion guys. I do think you're missing one piece of the puzzle however, and it's one that Adobe ignores in my opinion as well, and that's stemming the exodus from CFML as a language to other technologies.
What I hear pretty frequently from my involvement with Open BlueDragon is "if it weren't for open source options, we would not continue to use CFML." I always kind of suspected this was likely going on without much fanfare in a lot of organizations, but seeing and hearing it more first-hand really opened my eyes to a side of things that, when you're both a preacher and a member of the choir, you just don't see (or maybe don't want to see).
Also, I know Adobe's semi-public stance on the open source engines is that they don't believe the open source engines will bring a rash of new developers to CFML. Personally I think that remains to be seen (and call me crazy, but I don't see the education initiative bringing about a rash of new CFML developers ...), but what I *do* see the open source engines doing already is keeping people from having to move away from CFML. That's only a good thing for us all in my opinion.
I agree with Brian that we do a lot of patting each other on the backs, saying "I'm OK, you're OK, CFML's OK," all the while ignoring that people stop using it, whether that be for budgetary reasons, fear of the future of CFML, etc. on a daily basis. (Yes, new people come into the fold as well. The question is if it's a net positive, negative, or a zero-sum numbers game.) Not to mention what Peter points out which is ABSOLUTELY true in my opinion, namely that people outside the community don't know anything about CF and may not even know it exists. If that doesn't change, then by definition the community can't grow.
So what I DON'T think we need is more "internal evangelism," other than promoting where CF is going so current users don't continue to move away from CFML to other technologies. Why spend a huge amount of time and effort promoting CF to the people who are convinced already?
So how do we spread the word? That's the million dollar question. I think like all these efforts it starts slowly, and it has to be grassroots. Adobe plastering buses, trains, and billboards like they did for LiveCycle in DC will have no impact. Adobe could have bought a Super Bowl ad for ColdFusion and I think it would have been money that was 100% wasted.
To me, it's all about telling people who don't know about CFML that it's here, that there are commercial and open source options, that it integrates extremely well with other technologies, and that it's still one of the best ways to write either the front ends of web apps or web apps in their entirety.
I think the notion of CFML being an alternative to JSP is a great place to start, because it's not as if you're going to convince a die-hard Java guy to switch to CFML "because it's easy." Believe it or not, ease of use isn't the #1 criteria for everyone. But lots of Java developers *are* frustrated with JSP, and if they're used to JSTL, CFML might just look like a way better version of JSP to them.
I also think we need to start focusing on CFML as a framework of sorts. Again, try to sell it as the soup-to-nuts solution to someone who's already 100% committed to another technology and you're wasting your breath. Sell the great features it DOES have in bits and pieces, such as easier front end development, or a great way to deal with PDFs, or what have you, and we might find a more receptive audience.
The hard part, and maybe the one we shun since we CFers are all about the quick solution, is that this takes time. This sort of promotion is done a handful of people at a time, by presenting at bar camps, spring <br> type conferences, doing online presentations outside the CF community, and just keeping at it consistently over time. It doesn't have as much splash as an ad on a bus, but it sure is more effective in the long run, and when you convince people of the strengths of the technology by showing them what it can do, how it integrates, etc. you get fans (or at least people who start using it for specific tasks) for life. Then they tell a friend and the cycle repeats.
Anyway, just my thoughts based on seeing things from a bit of a different perspective as of late. Keep up the good work on the cfarguments.
Posted By Matt Woodward / Posted on 02/03/2009 at 10:09 AM
@Matt, *Great* comments - some really good points. Thanks!
Peter
Posted By Peter Bell / Posted on 02/03/2009 at 10:30 AM
people blasted me for saying what i said in the comments from the last cfargument.
http://www.pbell.com/index.cfm/2009/1/27/CFArgument-Hibernate-or-HiberNOT-#comments
i think though that what i brought up about the object creation is THE HEART of why coldfusion is looked so down upon throughout the programming world in general. and once again, you both bring it up in this installment of cfargument.
allow me to take my vindication one step further by saying it pretty pathetic when people who have been using coldfusion for years and are looked up upon in the community, finally give up with coldfusion's object creation and look at other languages to foot the bill like groovey.
http://www.alagad.com/go/blog-entry/getting-started-with-groovy-spring-hibernate-and-more-with-coldfusion
keep saying whatever you want. coldfusion will NEVER get the recognition it wants nor deserves without fixing the hindering object performance that currently exists.
Posted By dfguy / Posted on 02/03/2009 at 12:30 PM
As others have mentioned before me, I think the CF as an alternative to JSP is a key issue here.
I know that increasingly developers are becoming more frustrated with CF's object performance so they are turning to other technologies like Java, but face having to rewrite all their code and getting stuck with JSPs. Using both these technologies to their strengths is great solution to this problem, but there are very few resources out there for using Java/Hibernate as the domain model and CF as the controller and presentation layer.
I would love to see more tutorials/sites on Java/Hibernate/Spring + CF integration.
Posted By Pete / Posted on 02/03/2009 at 1:56 PM
One factor that helps propel a language in popularity is the success of applications built in that language and support for an eco-system built around that language: RoR with Basecamp; Objective-C and iPhone; python and Google.
While it is up to entrepreneurs to come up with the great applications, support from the "manufacturer" of the language can go a long way to making it more attractive to build in one language vs. the other. This is less of a concern with something like php since there is relatively little, out of pocket, up front cost for a software entrepreneur.
Efforts like Railo and OpenBD are a big help in making CF more attractive to develop as they make the cost side of the risk/reward equation much lower.
On the reward side, the ability to monetize new developement, Adobe doesn't haven't have to put money up. It would be great if there were a ready-made marketplace to highlight CF applications (as there is for AIR apps and Photoshop add-ons)and even to help sell them -like the iPhone AppStore.
The functionality and value of 3rd part CF-built applications can sell CF outside of the general developer community. The applications can solve real business needs to people who don't really care about the underlying technology. The cost of a CF license becomes trivial if a real business need is being solved out of the box. Adobe could help encourage the development of commercial applications further.
Posted By Mark Phillips / Posted on 03/01/2009 at 9:09 PM