ColdFusion CAN make a comeback
Over the last year, I have been involved in a lot of debates about ways to improve ColdFusion's market share. One common argument I heard from people was this: "ColdFusion is old news, and can never make a comeback in such a crowded market. People can't be convinced to change away from their preferred platform." Well, I think that's just rubbish, and here's some evidence that I'm right.
Apparently Python has been making a comeback, and has become pretty popular. Some of the old programmers at my job have been talking about using Python for server scripting tasks, and Tiobe has called Python the Pragramming language of 2007. The interesting thing is that Python is older than ColdFusion, and it has had a reputation of being for beginners (same as ColdFusion). According to Wikipedia, Python was first released in 1991.
So, I say that if Python can become popular again after all these years, there's nothing stopping ColdFusion from doing it. That's IF Adobe can make it happen with good market positioning and product pricing.
Jake Munson
34 Yrs old
Python does seem cool. The Zope project always intrigued me.
Guess the question is WHY it's enjoying a comeback? It is open source, free, and has several good IDEs (unlike CF).
Python might be cool, I don't know, I don't use it. But if these examples are any indication, it takes a whole lot of work to do what CF gives you out of the box.
If you keep CF as is and add full <CFSCRIPT support and a bit more OO, then the people from all the other languages might consider it again.
No one writing ECMA style scripting is going to move to a TAG based language in a hurry, to much yuck factor.
ColdFusion also like to be different, why is a component not a class for example, it make no sense to be different. Look at the competitors.
PHP - Script and OO
.NET Script and OO
Java Script and OO
CF Tags and Kinda OO
But Adobe maintains that CF is different and people don't want script and OO. But all the developers who still use CF that I know do.
The end result is that CF will remain tag-based, if not forever, then for a looooong time.
As an aside, I'd be interested to hear why you think PHP is "more OO" than CF. What does PHP's OO implementation do that CF's does not?
I also concur with Brian in that the vast majority of CF installs I have come across are non-OO and sadly those I have come across where pure OO was attempted with CF were not very inspiring and typically totally confusing.
I have heard from other early web developers that CF was "all the rage" in the first couple of years that it was out, simply because all the other options at the time were extremely difficult to use. But I wasn't a web developer back then, so I don't know this from personal knowledge.
But even if CF doesn't make a "comeback", the main point of this post is that CF CAN make a large market share grab, if things are handled properly.
I want them to support full <CFSCRIPT so that if you don't want to write tags, then you don't have to.
That will apease me and anyone else out there who doesn't like writing tag code, which is big % of all developers out there.
When ever I have tried to convert a Java person to CF, they imediatly bawk at the tag syntax and lack of OO.
So why can't CF be both?
How much more OO can you make coldfusion? What exactly is it missing that would make it more OO?
personally, i don't care if Coldfusion gets more OO features or not. i don't agree that it should compete with other OO scripting languages and the whole effort to get it recognized as a "real language" is foolhardy. theres always haters who don't know and never used it or tried it out a little but they like their language better.
the real way CF "can make a comeback" is to focus on performance improvements (such as the threading features of CF8, or Bluedragon)
my two cents
Sure, writing a service from scratch with Python would be daunting. But the same would go with ColdFusion. I wouldn't want to write a web application using Python only either. I would use something like Django or TurboGears.
Here is the PyAMF module which lets Django talk to ActionScript:
First, define a gateway:
# yourproject/yourapp/amfgateway.py
from pyamf.remoting.gateway.django import DjangoGateway
def echo(data):
return data
echoGateway = DjangoGateway({'echo': echo}) # could include other functions as well
Then create a url for it:
# yourproject/urls.py
urlpatterns = patterns('',
# AMF Remoting Gateway
(r'^gateway/', 'yourproject.yourapp.amfgateway.echoGateway'),
)