Finally! The difference between PHP, ASP and other scripting languages.
PHP
PHP uses a blend of interpretation and compilation in order to provide the best mix of performance and flexibility to programmers.
Behind the scenes, PHP compiles your script down to a series of instructions (called opcodes) whenever it is accessed. These instructions are then executed one by one until the script terminates. This is different from conventional compiled languages such as C++ where the code is compiled down to native executable code then that executable is run from then on. Instead, PHP re-compiles your script each time it is requested.
This constant recompilation may seem a waste of processor time, but it is actually not all that bad because you no longer need to worry about hand recompiling your scripts when you make any changes. On the flip side, many scripts take longer to compile than they do to execute!
Furthermore, it provides very quick feedback during development. If you have an error somewhere in your file, PHP will refuse to compile the page until you have fixed the problem, and you are able to step through execution of your code line by line until you find the problem.
The speed hit of regular compilation is nullified entirely by the use of PHP accelerators.
One major advantage to having interpreted code is that all memory used by the script is managed by PHP, and the language automatically cleans up after every script has finished. This means that you do not need to worry about closing database links, freeing memory assigned to images, and so on, because PHP will do it for you. That is not to say you should be lazy and make PHP do all the work - good programmers clean up themselves, and let PHP work as backup in case something is missed.
Perl
Perl is the most popular of the PHP alternatives out there, arguably because it is also the oldest. There is a large installed base of Perl out there; many open-source projects require Perl to be installed to work properly. It has the advantages of being very (very!) flexible, and also having a large collection of modules already written for it. However, it is let down by the fact that it is very easy to write obfuscated and confusing Perl without really realising you are doing so, and this has resulted in such marvels as the annual Obfuscated Perl Contest.
Well-written Perl scripts often look fairly like their PHP equivalent. The major cause for Perl's messy appearance is that many Perl programmers rely on "one-liners" - packing large amounts of functionality into just one line of code. Perl was once described very accurately by its creator, Larry Wall, when he argued that the front cover for his O'Reilly book on Perl should be a camel, saying that Perl was ugly but serviceable, and able to go long distances without much nourishment.
Perl is often a better choice when you want to take advantage of some of the pre-written libraries. CPAN, Perl's library repository, is very big, and there is a huge range of code for you to take, customise, and re-use. Perl also has a very active - and very cool - hacker community around it that's a whole lot of fun to be part of and is really a bedrock of support when you need it. Larry Wall and Damian Conway (both core Perl developers) are both rightfully revered as "alpha geeks" - people who really push the envelope of programming by doing cool new things. They are both very friendly, and and attend many conferences year round - go ahead and introduce yourself if you meet them, because they really are fascinating to talk to.
ASP
Active Server Pages (ASP) and ASP.NET is Microsoft's attempt to succeed in the web development market, and comes as standard with their web server, IIS. ASP has been mauled by the open source community ever since it came out, and they gave a variety of reasons: it is proprietary, single platform (Windows), and slow.
I would like to say, "Yes, yes, and yes", but I'm not going to try to pull the wool over your eyes. The reality is that ASP has been implemented on other platforms, and, when running on Windows and Microsoft Internet Information Services (IIS), is actually lightning-fast.
That coupled with the fact that you can write add-on modules for ASP using Visual Basic and COM would make the whole solution very attractive indeed if it were not for the fact that ASP only really works well on IIS. On other platforms there are many fewer features, and it generally runs a great deal slower. When running on Windows, the security issues and licensing costs tends to be the most important thing, particularly when an all-Microsoft solution stack is being used.
and
ASP/ASP.NET is generally favoured when an all-Microsoft stack is in place. When used on Windows, it is very easy to deploy .NET code to ASP.NET pages or even write your ASP pages using C#.
ColdFusion
ColdFusion used to be quite popular back in the hey-days of the dot.com boom because it is developed using a proprietary IDE designed for novice programmers who have no wish to see source code of any complexity.
For such a wizard-oriented system, ColdFusion performs fairly well. Performance is nothing to be desired, but development speed is good. Perhaps ColdFusion's biggest let-down is the price tag - you will certainly need to sit down before you see it. ColdFusion was bought out by Macromedia, and this has served to boost its corporate appeal in places where open-source is still frowned upon.
The main drawback to using ColdFusion is arguably its user-friendliness, which might sound odd at first, but let me clarify. With PHP and Perl, because the languages are so flexible, you have much more control over what happens and why. If something goes wrong in your code, it's normally very easy to track it down and solve the problem, or change your plans and implement a different solution to the same problem. Very often, stock ColdFusion has just one way to solve a problem, and this greatly reduces your control over the solution you make. However, at the very least, you can work using ColdFusion when you are in team with non-technical people.
The biggest advantage to ColdFusion is its IDE and the language it uses, "CFML" (ColdFusion Markup Language) - even junior programmers can learn the system and start making pages quickly. As a result, you will often find ColdFusion in use at very large companies where they use Visual Basic (another easy, but not very powerful or fast language) for offline work.
JSP
Java Servlet Pages has often been considered the "dark horse" in web scripting because at first many thought it would be overkill for the job and yet has managed to get quite a substantial community about it nonetheless. JSP has three key advantages over some of its competitors, which may be why it has done so well:
JSP is a popular choice when existing back-end business logic is written in Java also, as this keeps the development team language-homogenous.
From: http://www.hudzilla.org/phpbook/read.php/2_2_5
Thanks to tilldoomsday for the link.
PHP uses a blend of interpretation and compilation in order to provide the best mix of performance and flexibility to programmers.
Behind the scenes, PHP compiles your script down to a series of instructions (called opcodes) whenever it is accessed. These instructions are then executed one by one until the script terminates. This is different from conventional compiled languages such as C++ where the code is compiled down to native executable code then that executable is run from then on. Instead, PHP re-compiles your script each time it is requested.
This constant recompilation may seem a waste of processor time, but it is actually not all that bad because you no longer need to worry about hand recompiling your scripts when you make any changes. On the flip side, many scripts take longer to compile than they do to execute!
Furthermore, it provides very quick feedback during development. If you have an error somewhere in your file, PHP will refuse to compile the page until you have fixed the problem, and you are able to step through execution of your code line by line until you find the problem.
The speed hit of regular compilation is nullified entirely by the use of PHP accelerators.
One major advantage to having interpreted code is that all memory used by the script is managed by PHP, and the language automatically cleans up after every script has finished. This means that you do not need to worry about closing database links, freeing memory assigned to images, and so on, because PHP will do it for you. That is not to say you should be lazy and make PHP do all the work - good programmers clean up themselves, and let PHP work as backup in case something is missed.
Perl
Perl is the most popular of the PHP alternatives out there, arguably because it is also the oldest. There is a large installed base of Perl out there; many open-source projects require Perl to be installed to work properly. It has the advantages of being very (very!) flexible, and also having a large collection of modules already written for it. However, it is let down by the fact that it is very easy to write obfuscated and confusing Perl without really realising you are doing so, and this has resulted in such marvels as the annual Obfuscated Perl Contest.
Well-written Perl scripts often look fairly like their PHP equivalent. The major cause for Perl's messy appearance is that many Perl programmers rely on "one-liners" - packing large amounts of functionality into just one line of code. Perl was once described very accurately by its creator, Larry Wall, when he argued that the front cover for his O'Reilly book on Perl should be a camel, saying that Perl was ugly but serviceable, and able to go long distances without much nourishment.
Perl is often a better choice when you want to take advantage of some of the pre-written libraries. CPAN, Perl's library repository, is very big, and there is a huge range of code for you to take, customise, and re-use. Perl also has a very active - and very cool - hacker community around it that's a whole lot of fun to be part of and is really a bedrock of support when you need it. Larry Wall and Damian Conway (both core Perl developers) are both rightfully revered as "alpha geeks" - people who really push the envelope of programming by doing cool new things. They are both very friendly, and and attend many conferences year round - go ahead and introduce yourself if you meet them, because they really are fascinating to talk to.
ASP
Active Server Pages (ASP) and ASP.NET is Microsoft's attempt to succeed in the web development market, and comes as standard with their web server, IIS. ASP has been mauled by the open source community ever since it came out, and they gave a variety of reasons: it is proprietary, single platform (Windows), and slow.
I would like to say, "Yes, yes, and yes", but I'm not going to try to pull the wool over your eyes. The reality is that ASP has been implemented on other platforms, and, when running on Windows and Microsoft Internet Information Services (IIS), is actually lightning-fast.
That coupled with the fact that you can write add-on modules for ASP using Visual Basic and COM would make the whole solution very attractive indeed if it were not for the fact that ASP only really works well on IIS. On other platforms there are many fewer features, and it generally runs a great deal slower. When running on Windows, the security issues and licensing costs tends to be the most important thing, particularly when an all-Microsoft solution stack is being used.
and
ASP/ASP.NET is generally favoured when an all-Microsoft stack is in place. When used on Windows, it is very easy to deploy .NET code to ASP.NET pages or even write your ASP pages using C#.
ColdFusion
ColdFusion used to be quite popular back in the hey-days of the dot.com boom because it is developed using a proprietary IDE designed for novice programmers who have no wish to see source code of any complexity.
For such a wizard-oriented system, ColdFusion performs fairly well. Performance is nothing to be desired, but development speed is good. Perhaps ColdFusion's biggest let-down is the price tag - you will certainly need to sit down before you see it. ColdFusion was bought out by Macromedia, and this has served to boost its corporate appeal in places where open-source is still frowned upon.
The main drawback to using ColdFusion is arguably its user-friendliness, which might sound odd at first, but let me clarify. With PHP and Perl, because the languages are so flexible, you have much more control over what happens and why. If something goes wrong in your code, it's normally very easy to track it down and solve the problem, or change your plans and implement a different solution to the same problem. Very often, stock ColdFusion has just one way to solve a problem, and this greatly reduces your control over the solution you make. However, at the very least, you can work using ColdFusion when you are in team with non-technical people.
The biggest advantage to ColdFusion is its IDE and the language it uses, "CFML" (ColdFusion Markup Language) - even junior programmers can learn the system and start making pages quickly. As a result, you will often find ColdFusion in use at very large companies where they use Visual Basic (another easy, but not very powerful or fast language) for offline work.
JSP
Java Servlet Pages has often been considered the "dark horse" in web scripting because at first many thought it would be overkill for the job and yet has managed to get quite a substantial community about it nonetheless. JSP has three key advantages over some of its competitors, which may be why it has done so well:
- It uses Java, a language that already has a large skill set of developers and a massive amount of functionality available. Java is also conducive to scalability as it distributes across multiple computers well.
- Sun, as well as other members of the community, has worked hard to promote the language and tools that support it, which means that JSP has a lot of backing inside larger enterprises.
- It strongly encourages templating of pages for maximum code re-use. Templates for PHP are widely available, but they are a great deal more popular in JSP.
JSP is a popular choice when existing back-end business logic is written in Java also, as this keeps the development team language-homogenous.
From: http://www.hudzilla.org/phpbook/read.php/2_2_5
Thanks to tilldoomsday for the link.



