This morning I was reading a post from Brian Meloche regarding “Promoting ColdFusion to non-ColdFusion Developers“. I did answer via the comments, but I thought that I would post something a little more susbstantial.
Generally I believe that what is there makes sense, but I’m not overly keen on the aspects mentioned within the “Build demo apps” section of the list. Two main points are things that I feel the need to discuss:
1) “put this on RIAForge”
To start with, I want to make something clear: I think RIAForge is a good thing. It is a call to action for the open-sourcers in the community and provides a centralised place to go for everything that they kick out, be it frameworks, browser tools, pre-baked applications etc. However, I do feel that in the context of the above post something needs to be considered.
Take a look at the categories on RIAForge. Note that every single one is an Adobe product. This means that a user would probably have some sort of vested interest in Adobe products before visiting the site. This achieves two things: It helps Adobe developers find stuff quickly and it segregates the Adobe community from everyone else. Therefore, I fail to see how this would help promote CF to non-CF developers.
Put yourselves in the shoes of “another” developer (be it .NET, PHP, Java whatever). What motivation would you have to go to RIAForge? The end result is that whenever you go to Sourceforge, Freshmeat et al, that you don’t see much in the way of CFML, as it’s all over on RIAForge, nicely grouped together.
So, whats the answer in the context of the original issue? Well, for me it has to be populating the centralised, vendor agnostic sites with CFML. Get CFML onto Sourceforge, Get CFML onto Freshmeat, Get CFML on Hotscripts. It is only by generating activity in CFML on these sites that people will realise CFML is still active and doing well. Hiding it away on a CFML-centric site does exactly the opposite.
2) “promote popular application types (blogging, bulletin boards, etc.) written in CF”
OK, for this I want you sit in your managers seat - the one that pays the bills, and more importantly, buys CFMX or Bluedragon licenses. Now, think like they would think for a second. What are your key interests? For most, there will be only one: the bottom line. How much money can I make the business this year.
So, now think about CFML in the same way - what are the important aspects that you need to consider?…
Productivity and cost.
So, managers want to know how CFML can help them get their jobs done with the minimum outlay in the quickest time. Therefore managers need to be demonstrated this to take any interest in CFML. They need to be made aware that for them to get their end-of-year bonus they need to invest in CFML. OK, so the license costs are an issue, but we’ll leave that one for now. They need to know that decent-ish CFML developer can do what a good Java developer can do in half the time. This is what is important when thinking about the bottom-line.
Now think about this from the non-CF developers view-point as well. You have similar interests. You want to know that you can do the stuff that matters to you in the shortest time possible as easily as possible, thus getting the aforementioned manager off your back.
So, what does this mean with regard to the point on promoting popular application types? Well for me, showing a developer/manager that they can do the easy stuff in CFML in a pointless task - they can already do this with whatever tools they are using, and someone has probably already done it for them. What I beleive we need to show the community is how to do the stuff they do every day (ie the boring corporate stuff) - but show them how much quicker they can do it with Coldfusion.
Make a big point about how easy it is to generate and consume webservices, do AJAX, do database work, use event gateways etc. With this, CFML will seem a lot more attractive to everyone (thus making the license costs harder to swallow).
But what about the stuff that CFML can’t do (yet)? Well, don’t describe CFML as an island. Make it abundantly clear the CFML is Java (or .NET). Make it clear that CFML can be extended and reinforced. Make it clear that CFML is a way of making hard things easy.
So, hopefully I’ve described myself clearly enough. Any thoughts from anyone else?