Here's a thread I posted on previous forum regarding the three:
I've used PHP, ASP, and ColdFusion, and out of the three, ColdFusion is probably the most fun to play with. Of course, this is a very biased question to begin with. If you ask a C++ programmer what the best language is, you won't get "BASIC" as well as if you ask a physicist what the best science is, you won't get "Psychology." The three have its strengths and weaknesses. This is what I like and dislike about them...
PHP - The Good: Speed. PHP has the ability to pump out pages faster than you can bring up your pants while your girlfriend's dad is banging on the door asking if she's in there with anyone. And with the Zend Optimizer, it can go even faster. The function list is also very useful. Contains several functions to do pretty much anything. Can run on several systems including Unix/Linux and even Windows. A large community of developers exist as well many books out there on PHP. Goes together nicely with MySQL and PostgreSQL. Goes well with Apache. If you already know C++/Java/Perl, it's a breeze. IT can even take advantage of limited OOP functionality... and best of all... it's Free!
The Bad: Was only really meant to be used (and taken seriously) on Unix/Linux related machines. Database access is annoying if you're changing from MySQL and PostgreSQL, you have to use different functions to access them, there's no one overall functions that handles all DBs. (If you use MySQL, say goodbye to stored procedures and triggers.)Try/Catch errors are not as good as other languages. OOP is very limited (everything is public, you cannot have private or protected). Does not intergrate as well with ODBC as ASP and ColdFusion would.
ASP - The Good: If you know VB/BASIC, it's a breeze. Good learning curve. Because it's a Microsoft product, it integrates well with SQL Server, Access, COM, and pretty much anything related with Microsoft. You can use VBScript or JavaScript. Speed is good. You can use ASP free with NT and W2K, or a limited version on Win98 with Personal Web Server. If you want to use it on Linux, you can use Chili! (some differences exist from what I hear). There's a huge community for ASP, as well as books, and magazines on ASP related technology(SQL Server, IIS, etc.). With the new .NET Framework, we should see an improvement.
The Bad: Was only meant to be used on Windows. Microsoft tries to keep it proprietary to Windows. Does not contain a good function list(as well as PHP): things such as Upload must be installed as a separate ASP Component. Too many components may crash the system at times. More overhead than needed because it depends on COM. Error trapping is ok.
ColdFusion - Extremely is easy and powerful. The development time needed to create an app is faster than the speed of light. (It will take less time to create an app for ColdFusion than for ASP or PHP.) Database integration is a snap, and a lot easier to handle compared to ASP and PHP. Error handling is superb, blows PHP and ASP out of the water. No need to install extended functionality like ASP to upload. All that comes out of the box. It can even connect to LDAP, use COM components, Java Objects, etc. ColdFusion 5 contains a small version of Generator for generating Dynamic Flash content such as graphs, and in the new ColdFusion 6 (Neo), it will move to the Java Architecture. All CF templates will be compiled to Java Byte Code and will run like Java. ColdFusion will be able to use ColdFusion objects, functions, CFML, and be open to the whole Java world, to use its classes. There's a large community for ColdFusion.
The Bad: Only meant to deal with Windows (and Linux, but not too many Linux users out there, compared to Windows). ColdFusion is NOT free! There is a developer version available that has all the functionality of the regular version, never expires, but can only be used on one IP address. (For more info, check out Macromedia's site.) Doesn't use traditional programming syntax, but CFML (like HTML) to get the work done... this may seem awkward at first. A lot of the language relies on Custom Tags, some of which are made in CFML itself along with CF functions - this may cause a high overhead. Does not work like tradional OOP (UDFs- are still new, just came out in CF5), but conventions such as FuseBox can be implemented (in Neo-CF6- this will change, you'll be able to also use Java in ColdFusion).
Of course these are my opinions, and I'm sure you could think of other reasons why a language is bad/good.