Coldfusion vs. PHP

This is a question that has been raised in this forum before, but the postings were in 2003. Both worlds of CF and PHP have changed since then. So here goes ...

I'm a ColdFusion programmer who who spent the past 5 years as the sole programmer on our organization's main website.

We have hired other junior programmers for specific project-related websites. Some of them work in PHP and one of our key project sites has moved over to the LAMP platform.

The system we've created in ColdFusion MX not only runs our Website, but runs parts of our Intranet, a backend home-grown CMS, online tracking and data analysis tools, and several other applications. Plus we have a few project sites coded in CFMX. We use a lot of stored procedures in our SQL Server 2000 database and use cfloops in much of our output.

Now, there is a groundswell from the PHP programmers to move our site over to the LAMP platform as we consider revising our site and adding a true CMS. Up to this point, I've been open to potentially developing a migration path to PHP, but right now I'm under the gun to get a site facelift/revision done by the end of September 2006 AND a CMS tool in place to support some of the new features in this site facelift/revision. I've been looking at keeping things in ColdFusion/SQL Server 2000 and adding CommonSpot CMS (which I understand supports ColdFusion and PHP) with FuseTalk (for the forum/blogging elements).

However, there is still push for me to move from CFMX/SQL Server to PHP/MySQL.

I'm a CF programmer and database engineer. Apart from that, I've taken Basic and Perl (years ago), and have (of course) worked with XHTML, XML, and Javascript. I'm willing to learn PHP, but haven't been convinced that this is the way to go at this point given the potentially high cost of conversion as we will have to pay someone to convert all our site elements (one person can't do it all efficiently)  -- seems like funds for this should be used to develop content for our users, not for making a platform shift.

I may be preaching to the choir, but I would like your thoughtful input ...
Who is Participating?
DeekGeekConnect With a Mentor Commented:
I've been using ColdFusion since about 1998, and you should probably consider me strongly biased.  Having said that...

First, remember that ColdFusion is really just the server software.  The language is ColdFusion Markup Language (CFML).  As mentioned by 73Spyder, CFML is used by software other than ColdFusion.  New Atlanta makes Blue Dragon server, which is designed to be a direct competitor to ColdFusion that will run CFML with little or no modification.

ColdFusion as a server is more robust than ever and CFML is still the easiest language for rapid application development, in my opinion.  CFML tags provide a lot of functionality, "out of the box," that PHP programmers have to either develop or include from a library or snippet collection.  ColdFusion supports tight integration with other enterprise-class components, such as Java beans for your business logic, due to its J2EE architecture.  CFML expanded to support a light form of object-oriented programming when it got ColdFusion Components (there are some limitations, such as with constructors/destructors).  ColdFusion Components can also be exposed for public consumption as web services by setting their access to "remote" - no other changes are necessary.  Prebuilt software is scarcer with ColdFusion.  There are a handful of CMS applications available, and only a couple are F/OSS.  The ColdFusion community is much smaller than with PHP, though in my opinion it is much friendlier.

PHP is more of a scripted language than CFML.  It is closer in usage to ASP / VBScript.  Database access is done by scripting all the code necessary to establish a connection, pass in the credentials, pass in the query, and retrieve the results.  Web services must be coded by hand or handled by an external library, if they can be done at all.  Connections to Java objects and interoperation with other business objects must be handled the same way.  On the other hand, the Internet is full to overflowing with software that runs under PHP.  You want a CMS?  Take your pick.  You'll be old and grey before you finish evaluating them all.  Code libraries?  The same way.

Probably the biggest hurdles to ColdFusion are in management perception and in obtaining capable people.  ColdFusion has a bad reputation with some people, especially if their only exposure to it was a long time ago in those wild, halcyon days of the dot-com bubble.  ColdFusion is so easy to use, it is very easy for someone to quickly become familiar with its syntax and begin to crank out web applications.  Those same applications tend to have poor designs and perform terribly when they are placed under heavy load.  It is much easier for programmers - and their managers - to blame the server software when the fault is really with the design of the application.  This brings up the second problem - it is much easier to find PHP developers than ColdFusion developers, because there are fewer barriers to entry in the ColdFusion market.  Free versions of ColdFusion are available for developers to use, but it definitely doesn't come with every copy of Linux downloaded from the Internet.

The questions to ask yourself are:
 - do I need added functionality, such as web services, Java interoperability, or multiple application servers per machine?
 - do I need a large pool of available talent?
 - do I have a management team that trusts my decision, or will I have to keep re-proving my decision to them?
 - what is our development environment like?  Do we have solid, repeatable processes in place (i.e., CMM level 2 or better) or are we building a big ball of mud every time?
 - what do I have the technical knowledge to support when the server goes belly-up?
 - what are the costs of each, both in real dollars and in labor costs and opportunity costs?
 - what does our capacity planning look like?  How much growth will we see next year?  In five years?  Will we be moving to clustered databases or other high-availability environments?

As for my department, we will be sticking with ColdFusion for at least another two years, and if we move off ColdFusion it will be to go with Java / J2EE, not PHP.
Well,   I am not sure how thoughtful my input will be, but here goes.

We use a combo of CF (BlueDragon actually) and MySQL.  This is working quite well for us.  For you example I would recomend this route for you as well.  Since your app is already in CF, all you would have to update is the SQL parts.   Given the time table that you have listed, this might be the best way to meet your deadline.

LauraleeDooleyAuthor Commented:
Has MySQL support for stored procedures and does it have a good interface for writing and running on-off SQL Queries within the database? I had heard in the past that it wasn't as robust as SQL Server 2000. But that was about a year ago and I'm sure things may have changed.
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

Yes, MySQL does now have support for stored procs.

And they have a nice free tool  Called Toad.

Also,  I know its not free, but I have heard good things about this:

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.