Why use CFWheels (ColdFusion) when you got Rails (Ruby)?
Posted by Jonathan at 6:40 AM
40 comments - Categories:
ColdFusion | Ruby on Rails | Subversion | Framwwork | Railo
Caveat: I am going to ramble a bit...
Chatting with a good friend of mine, I sent him a link to the CFWheels website to get his opion. You see, this friend of mine is a huge Rails developer. He's a great developer even if he does like country music and I wanted his opinion. I was curious. His response? "why use CFWheels when you could use the real thing?"
It's a good question. And it got me thinking.
The Quick Answer for Me
I work in an enterprise shop. ColdFusion is our environment. Rails is not an option. It took me a lot of effort to just get us to use Subversion, being Open Source and all. So professionally, Rails is not even an option.
But that doesn't really address the real question. Why use a port of rails instead of just using rails?
What I know and What I do not know
So I am coming to this with a long history developing CF apps. I have toyed around just a bit with Ruby/Rails. I have reviewed the language. I have never used Wheels. I have read through the "getting started" material. so I am coming at this with very little "experience". For the record (john), I think Rails is brilliant. Ruby as a language... I can see why developers love it. PHP, which i have used, is lame.
So I would love to hear what people both in the ruby camp as well as the coldfusion camp have to say. But here are some reasons I think using CFWheels makes sense even though it is a port and more broadly, why CFML as a language, is still, for me, not lacking enough to look elsewhere (sorry Hal).
J2EE
Coldfusion compiles to java byte code. it is multi-threaded, high performing, robust. Proven in the enterprise. Are there Rails apps running in the enterprise? Probably (twitter i guess). I don't know. What I hear about running high performing Rails apps seems to involve deploying to many many many (mongrol? passender?) app servers. It seems clustering is required if more than 3 people are going to use it ( i jest). I know rails got a bad rap about being scalable back in the day. It is my impression that this is no longer the case. But the solution seems to be throw app servers at it. Seems odd. Being able to build RAD apps in CFML and deploying them to a host of different J2ee servers seems like a win to me and a good reason to stick with coldfusion.
Also, you get all the power of Java by instantiating any java classes natively in CF
<CFEXCHANGE>
ok, I have never actually used coldfusion and exchange. But it points to one of the selling points of coldfusion. especially in the enterprise. The built in interaction with things like exchange, .net, ldap... The list is long. I do use the PDF functionality and although you can do that with other languages, CF makes it so easy. With CF9, you get <cfspreadsheet> that looks awesomely powerful.
Rails and CFWheels are just Frameworks
Really, they are just frameworks that make development quicker and more organized. For the record, I am very impressed with rails. as i am with groovy/grails. Matt Woodward had a blog post, thanking rails for what it has done for web development in general. I totally agree. I have spent a good deal of time, building Rails like stuff into our own home grown framework. The point being, it is still just the framework.
We have our own framework that let's use create basic applications very fast. I would demo it by creating an application powered by 5 relational tables, full ldap authentication (with a service DN), some built in jquery UI, all in about 10-15 minutes. Is it a great framework? probably not. It has been developed to do exactly what we spend most of our time doing. It solves many of our common problems and let's us build the basic stuff automatically and lets us spend our time working on the difficult things.
Frameworks as a crutch?
What if you just need to deploy a form that requires LDAP auth, captures data into a table, send out an email and that's it. Sometimes we get that kind of request that needs to be done quickly. I do not need a framework to do that. What is the memory footprint for a rails app? I can't think of a better language to do this in than Coldfusion.
Coldfusion has a bad history as far as frameworks go?
It seems Coldfusion was very late on the framework scene. Fusebox has been around for a long time. But honestly, other languages were way ahead of CF. That has really changed just in the last several years. There are a gazillion frameworks now. a lot of them seem really pretty fantastic.
Open Source / Free (rubly on rails is, coldfusion is not)
railo... open bluedragon... next.
The Real Strength of ColdFusion
What I really value with CFML as a language is that it let's you do whatever you need to do. the freedom. You can be the biggest spagetti coder in the world if you want. Or you can be a complete OOP zealot. You can be a complete programming novice and get up and running with coldfusion extremely quickly, but after almost a decade, I am still pushing myself and feel like I have hardly scratched the surface of the power that CF gives you.
Coldfusion is Dead, Long live coldfusion
and i will end it with this. coldfusion is ancient. yeah. it's dying right? no language that is about 200 years old could not be viable anymore. Just in the last year or two we have 2 (count 'em 1, 2) open source engines. another major release from adobe, a new IDE, yet another increase in sales... Honestly, isn't that astounding? testimony to just how much coldfusion has to offer? It just keeps going and getting better. It's not going to get this huge surge and become the next new thing. because it's not. It's been around longer than bread.
John, see you at La Esperanza tomorrow!
So now.. Sound off! I'd like to hear opinions from all sides...
Raul Riera wrote on 12/10/09 7:33 AM
Nice read! you got some good points there... I worked with Rails for a while but I didn't like all the low level things I needed to do. Glad that you have taken an interest on Wheels.. come visit us at the groups :)