CFC vs. ASP.NET
In another erroneous DevNet article, Ben Forta tries to say that ColdFusion is a good alternative to ASP.NET. [1]
“In other words, a commitment to .NET means a commitment to building applications that are open and extensible through SOAP and web services. A commitment to .NET in no way requires that you use any specific development language, not even ASP.NET. In fact, it is perfectly acceptable to mix and match technologies, to create hybrid applications using a mixture of best-of-breed and complimentary components.“
This is wrong on two accounts. First, a commitment to .NET does not equal a commitment to SOAP and webservices. They are definately very useful tools, but many .NET projects are perfectly happy to live without them. Additionally, although it may be perfectly acceptable to “mix and match“ technologies, that doesn't mean it is a good idea in the least bit. By mixing and matching technologies, you not only increase your infrastructure costs, but you also increase matinence costs and muddy your architecture. It is amazing how many tool vendors don't realize that. They think, “we are running on J2EE and expose everything through webservices, so you can just install our product on some box and go.“ While it may be an option for large enterprises who already have staff on site to support multiple platforms, the average developer is neither capable nor gullible enough to implement such a solution. Any vendor that wants to reach critical mass with .NET developers needs to offer a pure .NET solution that runs on top of IIS, not J2EE and some 3rd party app server.
“ColdFusion MX is architecturally similar. Instead of running on the Microsoft proprietary Windows-only .NET platform, it runs on the multi-vendor J2EE platform.“
Let's get this straight once again. .NET is not a Microsoft propretary, windows only technology. It is intended to be open and available for others to implement, and this is exactly what Novell is doing with Mono. Look at Miguel's own words:
“The .NET development platform is a very rich, powerful, and well designed platform that would help improve the free software development platform. Just like the GNU project began to clone Unix sixteen years ago, we will be cloning the .NET development platform because it is a great platform to build on. “ [2]
“.NET seemed to me like an upgrade for Win32 developers: they had the same problems we had when dealing with APIs that have been designed over many years, a great deal of inconsistency. So I want to have some of this new "fresh air" available for building my own applications.“ [3]
Yes, there are definately portions of the .NET framework that are not in the specs, but that doesn't mean that they cannot be implemented by others (as Ximian is doing), or that people are not free to develop their own complete solutions on top of that functionality that is found in the specs. Even the supposedly cross-platform J2EE has the same sorts of problems when you start building real world applications and discover that you need an app server.
“What all this means is that ASP developers can feel quickly at home in ColdFusion, probably more so than they do in ASP.NET.“
Yah, maybe if they really enjoyed learning XSLT and doing declarative programming...
“You use both ASP.NET and CFML at an application's presentation layer, where productivity is a primary goal....Both ColdFusion and ASP.NET recommends using parameterized queries instead of embedding SQL.“
Oh... so now we are supposed to embed our SQL queries in our presentation layer... yah. Chalk that up as a feature that should never be used.
“Enforced frameworks and structured development are both a blessing and a curse; while they encourage using best-practices and thus promote the creation of better applications, they can also get in the way of application development, often complicating development projects.“
Yes, but .NET is nowhere near J2EE's complexity. The constraints are really minimal and you aren't bound by anything other than the typical constraints that apply to any web application. However, as much as frameworks may “complicate“ development projects, solid architecture isn't exactly a breeze now is it? Taking the easy route may get you somewhere if you are developing mom and pop apps all day long for your 14 year old neighbors' lawn mowing business, but it doesn't buy you much in the real world.
“ColdFusion provides the language features needed to build highly scalable, structured, n-tiered applications.”
Actually, it lets you build out your presentation tier, but if you want to create a “highly scalable, structured, n-tiered application,“ you are going to have to do 90% of the coding (ie. your business logic and data access layers) in some other tool.
“Developers with an investment in Microsoft technologies and the .NET platform will find ColdFusion to be a powerful and cost-effective addition to their development toolbox”
Yah right... so, when I build my product and start shipping it, now I need to tell all my customers that because I was lazy and bought into this bull they have to install IIS, Apatche, J2EE, Cold Fusion, and the .NET framework on their box before they can use my app. That's not exactly what I call “cost effective.”
[1] Life after ASP. Ben Forta.
http://www.macromedia.com/devnet/mx/coldfusion/articles/cf_aspnet09.html
[2] The Mono Project.
http://www.go-mono.com/rationale.html
[3] Miguel de Icaza Explains. Dave Winer.
http://scriptingnews.userland.com/stories/storyReader$1275