60 Comments:
Great Article. An even more indepth pass of time and performance metrics would be pretty amazing but also very time consuming. Good job!
mixing up asp and asp.net simply shows that you have nno idea from what you're talking about.
The biggest advantage to ColdFusion is its IDE and the language it uses,
What IDE would that be? CF Studio has been dead since before MM bought Allaire. Most developers use cfEclipse or Dreamweaver although any text editor can, and always could, be used.
The main drawback to using ColdFusion is arguably its user-friendliness, which might sound odd at first, but let me clarify.
CF is built on top of a J2EE server and therefore has access to all that underlying functionality while providing an easy to use programming interface (CFML). It is a full featured language that has the flexibility of both PHP and ASP. I challenge you or others who doubt CF's abilities to find a task that ColdFusion cannot handle. It will almost certainly handle it with less development time as well. CF has MVC frameworks written for it, ORM and Inversion of Control tools written for it giving all the functionality it needs to build any application in a quick, powerful and easy to maintain way. The framworks, IoC, and ORM can even allow CF to give Ruby on Rails a run for its money as a quick RAD platform.
ColdFusion was bought out by Macromedia, and this has served to boost its corporate appeal in places where open-source is still frowned upon.
CF also has a large open source community with great applications. As can be seen here and here amongst others.
Yes there is a price tag on Adobe's CF Server product, but the amount of time saved in development makes up for that cost. At $1299 for the standard edition the price is low when compared to other J2EE, enterprise level applicaitons.
However, there are other CFML engines, most notably New Atlanta's BlueDragon which has a free version. New Atlanta also makes a CFML engine that runs on top of .Net to expose that functionality and give even better performance in Windows/IIS environments.
Perhaps you should read up a bit on CF before you comment on it.
How can you mix ASP and ASP.NET ?
They are both really different! ASP is not compiled, it's interpretated. ASP.NET can be compiled.
ASP has only run nicely on Windows but ASP.NET is coming to Linux with the work from the guys of Mono.
And... we don't care about which O.S. it runs on... the title says: "The difference between PHP, ASP and other scripting languages"...
So sorry man... you are totally off. Know your things before talking like that.
Your story was buried on Digg.
Have a nice day
Good article but I've a few comments.
JSPs (Java _Server_ Pages) are often used just for the presentation of data. Behind the JSP pages there are often servlets which are collections of classes with just the business logic in them. This seperation ability offers a number of advantages when you consider scalability, tasking of development between web designers (artistic non-coders) and web developers (coders), and--as you mentioned--encouragment of code reuse. The front end can also be easily changed. In fact, a lot of people are now using Flash/Flex for a rich presentation front end with servlets running in the back end. AFAIK, the IIS/ASP technology stack has similar abilities, with the mentioned disadvantage of a windows only environment.
From a language standpoint, both Java and the MS .NET langs are much more strongly object oriented when compared to PHP or Perl. PHP 5 has made strong inroads towards OO technique, but it is immature and still not to the same level (no proper namespaces, etc...). Perl and PHP performance is also hindered with threading issues when moving beyond trivial projects.
I'd be interested in seeing your assessment of Ruby on Rails.
ASP and ASP.NET are radically different. Beyond similar names, they have absolutely nothing in common.
You might also think about your definition of scripting languages.
Digg is pointing alot of these things out.
You can't really claim to have listed out the differences until you've addressed rails (and other ruby solutions) and zope (and other python solutions). All you've done here is describe the fast, messy, and damnably hard to maintain solutions.
Just a few comments about your CF section, and before I start, a warning: I'm a big time CF user so I'm definitely biased.
ColdFusion was never tied to a proprietary IDE. There was an IDE you could buy, ColdFusion Studio, but it was never required. Many people used Dreamweaver or even Notepad to write their CFML scripts. You said that CF developers would use the IDE to hide the source code, and that is simply not true. CF development was never "drag and drop" or wizard based. Yes, the IDE did have a wizard or two, but it was optional and actually not used very often by most developers.
As to your point about user-friendliness, I'm not sure why you said ColdFusion has one way to solve a problem. That is simply not true. There are multiple ways of building applications with CF.
I do agree that CF works well with non-techie folks. This does not mean it isn't a "real" language, it is just a simple and practical language. I've seen very hard core programmers use the language well.
Also, I'd like to see you backup your performance claim. You said, "Performance is nothing to be desired". That is simply not true. CF performs very well, and is in use by numerous web sites in the US Government. I've worked on sites that get 10-20 million hit a month and the code ran very fast.
Anyway, I'm happy to discuss this more if you want, but I do think you need to do a bit more research.
Nice concise article.
You have a typo in the second to last paragraph, "usi andng the" should be "using the".
Good article but I must point out that ColdFusion is much more powerful and flexible than you mentioned and it also encourages component/template based development.
In fact, there are a number of frameworks available for ColdFusion that follow a MVC paradigm and since ColdFusion compiles into Java byte code, you can leverage other Java code to handle anything that ColdFusion cannot do directly.
ColdFusion also scales very well too - just consider MySpace is written in ColdFusion among other high traffic sites!
The cost is a factor to consider but well worth it in my opinion.
-John
A few more important points on ColdFusion:
+ The original CFML engine (ColdFusion Markup Language) It is now part of the Adobe Family, when MACR was bought by Adobe.
+ Free CFML engines do exist but some have limited support for the "standard" language (what Adobe releases).
+ CFML can be run on J2EE or even in .NET (MySpace.com) with the ability to share data/variables with those underlining technologies.
I agree mostly with your assessments, except for ColdFusion. I've had experience with ASP, PHP, and ColdFusion and when development time is taken into consideration, ColdFusion licensing costs are not that big of a deal. As well, I find ColdFusion a much richer language. You can create a recordset in 3 lines of code then loop through it in 3 more lines. Compare that to either ASP or PHP. It is easier for novices to pick up and use, but you probably won't hear most advanced users complaining very much either. It runs on top of Java, so you generally get most of the same features. And like PHP, it will run the same on whatever platform you install it on (Windows, Linux, Mac).
I love the way he describe php as being best, espcially when the source of the text is from a PHP book.
Very one sided
this article make me want to throw up in my mouth...
yorrrfff kak kaak
I love the last 2 line of the article stating it's from a php book.
aka it's an article selling php, not an impartial view of the web programming world
Your information on coldFusion is so far out of date and thoroughly incorrect it is hard to comprehend. You seem to be discussing a version of coldFusion released circa version 4 (we are on version 7). For example, what proprietary IDE are you talking about? ColdFusion Studio hasn't existed for some time. A little research would have been worthwhile.
"Performance is nothing to be desired" for ColdFusion?
Obviously you haven't taken a good look at it 3 years. MySpace is running on ColdFusion - first Macromedia's, then NewAtlanta's BlueDragon.NET CFML implementation (switch was due to jdbc bottlenecks with microsoft sql server). That's one insanely trafficked website.
To lump ASP.net and ASP in the same category is silly. ASP.net is as sifferent from asp as it is from pearl or PHP. In fact ASP.net is colser to JSP than it is to ASP.
I don't see how you can group ASP and ASP.NET as the same technology. Like PHP and ColdFusion are not the same technology and are not discussed in the same paragraph the same should be for ASP and ASP.NET
I have a feeling you are lacking in study in the area of ASP and ASP.NET.
light but good comparison of available languages, but why is Ruby missing?
Hey dude..
i`m from brazil... i arrived here in a digg.
Fantastic work.. i will send this link to my friends !!!
Cya !
You must not realize what you said about Cold Fusion is mostly crap and you are showing how little you know. Might want to do a little more research and edit that.
Good article. I think you should differentiate ASP from ASP.Net though, as they are certainly very different platforms; .Net shouldn't really be in there at all, as it isn't a scripting language.
I don't think you've ever coded a line of cfm.
"ColdFusion used to be quite popular back in the hey-days of the dot.com boom because it is developed using a proprietary IDE designed for novice programmers who have no wish to see source code of any complexity."
There are so many issues with this short statement alone. Let's take the "proprietary IDE." One can only assume you are talking about ColdFusion Studio, which has been dead for about a decade. Nevermind the fact that CF Studio was not a requirement for developing CFML. And do I really need to get into the statement about the programmers? And "used to be popular"? Oh, and you completely negates the fact that there are several non-Adobe owned CFML engines out there.
You go on to say that CFML is good for only "wizard-oriented systems", but that it offers only a single solution to any given problem and is generally favored in places that frown on open-source. Uh...where the heck did you get this information? I mean it is so thoroughly misguided, I am really not sure how to refute it.
Your information sounds like it is circa version 4 (and that is being generous). CF is now up to version 7.
Interesting. I would sure like to see a review of Aestiva's HTMLOS compared to these. I can't understand why it isn't more popular.
Your information on Coldfusion is painfully false and out of date. Coldfusion, at least in my experience, is hand coded, not produced by an IDE and most Coldfusion developers are actual programmers.
Fundamentally, there is little difference in problem solving and logic in Coldfusion as in other languages and there is usually more than one way to go about solving a problem.
Saying that Coldfusion is mainly used by newbies in a wizard-based IDE is a gross misstatement and helps spread
false and negative rumors about the language.
I would suggest fact checking on the cold fusion section. I see just about as many inaccuracies as facts. I am of course bias being a cold fusion developer, but I can share some facts.
For starters:
-Cold fusion is not a wizard-oriented system, never has been.
-Cold fusion does not require nor have any form of proprietary IDE.
-If you list user-friendliness as its main drawback, you must also in the same breath also, state that it make very complex projects manageable.
-"Very often, stock ColdFusion has just one way to solve a problem" - "With PHP and Perl, because the languages are so flexible, you have much more control over what happens and why." ah, what? I also work with PHP, I see no more control over much of anything of note.
Wow, awesome man.
So far I've learned that the difference between Perl and PHP is that Larry Wall uses Perl, and with Perl you also get a nice collection of libraries called CPAN.
Informative!
I'm not sure you understand ColdFusion well. I started out with CF and have used ASP, asp.net and PHP for projects.
Most CF developers I knew used ColdFusion Studio (Homesite on steriods) and now Dreamweaver and I don't remember seeing any wizards.
New Atlanta built Blue Dragon which is free ColdFusion server.
New Atlanta also ported CFML to the .net platform. MySpace runs CFML on .net.
ColdFusion compiles everything in to Java and runs on Enterprise Java servers. I'm not sure how there would be a scalability difference between CF and Java.
I agree that ColdFusion's biggest drawback is inflexibility.
Very abstract article. The titles was promising more ;)
Hate to jump on the CF bandwagon here, but the previous commenters pretty much have it right...I'll just add some things.
First, CF can be run on just about any platform that has a JVM available for it. Mac, PC, Linux, whatever. Sure, same goes for PHP, JSP, and PERL, but it's got to be said.
Second, it's very database-neutral. As long as there are JDBC or ODBC drivers, it'll connect to it without any added complexity.
Third, the strength of CF is its simplicity combined with its depth. Sure, it's very newbie-friendly, allowing people with very little development experience to perform database I/O and that sort of thing, but as you learn more CF, you are open to many more advanced and elegant techniques that make some very compact, efficient code.
Fourth, its expense is offset by the fact that there's not much else you need to buy. You don't need mailer components, or graphing libraries, or reporting libraries, or anything like that to do pretty much whatever you would want to do with a web site.
Fifth, as mentioned before, there ARE other CF language engines such as BlueDragon and Rollo that have free versions.
Finally, language crossover. Using CFMX, you can intermix Java and CF code in the same template. Using BlueDragon for .NET, you can combine whatever .NET language you want in your templates. Let's see any of the other languages do that.
Do you have a list of references for all your expert-level knowledge of what ColdFusion is capable of or how it works?
We must have...you know... read a different book, used a different server, several different IDEs, a different language, etc.
Anyway, I simply suggest that you at least consult something like http://www.cffaq.com. While its probably not the best resource for CF knowledge, it would at least give you a start in knowing what you are talking about before you start reaming a great tool. A tool I have chosen after plenty of development in PHP and some experience in .Net.
Thanks
Man, what's with the CF Bashing? Most of your assumptions are woefully outdated and as others have commented.. just plain wrong. I'd much rather spend a few $$ upfront to get an easy to code environment than pay for extra hours of development throughout the life of the application. If you're developing anything of substance, you'll recoup that initial investment many times over by using CF.
It looks like your ColdFusion section was pulled from circa 1999 or 2000. Also asp and asp.net are two diff't things - only asp is the scripting language. Finally, while still relatively new, a Ruby on Rails section may be appropriate here.
I am a PHP and ColdFusion developer, and while PHP is much more popular and starting to come around with version 5, ColdFusion is still a faster way to develop complex sites. Yes, its easy for novices too, but also very robust for complicated applications (check out myspace.com). And performance for ColdFusion pages is very good. I doubt its as fast as PHP (it abstracts more complex coding on the back end) but I haven't run into performance problems since the release of CFMX 6.1, even running sites that get millions of hits per month (some on shared hosting with up to 255 other sites on the same box).
Unfortunately, people will look at this article and think it comes from an "expert", but it looks like you used to be a Perl developer who now uses PHP. That is fine, but you should either do your research or not comment on other scripting languages.
I'd say something in defence of CF here, but Ray Camden has already waded in, I think he, along with the rest of the CF user's who have posted here, have alrady made the point. I willl be burying this article on Digg.
I really have to echo everyone elses thoughts here, firstly the article claims to be a list of differences between the languages, it's more like vague ramblings on certain parts of the languages.
I have been coding Coldfusion for about 4 years now and never once encountered a wizard, i've mainly been working with DreamWeaver, cfEclipse and good old notepad.
Coldfusion can be classed the same as chess, its easy to learn but hard to master, sure you can have a hello world up in seconds and do some cool things within a few minutes but thats usually generated bad code.
CF's price tags sure can be a bit hefty, if you are a buying it yourself, though i know of some very good webhosts that can cost as little as $65 per year, which is as cheap, if not cheaper than some PHP or ASP hosting solutions.
Also you can add third party modules in the form of C++ CFX_ dll's (just like ASP) or Java CFX_ modules for cross platform compatibility.
Also with projects like Coldfusion-on-a-stick you can use it offline on a USB flash drive.
People have also mentioned fast performance over and over again, coupling with underlying java code i can do things like use Coldfusions native REFind() or i can use javas jMatcher.
With numerous frameworks, methodologies and extensibility, its unfair to call CF purely a procedural language as it's come a long way since the old days.
Oh and the documentation and examples are top notch, any problems you encounter can usually be solved by reading the docs thoroughly, though i'm not sure if that falls in to your "only one way to solve a problem"
And CFDUMP rocks :)
I've read your article and the comments posted so far and feel that your lack of proper preparation before posting is appalling.
To begin, any language that forces your code to be interpreted each time a page is requested is an issue to performance. That's one reason that Microsoft went from ASP to ASP.NET which is a shift from interpreted to compiled. I don't care how many utilities there are to assist performance. I don't know when that last time you used a command line "hand-compiler" in a production environment but with the advent of the Integrated Development Environment you should really consider using one that suits your needs.
Your section on ColdFusion (CF) also greatly lacks current knowledge of the language. In the beginning when CF was a product of Allaire even once picked up by Macromedia, up until CF MX was written entirely in C. From that point on ColdFusion has been completely rewritten in Java. It is a well documented fact that Java is only slightly slower then C but with very large benefits in terms of scalability, maintainability, and security. ColdFusion's ease of use is a direct vision of the creators from Allaire. They created a language that could be learned quickly and empower users with the tools to create large applications.
Also, many very large websites run on CF such as MySpace,
Bank of America, and the US Senate to name a few.
I hate coldfusion. And I have to use it everyday.
JG commented that Perl is not strongly OO oriented when compared to .NET languages. I do not agree with that. That's because Perl is what you want it to be. You can make really cool purely object stuff in Perl. I coded Smalltalk and Java and I love the way Perl implements the object model beginning with version 5.
Wow - so many ColdFusion bigots out there. No offense, but you all sound a little shrill. I've built full applications with every platform listed except Perl and have to say that CF - bar none - is the worst steaming pile of dung on the market (as of version 5). Back on 4.5 it was a decent product, but now, Oy! It's fine if you use the tag language, but if you want to properly structure your code with objects (AKA CFC's), you're going to be crying. When it translates to Java it creates not an object for every ColdFusion Component, but an object for EVERY VARIABLE AND METHOD. The GC just can't keep up on an app of any size and can crash the entire system, requiring a hard reboot (version 5, mind you).
PHP is fine for small apps or spaghetti code, but the lack of type safety or variable declaration enforcement is untendable. There's a good reason MS dropped these "features" when moving from ASP to .Net.
Java/JSP and .Net are the only platforms worth building on. I've seen amazing things built with Perl, but it's just too hard to recruit the developers for a commercial product (Amazon swallows them all).
Holy crap! I've never seen a more whiney group of people commenting on what some guy wrote comparing a group of programming languages. If I wanted to see pointless bickering, I would head over to the Republican vs. Democrat websites and read their slugfests. If you don't like what this guy has written, think his comparisons are unfair, or think he has left out too many languages, then by all means write your own review.
Very good article!
It will help my clients understand that PHP does rock!
Looks like nobody mentioned lasso... It easily competes with any of the current languages out there.
Note to future article writers: never say anything remotely stereotypical about CF unless you want to get flamed by their entire army.
I was originally going to post about my main beef with the article, that ASP and ASP.NET were lumped together (it's really unfortunate they share the ASP moniker), but it's been said.
There must be some mailing list or something where they're like "OMFG, this article is sooo wrong about CF - someone go mention MySpace!!1!"
The book "PHP in a Nutshell" was published by O'Reilly in October 2005. Surely they did the research that this article is accused of skirting. Breathe, people, breathe...
with the introduction of CFMX6 and onward coldfusion servers are essentially java application servers -- at our shop like the speed just fine :)
To the author of this article:
Are you sure you know what you are talking about regarding ColdFusion?
Are you sure you understand the difference between ASP and ASP.NET?
Are you certain of your facts in general, because I am not.
I like the article although it seems somewhat biased toward php. There is also a spelling error
"PHP scales perfectly well as long as you write your PHP scripts ***usi andng*** the same design patterns you would have used writing your JSPs."
Great breakdown and discussion of the different languages.
I did up a Rosetta Stone for coding languages.
But it's sorely in need of an upgrade to include new languages.
You have no clue about what you're writing about. ASP and ASP.NET have almost nothing in common.
JSP is just one part of the Java Web development landscape. Forgetting things such as servlets and Java Server Faces, as well as frameworks such as Spring and Struts is a major omission.
And yes, no matter what you may think about PHP, well-designed ASP.NET and JSP will outperform any PHP web app, thanks to real object and output caching. Both platforms are fully compiled and run on JIT virtual machines (.NET CLR and JVM). Not to mention that both ASP.NET and JSP allow you to write stateful Web applications, which is nearly impossible with PHP without third-part (often commercial, like Zend) add-ons.
They are truly object-oriented as well :-))
Please keep your comments clean and friendly people. Easy Webbers do not censor any comments. But, we do not accept any personal attacks against the author of this article. Those comments will be rejected.
Thank you.
Great article, really!
Easy to read, full of great knowledge. Keep up the great work
ColdFusion is inflexible?
Name another web development platform that ships with, amongst other things:
Rich forms
XML forms
Dynamic PDF/FlashPaper generation
Integrated reporting
Integrated charting (Flash, JPEG and PNG format)
Event gateways (repond to things like SMS messages, Instant Messages, file activitiy on the server, etc)
Flex 2 integration
Integrated search engine (Verity K2 Server)
EAR/WAR and sourceless deployment
Administration API
Strong encryption
Clustering and instance support
Enterprise database connectivity
Multiple OS support
etc.
ColdFusion is a proven winner which is why, after 11 years this month, I am still using it.
I don’t know a lot about PHP, Perl, and ColdFusion. However, I do know a bit about ASP and ASP.NET, and I know a lot about JavaServer Pages (JSP). I think the author either needed to do a little more homework or should have given out a lot more information.
My biggest problem with the article is that he considers JSP as a scripting language when, if used properly, it’s only a small part of an object oriented approach to programming a web interface for a back end system. Actually, JSPs are just pre-servlets if you will. They are interpreted from a .jsp file into a true Servlet (.java file) and then compiled like any other Java source file. The JSP technology was developed to allow Java web programmers an easier way to write web pages than by using a PrintWriter and coding in a whole bunch of PrintWriter.println()’s. That was the way that Java web developers had to code in the Servlet only days. It’s really frowned upon for coders to put actual logic into a JSP page using scriptlets (JSP scripts). The encouraged approach is to design a web page with layout in mind, and to put the dynamic code into JSTL files. Now a web page designer can get as artistic as they want and just insert some JSP tags where they need dynamic content. Sun has allowed for a real separation of web design and the programming of business logic.
I don’t even think that JSP technology should be used at all if you just want to create a small web page (unless you’re already a Java programmer), it’s overkill. JSPs should only be used when you have a true need for an enterprise solution. That’s why it’s part of the J2EE (Enterprise Edition) API.
(as of version 5). Back on 4.5 it was a decent product, but now, Oy! It's fine if you use the tag language, but if you want to properly structure your code with objects (AKA CFC's), you're going to be crying.
I don't recall CFC's being available in version 5. I could be wrong, though I wouldn't bet on it.
Would be nice to know a bit about the author of this article. Sounds like a kid who just got out of a technical college and did a poor job of researching and obviously is lacking the experience.
friend, very big mistake exists in the text.
ColdFusion is a great language of the (World languages) the source 'font' is very wrong to say than CFML is a loss/bad language.
Your assessment of Coldfusion is completely incorrect. You'd be well advised, as a contributor, to get your facts straight before espousing expertise in Coldfusion and writing it off as only for novices. You really show how little research you've done when you make comments like you did.
There are a number of very LARGE scale sites running on Coldfusion and there are many, many hard-core programmers writing enterprise level web applications. To suggest that Coldfusion has no programming power is uninformed.
If Coldfusion is such a novice tool, Adobe certainly would not have bought Macromedia. They're so large, they can buy or develop whatever they want.
There are many benefits to Coldfusion, primary of which is the rapid application development time it affords. Applications can be written in fraction of time comperable PHP, ASP, or JSP apps can be written.
As for the price of the system, cost of the software is only a starting point. PHP, ASP, JSP, et al, require seasoned programmers and a host of other tools, that all add to the overall cost. Anyone can download Coldfusion MX development version for free and do all their coding/testing at no cost whatsoever.
A follow up artical correcting the erroneousness of what you wrote about Coldfusion seems in order.
Yes, you missed the mark on Coldfusion. Powerful, simple, specifically targetted for web applications, not tied to the operating system directly, very stable, and flash loves to play with it.
Post a Comment
<< Home