Viewing By Entry / Main
July 17, 2006
Gregg Sporar has an interesting review of Bruce Tate's book "From Java to Ruby" which made me think: for "Ruby", read "ColdFusion". It seems that pretty much anything Bruce says about the benefits of Ruby compared to Java, could be applied to ColdFusion.

In particular, consider some of these phrases (I've substituted ColdFusion for Ruby [I originally mistyped "Java" here so thanx to Paul Kenney for spotting it in minutes]) in Gregg's words:

"dynamically typed languages like ColdFusion will always be more productive than statically typed languages such as Java. In addition, he is not too fond of Java's C++ like syntax and the fact that the primitive types are not objects"

"Tate recognizes that ColdFusion could end up being the next Smalltalk, which he describes as not necessarily a bad thing. He thinks it much more likely that ColdFusion will instead be a huge mainstream success. What he did not provide, and what risk-averse development managers could use, is a description of the signs to watch for that indicate that he's wrong and that ColdFusion is in fact becoming the next Smalltalk"

We're used to being a niche language (like Smalltalk) but what an interesting proposition that we could become a mainstream language.

So you have to ask: why Ruby? why not ColdFusion?

Comments

I agree, why not coldfusion? does ruby really offer anything that CF doesn't? and I know for a fact that ruby doesn't have J2EE underneath it, so CF is already more of an enterprise-strength language right out of the box. I don't know, I think CF is really a no-brainer in comparison to that vs. ruby.


I just don't get Ruby. I get the Rails portion, and dig what it wants to achive, but the actual _language_ of Ruby seems very hard to read.


A real dilemma. We know, or at least suspect, that Adobe are now hard at work on CF8, but what to add that CF doesn't already support - out of the box?

I can only think of very a few things - mainly at the authoring environment (Flash Forms can be a pain to layout, tweak, etc). After using some of the new MX7 features like Charting and PDF/FlashPaper generation a bit of work there - but still I am blown away.

18 days from start to finish - Flash Form based CF application - dynamic charting - PDF/FlashPaper generation - my main issue was how time consuming it could be to "tweak" the flash forms in Dreamweaver 8.

Save. Reload. Tweak. Save. Reload. etc.

I know that MX8 will rock - I am just not sure how!!! Which is almost a good thing! But better design time Flash Form tools would be a god-send - Flash Player 9 makes using substantive flash forms even easier.


ColdFusion and Ruby both have their strengths. Would be pretty hard to do a desktop app in CF, for example.

I'd like to see the simplicity of ColdFusion combined with the syntax of ActionScript 3 (as a replacement for CFScript?). Then I can use the same syntax across server (ColdFusioon), browser (Flex), and desktop (Apollo).


ruby is free, pre-installed in *nix systems (including Mac OS X), has a nice Ajax system, a package management systems, and it also has Rails.

and now you can run ruby in java.

to me, the main benefit of coldfusion is the cfquery tag, which is generally considered bad practice these days, especially compared to ActiveRecord or CF ORM frameworks.

i'd like to some major improvement in cf8: better handling of input to web services (WSDL2CFC would be nice), actionscript in cfscript, ajax integration (using Spry, no doubt), object persistence, smarer template caching settings, image manipulation, exhange and/or office integration


Well that's annoying. My comment vanished into the ether, with this message:

Please correct the following issue(s)::

You must include a valid email address. An unknown error occurred - contact the site administrator


The issue boils down to money and flexibility. Broke college kids won't pay for development tools, or for CF hosting. The open-source nature attracts some people for ideological reasons

They also want to learn a "real language." Ruby can be used for one-off scripts, GUI programs, and web sites.


I'm sorry, but I no longer buy the "College Kid" argument. The dev tools are now as free for CF as they are for PHP or Ruby. The only thing not free is hosting, but the same applies to PHP. PHP may have slightly cheaper hosting, but I've seen some darn cheap hosting for CF as well. And just because the college kid is poor does NOT mean the client is, and therefore hosting would not be a concern.


Good comparison Sean, raises interesting questions.

I can't speak for the enterprise, which was the target of the reviewed book, but for individual developers I don't think the question is "Ruby or CFML"; the real question is "RoR or CFML + Model-Glue + cf.unit + ColdSpring + Reactor + some other stuff." My guess is most mid-level programmers are exposed to the framework first when they pick up Rails, and only later do they really pick up Ruby. For CF the process is reversed.

Just my two cents: Adobe can keep CF competitive by picking a whole kit (framework, unit testing, etc.) and making it "official."


fyi - Bruce Tates blog (blog.rapidred.com) is worth a read.

I think his writings provide great perspective to a Coldfusion developer regarding the software industry.


I've been doing a lot of reading on Ruby and Rails recently and while I like what I'm learning, I've been able to use all of the concepts with Coldfusion. (I miss a few of the Rails helpers in CF, but CFWheels has a few of them implemented already)

I don't know how Rubyists live without CFDump and CFQuery though.

I have no intention of moving to Ruby, but I think it's good to see how Ruby and Rails have tackled the same design problems.


Technical issues aside, one of the major problems with choosing ColdFusion for a project these days is the incredibly small pool of development talent that has experience and/or interest in ColdFusion. Whether deserved or not, ColdFusion simply does not get attention from the vast majority of web developers, and if you're trying to build out a talented team of engineers you will have a much harder time doing that with ColdFusion than with RoR. Adobe is clearly making some progress in addressing the things that "real" developers want, but like it or not ColdFusion's reputation makes it an uphill battle to convince most talented engineers that they should spend time using it. This is NOT a technical argument -- it's not about productivity. It's not about the richness of the language. It's not about whether good developers SHOULD use ColdFusion. It's a simple market reality that the supply of solid engineers willing to spend their time working on ColdFusion is drastically smaller than the supply of solid engineers willing to spend their time on Ruby on Rails. Sad, but true.


I only hope the job opportunities don't dry up (by projects moving to other platforms) when it comes time for me to move on...

... and yet, we're moving to JSP and Java - just to support Blackboard LMS. I can't even get them to upgrade the existing servers to CF7 (let alone 8 whenever). Sheesh! management....don't you just love 'em...


As a complete CF outsider but an experienced Java and Ruby programmer, I can say that I never hear about CF. There's a lot of circumstantial "magic" that goes into creating the sort of tipping point that Ruby is experiencing right now. I don't believe it's something one can easily manufacture. It's certainly not about technical merits alone.

If CF advocates want the buzz and adoption of Ruby, you'll need to give a very compelling arguement about how CF fills some niche or need that Ruby and Java both do not. It cannot be pitched as a direct competitor to Ruby (ie- replacing CF for Ruby in the article). You'll need to come up with your own unique case.


>> how CF fills some niche or need that Ruby and Java both do not

that's not fair. I'd never heard a peep about Ruby before it became popular _because_of_rails_. In my mind, CF has been around a hell of a lot longer than Ruby, and like Ray Camden, I can't see what the fuss is about the language itself anyhoo.

1) what's so darn special about Ruby (the core language) that makes it better than CF? 2) if CF-on-Wheels or Reactor+MG+ColdSpring had been around before R-on-R and got the hype, where would this conversation go then?


Who said anything about fairness? Tipping points are not fair. And as I said they're not about technical superiority.

Ruby is just as old as CF. Ruby was released by Matz in 1995. The first version of CF was released the same year. Ruby's popularity in the US spurred by Rails is certainly a recent phenomenon, but the language itself was popular in Japan long before DHH adopted it.

Whether you agree with they hype and fuss is one thing. But not understanding the fuss at all means you'll never get why Ruby is gaining mindshare while CF remains stagnant. This is also true with respect to Ruby's technical merits.

As for your actual questions:

1) As I said, I'm not familiar with CF itself, so I'm in no position to make a full comparision. However, Ruby begin life as a full fledged general purpose language, not explicitly tied to the web or databases. It has many strong influences from Smalltalk, Perl, and Lisp that make it very powerful and useful outside the realm of the web. Not understanding these other languages will also make it difficult for one to understand how CF compares.

2) Those are two incredibly big "ifs" particularly the one about hype. The hype factor is hard to deal with because hype's not necessarily rational, predictable, or explainable. However, even if CF had such frameworks earlier that would not diminish the appeal of Ruby as a replacement for Perl and competitor to Python in areas outside of of web development.

Arguing against Java or Ruby on the basis of fairness will not win mindshare. Even just presenting technical superiority is not enough. To win minds you have to solve pain points. You have to go above and beyond the solutions presented before. You have to make the benefits so great and the cons so small that the net result is migration to the alternative technology is cheaper than remaining with the mainstream. And even if you do all that, sometimes you still simply need to be in the right place at the right time.


barry wrote: "if CF-on-Wheels or Reactor+MG+ColdSpring had been around before R-on-R and got the hype, where would this conversation go then?"

What's the point of a hypothetical? Who cares?

One of the reasons RoR is hot is that it's an integrated package, unlike "Reactor+MG+Coldspring." And it's got envangelists who are smart enough to make a "you-can-build-a-blog-in-15-minutes" quicktime, instead of an "oh-yeah-well-I-can-make-one-too."


> One of the reasons RoR is hot is that it's an integrated package

Marc, I'm sure I'm not the only one bitten before where "integrated packages" just can't cope (eg bolt-ons to legacy systems - 777 tables and not a PKey to be seen - they're all multifield unique indexes). It's a shame when it'll only work downhill with a tailwind....

but that what I was getting at with the language+framework. Take away Rails and what have you got? what's so special about the language? powerful constructs never seen before in a language? wonderful syntax that gives you orgasms to write?

and if it really comes down to the "integrated package" idea as a marketing tool then that's a shame that the CF community (or MACR/Adobe + New Atlanta) got beaten to the punch.

I'm just after a more complete understanding of how Ruby is stealing CF "ground" (ie: alternative to Java) - which ties in with Sean's origional post.

it's just sad that key ppl here are less interested in seeing the servers upgraded to CF7 than playing around with a new toy [url]plas.fit.qut.edu.au/Ruby.NET[/url]


Sean,

Maybe it's a matter of branding. Perhaps the ColdFusion, Model-Glue/MachII, ColdSpring, Reactor combo could be rebranded as a package too. What about ColdFusion-on-Skis or something!? Or staying on the nuclear theme what about ColdFusion FastBreeder!?

And no, before you ask, I'm not currently gainfully employed in advertising...


> ColdFusion FastBreeder

I like it!


Ruby has David Heinemeier Hansson, 37Signals, Basecamp, and Rails to help drive Ruby hype. ColdFusion has Ben Forta, but Ben hasn't joined the "fortune 5 million" company, written the killer app, and extracted from it the single framework that helps drive ColdFusion hype. Ben, what are you waiting for? ;-)


barry.b - I must say that as a former user I am sorry to hear that your org is moving to Blackboard. It is one of the slowest and most painful web apps I have ever used. I also feel your pain that everyone is too busy looking at new stuff to pay attention to what is already there.

I don't have a lot of CF experience. I think that I see two problems. One, its slow. It may not really be slow, but the web apps based on it at my company and apps like MySpace are slow. Because of things like that, entry level web developers shy away from it. Two, you mention that it can be free, but thats not the primary method. Most people learn CF through Adobe/Macro. programs and then move on to learn the free solutions. The same goes for Flash.

As far as ruby, I see a few things. The syntax is very simple, it encourages small classes. Blocks. Meta Programming is rather nice. The OSS ideology. Finally, the gems system rules, I haven't seen anything like it. Yes, it is basically libraries and the likes, but it is nice that all you have to do is type 'gem install rails' and you have the entire RoR framework installed.

I don't want to beat down on anything else, I just want to give my 2c as to why I focus on learning Ruby not Python, PHP, or Perl. I would love to hear rebuttals that could interest me in ColdFusion, and I like the name ColdFusion FastBreeder :)


James Deville said... "It may not really be slow, but the web apps based on it at my company and apps like MySpace are slow."

I agree that CF can be slow now and again. However, more often than not, this is down to bad application architecture. Some parts of CF are horribly slow and you'll want to use Java for those bits (seen lots about using the StringBuffer class recently). FYI: MySpace doesn't run on CF any more. It runs on ASP.Net - the fuseactions and other querystring parameters are mapped to the new ASP.Net app. At least that's what I've read on several sites.

My explanation for RoR being 'cooler' than CF is that it does everything and it's all built in. ActiveRecord, unit testing, MVC methodologies, etc, etc. I bought a book on RoR to see what all the fuss was about and I have to say that I absolutely loved it. CF doesn't have most of this functionality built in, so you have to go and research to find out how to integrate something like unit testing into your app. If you didn't look at this when you were picking up CF, you risk getting stuck in your ways and thinking it's not necessary. However, the 'definitive' RoR book tells you about unit testing and how to use it in your app. If you learned RoR before CF, I really couldn't blame anyone for thinking CF is far, far inferior.

Just random musings. Hope some of it makes sense ;)


George wrote: 'However, the 'definitive' RoR book tells you about unit testing and how to use it in your app.'

Might I ask what the title of the 'definitive RoR' book is? And the author?

Thanks.


"Agile Web Development with Ruby on Rails," Dave Thomas and David Heinemeier Hansson. It's sort of the CFWACK of the RoR world.


Hmm, I think my last comment got eaten. Sorry if this ends up as a dupe.

> Might I ask what the title of the 'definitive RoR' book is? And the author?

"Agile Web Development with Rails" by DHH, Dave Thomas and Mike Clark

DHH (David Heinemeier Hansson) is the original author of Ruby on Rails.


It seems to me that there are WAY more similarities than differences between Ruby and CF.

I think the real hype is over Rails. The Rails API is easy and pretty uniform for controlling a number of web/DB technologies, and the helpers are fantastic.


The hype around Ruby is definitely Rails. Developers got fed up with the slow development process in J2EE and Rails offers some big immediate productivity gains. I'd be very curious to see how much time is saved in a complex application that's doing a lot more than basic CRUD, since that's the main spot where Rails really shines.

I think if you want to get the word out on the street about the advantages of CF, a good place to start is on Digg. There is a Rails story promoted to the home page almost every week. If CF got some visibility there, it might help create more a "grassroots" movement instead of your traditional top-to-bottom corporate marketing approach.


Oh yeah, I forgot I wanted to comment on this...

"dynamically typed languages like ColdFusion will always be more productive than statically typed languages such as Java. In addition, he is not too fond of Java's C++ like syntax and the fact that the primitive types are not objects"

"More productive": that's assuming that you don't have a tool to manage compilation/deployment for you. The Tomcat Eclipse plugins do just that, and the WebWork framework has a QuickStart tool that can dynamically reload classes once they're modified. I know people in the Java open source community are lobbying Sun to add additional support in the JVM to make this more powerful. It's very possible that within a year or two that Java development will be very similar to working with a loosely-typed dynamic languages like CF, Ruby, PHP, Python, etc.

"Java's C++ like syntax and the fact that the primitive types are not objects"

Syntax is personal taste. JDK5 adds support for autoboxing so Java's primitives (int, long, boolean, etc) can be exchanged with the Classes in java.lang (Integer, Long, Boolean). Problem solved.

Additionally, JDK6 / JSR-223 will provide support for scripting langauges directly into Java. Macromedia and Zend (PHP) were both involved in this effort.

-Cliff


Using Reactor/MG/Coldspring is NOTHING like ROR (xml situps, anyone?); using CFWheels is more like ROR, except that there's no community/no committers/no book/and darn little recognition by most CF biggies.

All the talk on this blog has been Reactor/MG/Coldspring, which feature the ease of development of Java, combined with the consistent syntax and open source basis of Coldfusion. It looks like a brilliant (seriously, very sharp programming) solution to the wrong problem.

Sheesh. Has anyone really heard developers wishing CF were more like Java? But that's the direction I saw here and elsewhere for months while I evaluated frameworks. Flex is being touted as "Java-like." That completely tore it for me; I'm a Rails developer now.

I really tried to stay with CF; I did -- but the only framework that competes with ROR (CFWheels) gets no buzz, no recognition that I can see. If the CF community got behind CFWheels the way they did behind the "Java-lite" technologies, I'd still be a happy CF developer.

Bottom line: Ruby is the price you pay to use Rails -- and Rails is worth the price. Ron


why Ruby? why not Coldfusion?

4 words: Active Record , Form Helpers


obviously the above statement is considering Ruby WITH Rails - not Ruby alone. The ruby language has definitely grown on me as well, its one of those languages you have to give a try - I was skeptical at first too.


Ron and Britt, thanx ppl, this is what I was really hoping to clarify for everyone.

I don't want to flame anyone, I just want to really understand what Ruby (with/without rails) strengths are and where CF has gone "wrong"

is Ruby *still* worth it, even if you can't use Active Record and Form helpers ('cos it's a dog of an app - full of gnarly "micro-logic" at every level, no PKeys and an unsupported - for Ruby - database**: Informix). This is what I meant about such 4GL helpers (CF ones included) only working "down hill with a tailwind"... it's a one trick wonder?

(** the Rubyforge Informix/Rails adapter seems to be stillborn, and because it hasn't got a company the size of Adobe behind it, would _you_ trust this critical piece?)


barry.b asked... "I just want to really understand what Ruby (with/without rails) strengths are and where CF has gone 'wrong'"

Dude... In my humble opinion, no-one can really answer that (in terms of Ruby/RoR vs CF) for you; it's all down to personal taste, what you want from a web-app server, and how each option mixes in with your business requirements. Do the same small project in each language and make your own mind up. Each will have pros and cons, some you can trade for the other, etc.

It's down to what you need the platform to do more than anything. CF is great at some things and shocking at others. As an example, I had a huge barney with CF the other day because there's no SAX parser. Most people will never have even the smallest inclination to use one in a CF app so it's not a big deal to them, but for the project I was working on it was a huge deal. I got round the problem by writing (or horribly hacking) my own together. I let CF off the hook this time though, because I know how great it is at other things that I do far more often.


>> In my humble opinion, no-one can really answer that (in terms of Ruby/RoR vs CF) for you;

true enough, but it's two seperate (but related) questions and it's other ppls's opinions I'm interested in. I'm stuck with my own situation being dictated by my empolyers in the short term and where I want to go career-wise in the longer term.

>> It's down to what you need the platform to do more than anything.

that is soooo true... and it also includes frameworks. one size does NOT fit all, I've found (the hard way). That gnarly 777-table app I mentioned? not even Doug Hughes' Reactor would cope...


barry >>that is soooo true... and it also includes frameworks. one size does NOT fit all

Good point. That is also one of the problems with all of this hype. Some people are using rails where HTML and JS would do.

>>'cos it's a dog of an app - full of gnarly "micro-logic" at every level, no PKeys and an unsupported - for Ruby - database**: Informix

What do you mean by this? I am not sure what you are refering to with "micro-logic" and no PKeys (primary keys?). As far as Informix, I think the problem there is mainstream. Most people want to use RoR and Ruby with Oracle, MSSQL, MySQL, SQLite, or PostGRES. I haven't heard of Informix, but that probably has to do with not doing a ton of DB-Driven apps yet.


>> What do you mean by this?

I won't bore ppl with more details (irrelivant really) but it was a legacy app (and DB schema) that was being rebuilt "for the web"... and the bosses knew best (ahem!). But I was just trying to make the point that not all web apps can be written completly from scratch - which is what RonR (and frameworks generally) seems to work best with... the more complex/F***ed-up the design, the less it helps.


Yeah, Barry B. and George: I admit that I got pretty wound up there -- CF is still hard to top for a small set of Web pages that can be maintained by hand, and is at least in contention for server scripting.

However,CF doesn't even pretend to do desktop, and for general data-munging, it's not really a contender. In fact, CF is completely irrelevant outside RAD for the Web, and now they're not even the best at doing that. I mean, how long have we been asking for graphics capability like Python, Ruby, PHP, etc. include for free -- let alone a framework like Rails?

Apparently, they are focusing on attracting disaffected Java developers. Ruby is not especially Java-like; it's more Smalltalk-ish. Python, though, does feel Java-ish, and is a lot quicker to develop. I'd bet on Python (which has at least two reasonable Rails-style frameworks IN USE) over CF in that market

However, I've done all three, and for a site of any serious complexity, Rails has no competition at all in the RAD Web arena. None.

It's completely outclassed CF in its strongest area, and Adobe doesn't even seem to notice.

Ron


thanx for the honesty Ron, that's just the sort of stuff I was hoping to drag out of ppl (keep it comming - I hate to hijack Sean's blog on this but the guy is probably reading it so hopefully it'll come to some good)

sometimes it takes another viewpoint to see that the Emperor is *really* walking around starkers!


As a person who has done ColdFusion for 7 years, Java for 5 years, Python for 1 year, and Ruby for about a month, I can say this:

1) Ruby on Rails is good stuff. Very fun to use!

2) Ruby is okay as a language, but I think I prefer Python for anything that isn't web development. But since both play well with YAML and JSON and REST, I can use both Python and Ruby easily together!

3) Model-Glue:Unity is the killer framework for ColdFusion. Very fun to use! The downside is the XML situps. Python convinced me that less XML is better. Also, it would be nice to have a feature that converts MG:U output to JSON or YAML or something useful for REST. Many Python frameworks do this now, so why not MG:U?

4) On Java: I am about 5 times more productive in Python than I am in Java. I think the more that the CF gurus steer development in CF away from being Java-like, the better.

5) XML situps suck. To paraphrase someone else's paraphrase, if you you have a problem, and you add XML, now you have two problems.


barry b. said: ". . .the Emperor is *really* walking around starkers!"

Yes, that's why I got so wound up. The original question was straining at gnats (Ruby) and swallowing camels.(Rails)

To paraphrase Daniel:

IF the big question is, "General Java developers -- where should they go when they're sick of crying themselves to sleep?", then Python is probably the best answer. Ruby is second (arguably) and ColdFusion self-eliminates (doesn't do desktop.)

IF the big question is, "Strictly-Web Java developers -- where should they go when they're sick of waking themselves up screaming?", then RoR is a great answer. Python is second (TurboGears or Django), and ColdFusion self-eliminates (doesn't do graphics, wierd OOP, verbose syntax, ugly URLs, etc.)

What's left?

Ron


Ron said... CF "doesn't do graphics"

Well no it doesn't. However, Java does, and therefore so can CF if you try hard enough. It's quite possible to call up Java2D or even Java3D from CF. However, you're going to have to know at least some Java, and I doubt it's anywhere near as clean as alternatives in other languages. Or you could use the canvas, but that limits the browsers that will be able to see the graphics.

Your points about weird OOP and verbose syntax are completely fair and are things that have been winding me up a lot recently. I've been using mixins and duck typing a lot of late and I still feel dirty whenever I have to use them. I'm not sure what you mean by ugly URLs - I know CF can support search engine safe URLs if that's what you mean.


George,

as you said about CF and graphics: "Java does, and therefore so can CF if you try hard enough. It's quite possible to call up Java2D or even Java3D from CF."

I agree, but Java was what the hypothetical developer in Sean's post was trying to avoid!

As far as ugly URLs: I slipped back into comparing frameworks again -- sorry if I wasn't clear. None of the CF "Java-lite" frameworks support pretty URLs out of the box, as far as I remember.

CFWheels supports pretty URLs, but who supports CFWheels? Rob Cameron all by his lonesome, that's who! No Trac wiki, no mailing list, no Google or Yahoo group, and precious little notice from the "Java-lite" crowd.

The whole process makes me sad. What I see is a lot of emphasis on very clever answers to the wrong problem.

Ron


>> "So you have to ask: why Ruby? why not ColdFusion?"

So, Sean, does all this answer your question? For myself, I'd love to hear your concluding thoughts...

and for me, with the dying support here for CF (I've tried everything: free flash remoting, RAD dev, etc), the app I'm just about to start on will *have* to be Java/JSP. I _was_ thinking of prototyping it in CF first but I'm asking (after all of this) why not do it in Ruby on Rails instead?


I've always been of the opinion that coders start young - and if the difference between a platform is free and not free, they'll play with free. I'm not talking the tools, I'm talking the engine. They like to install stuff. Weird eh - they like to take their extra boxes, hook them as servers to the net through ADSL or Cable (sure, you're not supposed to), and they like to play. They like to install.

So the biggest barrier to ColdFusion is addressing the 13 to 19 year olds, and giving them the tools so they too can be cool, and uber-geek, and nerd out by installing stuff. We don't do it because it's an "Enterprise" or "Business" product.

ColdFusion can not, will not, could never not, win the hearst of the majority of new developers because it's not therer for them to install on their own servers and use to share with the world.

I love CF. It rocks. But I can not get it into my local Not-For-Profit because there's an associated cost (and they have a voulenteer that is techie cool, but want's - well, he says open - really he means free to monkey with) server software. That's why they've committed to looking at Ruby.

And ok, NFP is not CF's market.

But still. Microsoft gets developers because of the massive money to be made. CF gets developers because ... ... ...

That's the real question: "CF gets developers because ... ..."

That's the real question to solve. Try that with many languages ".Net gets developers because ... ..." "PHP gets developers because ... ..." And compare.

I argue the adoption of ColdFusion is not because of how good it may be. The value of the tool is a straw arguement. There are many tools that can do a "good enough" job to compete with ColdFusion. They don't have to be as good or even better. They just have to be close. And if that is the case, then we drop back to "CF gets developers because... ..."

Personally, I think to Champion CF is awesome (I do it am much as I can) and I am very happy AGIS/ESRI is so CF Positive. That drives more people than I've know who just "pick it up". Part of me suspects that the positive government install base is because of that positive ESRI support in CF.

I rant, but the arguement for CF can not be justified only by the strength of the tool set, it needs to be justified by something else as well.

.end.rant.:-)


Barry,

Why replace CF with JSP/Java when you can do both? Do the tricky stuff in Java, or with whatever JSP taglib you want. Then call Java classes from CF or use CFIMPORT to bring in the JSP taglibs. That way you get the best of both worlds!

And trust me: years of experience in JSP/Java has shown me that CF + Java + JSP is the better and much faster tool for web development at any level.


www.google.com/trends?q=coldfusion+%2C+ruby+on+rails


Hey! Tim Buntel! Are you paying attention here?!? (Just kidding, I know he is.;)


Throwing my hat into the ring!

I'm a CF developer by day, but an RoR developer by night. Why? RoR is a lot more enjoyable to work with than CF at this point. Ray, I have to disagree with you, but the Ruby syntax is beautiful :)

which is more clear to you:

10.minutes.from_now <-- comes from the rails framework OR DateAdd("n",10,now())

or maybe this comparison

<objects> <object name="Customer"> <hasOne name="Address"> <relate from="addressId" to="addressId" /> </hasOne> </object> </objects>

OR

class Customer < ActiveRecord::Base has_one :address end

Dan said he didn't understand how you could do without cfdump. The solution is called irb, interactive ruby debugger. Since ruby isn't only focused on web development, you can leverage the other functionality. Say I have a model in my rails app. I can drop into irb, and type this:

listing = Listing.find(:first)[enter]

my model is loaded up with data. I can inspect all the properties of it, run methods, etc. This kind of functionality supercedes cfdump easily. Also Dan, I think activerecord is a much better alternative to cfquery. I'd much rather have an array of objects than to have to scroll through a recordset.

As to the college kid issue, if you had your choice of learning a language that was excellent at web development (CF) or a language that was excellent at web development, and system scripting, and could be used for desktop apps, which one would you pick.


First off, CF is not Java, it's a Java Application and saying that CF should become more like Java makes no sense. All of the underlying constructs of Java are freely available to our CF applications, including 3rd party packages.

(IMO)Ruby on Rails gained it's popularity around the same time the term Web 2.0 did. Since the 'popular' impression of Web 2.0 is to bind it to technologies, like Ajax, ROR is another one of those buzzwords associated with the latest trend.

Stephen Cassady said that CF distractes beginers b/c of the cost. The last time I checked, you can download the developers edition of CF for free. And since most newbies (and most of other developers) don't own, run or maintain their own personal production servers, cost for exposure to the public is the same as any other 'free' language like PHP or ASP. Viux has CF hosting plans for $3.95/month.

Question: Has anyone used ROR in a full scale enterprise development? I'm not talking about 2 developers working on what they consider to be an Enterprise level app, I'm talking about cohesive development with 20+ developers, a large user base and millions of lines of code?


JAlpino,

That's the thing about RoR, you'll never have millions of lines of code :)


Umm, Marion, I would have to differ from you. I find the <object> example more readable than the Ruby examples you've given.

I took a look at Ruby one time but the syntax was just too cryptic for me. I'm used to the HTML syntax, so the CF syntax is more readable to me.

The other issue is documentation - if you go to the bookstores, you'll find only the CFWACK copies, if at that. You can't even find O'Reilly's Programming ColdFusion book (and it hasn't been updated since 2003 and only covers up to MX 6.1). That leaves the impression that CF isn't widely supported. As compared to shelves of Java and Ruby books.

I remember reading discussions about the lack of printed books and it's partly due to economics. I wonder if it may also be due to the level of marketing in the past of the product. I hope that this will change since Adobe seems to be actively pushing ColdFusion. And especially since now we have Fusion Authority. I wonder how long it will take before the quarterly shows up at Borders and Barnes & Noble.

I think part of the answer is stepped-up marketing by Adobe, and more awareness of how students and developers with limited funding can get up to speed with just the developer version and knowledge of cheap hosting such as hotstingatoz.com (just 7.99 per year for the most basic services and I'm a new customer - I needed a site to host demos of my apps).


Marlon,

Thanks for the IRB tip, I was unaware of that.

Regarding Activerecord, it's great, but there's no technical reason why it's tied to Ruby. Similar functionality can be reproduced with other languages. It would be especially easy in CF (because of the similar capabilities to Ruby).


I concur with Marlon. As an ex-Java junkie converted to Python, which shares a lot of similiarities with Ruby, I can say my productivity is much higher, and I generate much less in the way of code. I would say by about a factor of 5.

Python and Ruby have a lot less boiler-plate scaffolding to do basic stuff. You can have multiple inheritence, use interfaces, go totally OO or stay in a procedural paradigm. Fancy tricks with duck-typing and Mixins can make for even more fun. In fact, I love the idea of CFMX gurus pointing in this direction. Because, once you 'get' it, it means significantly less code.

Anyway, I don't know of any true 'Enterprise' Ruby efforts, but they do exist in Python. Google, NASA, Eve On-Line, Industrial Light and Magic, Washington Post, NYSE and more are there. Some are older than you think. And my guess is that Ruby has as many Enterprise efforts in production as CFMX, they just might not all be in English.


I only have one point to add here -- CF powered apps will hit the desktop, as soon as Apollo (labs.adobe.com/wiki/index.php/Apollo:DeveloperFAQ) comes out. And you'll be able to use your framework of choice for server logic and Flex for the UI. Big win for CF, in my opinion.


I think based on all of the new information brought forth by ruby programmers and the arguments placed on the capabilities of both respective languages. its pretty much a draw either way you look at it. both languages at some point have made huge strides in adnvancing their own abilities, as well as growing their userbase in the process. Ruby was made more powerful by the rails framework, and although there are not many "enterprise" level apps working on purely just that yet, I'm sure with time some will surface.

Regarding Coldfusion, I feel like alot of the reason Coldfusion is often not as popular as things like RoR is because the unintelligent response to it is "its for noobs" or "its too expensive", and both of those responses are completely uneducated, but..thats the way it is for the most part. I think with Adobe behind Coldfusion, like many have stated here, we will see (hopefully) a bit of a surge in popularity with the upcomming versions of Coldfusion MX and now the onset of Flex 2 and coldfusions "first class citizen" stance in that world as well.

I think mainly, people need to move away from the language defensive mode and more to the fundamental requirements of each application one is to build; If I need to use ruby for a project, its very clear that its an established, mature language that I could benefit by learning. But on the other hand, If I need a web application, there are 100+ reasons I'd choose Coldfusion over PHP or ASP.NET even.

I think inevitably we need to keep the application requirements in mind more before we start trying to compare langauges against one another, if your a developer and you refuse to learn Ruby because you are a CF developer, or vicea versa, then your not going to do well in this ever-changing industry.

The time has not come for me to learn RoR, but in time perhaps it will. These are just my views on the situation, When RoR first came out, I looked into it, I saw the demo blog app, I saw the syntax, I saw it all, but I kept with Coldfusion because for myself (and my clients) it fits exactly what my application development requirements ask of me, and until that changes, I won't leave.


Jay's long URL kinda broke the layout so I have deleted it. I am quoting it here with a tiny URL instead:

"As always open source gets all the hype. The open source community knows how to beat the drums at the grass root level.

I think Rod Johnson has it right when he disagrees with the panel on how open source fits into the big picture. tinyurl.com/efvlk

The open source community does not like commercial software. Floyd mentions scripting languanges as the future, but only mentions rails, as if CF is not a scripting languange.

The Open source community is a click and they are just not going to talk or promote a commercial product."


We've been trying to help everyone in the "I wish CF had some of the Rails functionality" camp with ColdFusion on Wheels, but it seems like it's a losing battle! The big guys push the Java-like frameworks (Mach-II, Model-Glue) and everything else is kinda just shrugged off. It's a shame because I think Wheels helps fill a lot of the RoR envy that some CF developers have -- speeding up your development by providing a lot of helper methods, a real MVC structure without XML config files, etc.

There's no one to blame about the lack of community around Wheels other than me, I don't have a message board or mailing list for people to discuss on, sorry about that! As always, something is in the works. :)

As someone else mentioned above, I'm a CF Developer by day, RoR developer by night. CF has been my bread and butter for the last 6 years, but compared to RoR it's like building a car from scratch rather than just going to the store and buying one. And then once you have it being able to change anything you want by just pushing a button.

If you think Ruby and ColdFusion can truly be interchangable then you must have very little experience with Ruby, or actual programming languages for that matter. And people are mixing Ruby and RoR. Yes, CF pages can do many of the things that RoR pages can do. But you can't write an .exe or windows app in CF, there's no interactive debugging, CFC aren't really "real" objects...the list goes on. Ruby is an actual programming language. CF masquerades as one so that those familiar with HTML aren't scared off by the syntax. The plugin and development environment around Ruby and Rails is going crazy right now, new stuff is coming out every day it seems like.

I love ColdFusion, but it's not my future. I need more. Ruby and Rails gives it to me.


Don't forget, folks, that RoR et al do the pretty URLs through rewriting rules plugged into Apache by default. IIS is the problem here, it doesn't support them without 3rd party tools, and is why most people developers don't think CFML "supports" it.


If anyone wants a taste of what CF could be like if it went in a Rails-like direction instead of a Java-framework-like direction, look at CFWheels. Rob has done a really good job -- I like his UI a lot better than Rails', which is command-line OOB. If CFWheels got 1/4 the buzz that the Java-framework-like approaches do, I'd still be a CF'er.

P.S. sorry for the tapeword "Java-framework-like;" apparently "Java-like" threw some people off the rails. TeeHee.

Ron


I'm taking a look at cfwheels right now and a few issues stand out:

1. It requires CFMX 7 but I couldn't find that fact mentioned in the docs or on the site. We still have CFMX 6.1 on our production and test servers, so I'm having to try it locally.

2. It was written to run on Windows. Some of the path functions use hardcoded directory separators which need tweaking to work on UNIX (Linux, OSX, etc).

3. It really needs to have SVN, Trac/MantisBT and a mailing list set up. I've been making code changes to get it working on OSX but I'm not sure where I should send my changes to.

One thing I really do like is the documentation, the five chapters finished so far are really excellent.

Damien


Doh, it does have SVN, just no (public) bug tracker to go with it.


Feel free to use Lighthouse. :)


ColdFusion ? Hah ! Ruby and Rails for the win, thank you very much.


One thing against RoR is the difficulty of getting it to work with IIS, you basically have to set up a proxy to Mongrel or Apache. Also, with Windows you don't have all the lovely UNIX/gnu commands available (or SSH) so deployment isn't as easy as UNIX. Personally I think they (37signals probably) need to hire a code monkey for the sole purpose of improving anciliary pieces - database interfaces (generic ODBC connectivity would be a good start), etc, to make it *all* as user friendly as possible not just the core pieces.


Bah, I had a typo in my email and the blog just ate my original response so here is the summary:

Perception is more important than reality. Are there really more professional ROR developers than CF? I doubt it. Not around my area anyway.

Creating proper perception is Adobe's responsibility.

There was a time not that long ago when everyone said it was now .net vs java, the war was really only involving them. Before that perl and asp. Now look at the field. Things change very rapidly and there is much to look forward to just one year from now.

CFWheels is getting more of my attention once my new server comes (can't wait!). Rob, I will try to help in some way.

One way Adobe can help greatly increase exposure, and remove the FREE issue that new developers have is to offer CFMX for free to all shared web hosts. This way it can be offered as a default option for any and all hosting accounts. It would make a great news story, get mentioned on DIGG, etc. Plus get more people to look, play, work, etc.


Damien, you're right, it's an imperfect world, and RoR isn't perfect. The reason I went to RoR wasn't that it is perfect, or even that it was better/worse than CF in some basic way.

I left because I saw no evidence that CF was going toward a goal that I felt was critical; one of the reasons that I started with CF 5 years ago: developer productivity.

CF owned that arena when I started: it wasn't the cheapest, it wasn't the fastest running, it wasn't the sexiest, but, man! could I crank out the pages. Nothing could touch it for developer productivity.

RoR leapfrogged CF in that race. When after almost two years CF was still apparently too busy fiddling with Java-style frameworks to even notice they'd been beaten at their own game -- that's when I left.

Ron


Quoting JAlpino: "And since most newbies (and most of other developers) don't own, run or maintain their own personal production servers, cost for exposure to the public is the same as any other 'free' language like PHP or ASP."

LOL, seriously, how old are you and when was the last time you hung out with a newbie developer? Current cutting trend: If you're not hosting your own box to the world, then you're not geek (that means no developer version). It's ok to hold onto an "image of the world" from years ago, but don't apply to newbie then. They're hosting to XML out their current play list, running gaming servers, hosting forums, intergrating with IM, monitoring and sending web cam images, and much much more.

There is a huge group of new techie users that WANT TO HOST. The model before was "you need a big computer to host a website and pay bandwidth fees". Not anymore. Almost "any" old box can effectively host through a residential ADSL or Cable line.

Their Old computer (free) + Cable/ADSL (free, they have it anyways) + Server Middleware.

If you're a newbie, that Server Middleware won't break the (free) model of the computer and bandwidth.

So, we've got an upcoming group of energetic, excited, curious, and interested programmers. They look around and go "what can I play with", and it's not CF because comparable products will install for free and allow them to experiment - while hosting to the world.


Personally I'm trying to learn how to use either MG:U or CFWheels and both of them appear to require CFMX7 while at work we're still on CFML6.x. We don't have a need for some of the new advanced things in CFMX7, heck we already have another reporting system in place, so I'm having a difficult time justifying the cost, which incidentally could pay for a whole new server for us.

One thing with Rails I've been pretty disappointed with was the messup over the 1.1 release. For such a publically visible framework to have to release a patch so quickly (what was it, the next day or something?), they needed to test it more solidly before launch, especially external code (script.acul.us et al) rather than launching with untested release-candidate code. It just looked very sloppy.


Damien,

Sure, Rails 1.0 release was sloppy. For an open source group to do something like was a terrible mistake.

In fact, it is nearly as bad as Macromedia releasing ColdFusion 6.0 on the world and saying it was production ready.


yeah, and I remember it took considerably longer than a week to fix it.


Damien, MG:U should run on CFMX61. If it doesn't, that's a bug. Contact me "offlist" about it.

Personally, I don't like the CFonWheels approach of running a generator to create custom code that I then need to edit / extend to fit in with my application. I don't like RoR's command-line generator approach either. Just a preference. I much prefer the inline scaffold / "active record" persistence handling approach that Model-Glue provides. Again, just a preference. And I like that Model-Glue is cross-platform and cross-database and doesn't require a whole bunch of configuration to get up and running.

Rob has repeatedly "criticized" Model-Glue as "Java-like" in with the "other" frameworks (Mach II... what else Rob?). Model-Glue is a lot less Java-like than Mach II.

I'm looking forward to CFonWheels being usable on other platforms (Linux, OS X, MySQL) so that I can evaluate it properly but right now it has a long way to go to be competitive (I hope it will be - choice is good).


ColdFusion is Ugly. ColdFusion is Old School. ColdFusion is Proprietary.

Ruby/Rails is Pretty. Ruby/Rails is Fresh. Ruby/Rails is Free.

To top it off, I've scored way more women claiming I code in Ruby than I have when I mentioned ColdFusion.


D, you're starting to show your true colors. Try to have a rational decision or your comments will just get deleted out of hand...


My development language can beat up your development language.


Sean... I'm sorry, but I don't even think ColdFusion and Ruby/Rails can be compared.

I've coded, professionaly, in Java, C++, ColdFusion, PHP and now, exclusively, in Ruby/Rails.

To tell you the truth, I'd rather not have a job, than to have to code in something other than Ruby/Rails. Ruby is that much fun to use, as is the Rails framework.

The verbosity and ease of use of Ruby is a rediculous... as is Rails. Mixins, Migrations, Capistrano for deployment... the list goes on.


*Sigh... and I can't believe I got caught up in a thread so hot it's on fire !

I'm outta here :)


Here is the excerpt from an Open Source guru, from theserverside.com on the Future of Java:

Floyd Marinescu: "Im Floyd Marinescu. Im the original creator of the ServerSide. I was there for five years, not there any more. I think that one of the biggest trends were going to face as Java developers is the fact that Java itself is changing. What is Java? Java is no longer the language. It is now the JDK and the JVM, which is equal to byte code, which is equal to any language. And what were going to see is resurgence of¬ resurgence, but we are going to see Java as a good platform for domain specific languages. Were going to see scripting languages, especially becoming quite popular, and thats just beginning now. I think the reason why it hasnt been popular before in our communities is because you couldnt script Java itself. I mean scripting languages come from shell scripting where you script the underlying platform. So, were going to see that coming up and probably, the biggest area that were going to see that coming where there is all kinds of debate is in the web development frameworks. I dont think Rails is the ultimate solution to the problem. I think Rails rather is a symptom of what Bruce said that J2EE itself is too complex for web development. We need something built to suit. I think ultimately we need something that is well integrated with Java and I think Rails actually could be quite that solution or perhaps RIFE or a framework like that, and finally, just want to comment briefly on Web 2.0, not necessarily a Java specific trend, but its one that will change every&the way we work in the next two-three years. What were seeing is the Internet is moving from a publishing platform to an application platform and that will have a massive impact on how we develop on the frameworks we use and just the way we think about enterprise systems in general and thats already beginning. Its something we need to keep a look out for."

My take aways: 1. He states Rails is not the future. 2. He mentions scripting languanges, I put CF in this category. 3. The big one 'an application platform' can you say Flex 2.


CFWheels has to be my favorite Framework BY FAR. Simply because you work it, it doesnt work you. I would also say that its perfect for the majority of CF developers who want to get in to a framework, but are to overwhelmed by Model-Glue and Mach-ii.


> To top it off, I've scored way more women > claiming I code in Ruby than I have when > I mentioned ColdFusion.

Uhhh, yeah. If you're using what language you know to meet women, your issues run much more deep than RailsFanBoyism. (Oops, sorry, that's :rails_fan_boyism!, because Ruby's all about being easy to read.)


Hahaha... Joe, if I was trying to pick up on a girl, the specific language I code in would *never* be mentioned. Maybe that I actually code shouldn't be mentioned either. Howabout a fire-fighting motorcycle racer who loves kids... in uniform ?

My wife thinks coding is dorky enough... no need to start actually trying to explain things to her. Here eyes gaze over on the word "code" to begin with :)


Thanks for the Wheels support guys! The lack of community problem has been handled: enter the CFWheels Google Group! groups.google.com/group/cfwheels

And yes, I've "criticized" the Java-like frameworks in the past and criticism is always a personal opinion -- after working with something like Rails, a framework that just "feels" right, Mach-II and Model-Glue just don't cut it for me any more. They are both amazing pieces of CF engineering, I doubt I could write something so well architected if my life depended on it. But, like some one else once said, they solve problems I don't have. And do it in a way that just doesn't feel natural to me.


One thing that I'm noticing in this thread is that there are a LOT of frameworks out there for Coldfusion now. Is there a site that tracks these? Has anyone compared what problems are solved by each framework and listed pros and cons?


I agree with Sean about the generators in CFwheels and RoR. However, I would like a framework based on generators in Eclipse (similar to the code generators in the ColdFusion-Flex connectivity extensions for Flex Builder 2). The major difference is the Eclipse generators could more easily allow you to edit already generated code if you want to add a method, etc.


Hans..the files that RoR generates are just straight text files. It's about as easy as it can get to add more methods. Plus, you don't need to tie yourself to any specific editor in order to do it.


Marlon, I'm well aware that RoR generates text files. However, as far as I know, once the files have been generated the generator can't be used to update the files. Any additional changes are made directly to the code.

What I'm talking about is a generator that allows re-generation, mantaining any changes that have been made since the previous generator run. Not really necessary when a single file is involved, but nice for more substantial changes.


ok, I guess I'm just not sure why you'd need to regenerate anything after the initial time. Changes to the db are automatically picked up by the model. The controller should still use the same methods. The view might need to be updated, but the generated view that RoR does is meant to be replaced immediately.

Truthfully, RoR gets a lot of hype about the scaffolding. Unfortunately, it shouldn't. The scaffolding is just there to get you started. Most of the time now I don't even use the scaffolding just because I end up deleting all the generated code anyway.


For RoR, I agree. The RoR scaffolding is basically limited to simple CRUD applications. As far as I'm concerned, it primary utility is for silly "hey look at me, I can build a useless application in 5 minutes" style demos.

On the other hand, my use of code generators goes beyond CRUD, where it would be nice to be able to make changes along the way as the application is developed and redeveloped.


Hans,

Ahhh, ok. That's probably one of the most intelligent reactions to scaffolding I've seen in a while. Seriously.

In terms of a useful code generator, I really like Reactor. It continually regenerates a "base" class each time schema changes, but one-time generates a "shell" child class. The obvious benefit is that you can then change behavior to your heart's content.

A more subtle benefit is that it gives you a place to add DB-specific SQL (Reactor will generate DB-specific "shells") that stays in the data layer, instead of "leaking" up into the object model or controller layer itself, which happens way too much in Rails apps.


Your long URL breaks my layout so I'm deleting it. Here's the tiny URL:

tinyurl.com/gydy6

Here's Joe's accompanying comment:

"This post finally gave me the kick in the arse needed to send a lot of my thoughts on Rails to print. Long post entitled "I Don't Like Rails" at:

[see url above]

Not trying to steal traffic, Sean - it was just way to much to fit in here, and it's OT. Your post isn't about frameworks!"


>> , and it's OT. Your post isn't about frameworks!

Actually Joe, I'd suggest it is, in a round about way... especially the way pro Ruby ppl are evangelising theirs and decrying CF with the lack thereof. By far the biggest "selling point".

(and who cares about Ruby writing desktop apps and CF not? not me....)


My original post was not about frameworks although clearly RoR is a better comparison to MG:U than just CF (which means that in many ways the comparison of Ruby and CF *is* valid).

It's certainly been an interesting thread...

I have a lot of experience designing languages (and compilers / interpreters / etc) and there are so many reasons I don't like Ruby syntax. @@ : bah! I don't like Perl and I don't like PHP either. That's a personal preference.

There's clearly a brick wall between the RoR fanboys and the CF community... I would urge everyone to read Joe's post based on the "definitive" Rails book.

Open up folks.


Not being able to write desktop apps with CF certainly doesn't prevent me from using CF when it makes sense. Still, there is something to be said for unified syntax. Adding ECMAScript syntax along with a cf.* class library, as an alternative syntax for CFScript, would mean one syntax for both client- (Flex and Ajax) and server-side code. After Apollo ships, the same could be said for installed apps. Everything else Adobe is doing seems to be going in this direction. Why not CF?


From what I've read, Apollo and CF are completely unrelated and there is no move to the desktop planned for CF when Apollo arrives. It is very clear that when it comes to the desktop (GUI applications) the Flash runtime is the platform of choice. So please, right tool for the job. ColdFusion is not really designed to handle this type of application since it is very clearly a server platform.


UNSUBSCRIBE !!!!!!!!!!!!!!

Note to owner of this blog... get new or update blog app ! Or, I should have been smart enough to not use my real email address :|


Paul, I'm not talking about putting CF on the desktop. Just adding ECMAScript as an alternative syntax for writing CFScript blocks in ColdFusion. You'd use ColdFusion on the server, Flex or Ajax in the browser, and Apollo on the desktop... but you'd be able to use the same syntax (though with different class libraries appropriate for the environment) across all of the tiers.


D, you came in here and flamed ColdFusion. It's only fair that you get to stay part of the conversation :)


The comments about the generator: you can build dynamic scaffolds with Rails, just add a command to your controller. If you want to turn them into static, editable files then you can run the generator. Wheels doesn't have this ability. Yet. :) You're more than welcome to write your entire app without the Generator -- you've just got to make sure you put your files in the right places.

Sean, you said you didn't like the generator creating files that you need to edit to fit into your app. I assume you meant the pages generated for a scaffold? The rest of the pages generated are nothing more than the absolute minimum you need to get the app to function. You don't have to edit anything to make them work in your app, you just start adding your own code to them.

If you plan on keeping the functionality of the scaffolds then yes, you'll need to edit them to fit in with the rest of your app. But I suspect most people will keep the scaffold as a separate admin-like interface, and produce real display/edit code for the user from scratch (that's what I've always done, anyway). The scaffolds don't stay around for long.

Scaffolds are way over-hyped. They're awesome for showing off that you have a functioning app in 30 seconds, but in reality you probably won't use them once you get going.


>> It's only fair that you get to stay part of the conversation :)

D: that was my fault. you heard about this from someone (a co worker of mine) at the RonR forums? I pointed this post out to her. you guys kicked it along nicely. Cheers.


Flash Remoting Headless systems (gateways, et al)

ummm... Ruby doesn't do any of that stuff, yes? so you can't write the same component and put a remoting facade around it and use the same logic for HTML or Flash?

maybe it's time to look at what CF has that Ruby doesn't (unless you want to break out to AMFPHP or Java which kills the idea of re-using the same code for multiple presentation platforms)


Barry: speaking of presentations, you know what would be cool, a CF-based S5 generator!


Barry: why would you want to use binary flash remoting when the same thing could be accomplished with xml? That way you're not tied to any particular server and you could swap out the backend at any time.

How about this snippet. This will use the same url and respond accordingly to what the request will accept. If the url is called as a web service, xml will be served, if not, html will be.

def list @people = Person.find(:all)

respond_to do |wants| wants.html wants.xml { render :xml => @people.to_xml } end end

As for gateways, why wouldn't that be possible for ruby?


sorry that code didn't really format well.


Why I personally prefer Ruby on Rails?

I pretty much ignored Rails in 2005. I've been coding in Coldfusion for about 7 years. I have both JSP and ASP.NET experience (plus plenty of asp experience in the late 90's).

Coldfusion to me is all about functionality. There were things you could do in 1 line of code in ColdFusion that not only took many lines of code on other platforms but all required elaborate server set up and admin. Cfmail, cfpop, cfhttp, cfquery and the inclusion of Verity (for search) were certainly priceless. Coldfusion was a bargain. Web services in coldfusion were also an absolute breeze.

So how did I get into Rails? I needed to generate a heap of custom pdf reports from a database. This was a personal project. CFdoc would do the job and I had the developer edition of cfdoc installed on my laptop. All worked well and in less than 5 minutes I had the pdf reports generated. Yes - generated but with with a watermark. Which was fine as I was running the developer edition. So I looked for alternatives and as I had plans to eventually release the app as a web app I thought I'd check out Ruby on Rails. ...And yes there were a variety of pdf plugins and my realisation that Rails is full of functionality out of the box as well: wiki.rubyonrails.com/rails/pages/HowtoGeneratePDFs

I was quite amazed at the maturity of Rails. Remember it is only about 2 years old and had just released version 1. Rails is not perfect (I agree with some of what Joe posted on his blog) but has a solid, passionate and innovative community with excellent leadership. I particularly like plugins: wiki.rubyonrails.org/rails/pages/Plugins eg with acts_as_taggable I can easily add tagging to my model. With acts_as_ferret I can automatically add full text search to my database. acts_as_ferret is actually a port of Lucene to Ruby with some C in crucial places to make ferret faster than the Java version. Rails also plays nice with Flash via XML which can be generated with very little code: class ReviewsController < ApplicationController def list @reviews = Review.find :all render :xml => @reviews.to_xml end end

Check out this Rails and Flex tutorial: www.liverail.net/articles/2006/04/16/rubyonrails-1-1-and-flex-2-0-pt-1 Ruby on Rails does web services, caching, intergated testing, ajax support (+ really cool RJS templates), and has a growing list of plugins which is really quite impressive for a version 1 product. It is not only a matter of comparing what Rails has with Coldfusion. It is where Rails is heading. Essentially what the Rails community thinks is cool, they will build and release as open source. I really like functionality that I can use in a few lines of code, Rails certainly delivers and I feel inspired by the community.

I also think the proprietary nature of Coldfusion does not lend itself well to the open source model. Many will disagree. I admit there are many ColdFusion open source projects but I can't say that there is a lot of variety except in the area of frameworks. Are there any open source Learning Management Systems in CF? They all seem to use PHP or Java. Not any in Rails at the moment but What about CMSs? Again i can only think of one - FarCry. Yet many open source CMSs in Rails are being released. What about a Wiki? Only one, but with limited functionality. Cmon even the Wiki on Adobe labs uses php.

oh and did I mention that an opensource version of an S5 presentation builder already exists as a Rails app: s5presents.com/


Marlon, you asked why someone would use flash remoting over XML - the reason is speed. Flash Remoting (afaik) is slimmer than XML. If I'm writing my flash to talk to my own server, then I'm not just going to "swap out" the backend. Are you saying you often build dynamic sites and just change the back end from time to time to completely new languages?


Ray: I'm just saying that given the choice between using an open standard and using something proprietary, I'll usually go with the open standard. That way I'm not tied to any certain application server. It's along the same lines as how Fusebox 4 does all of it's configuration in xml vs just doing it in CF.

I'm really excited about Flex. I was even more excited when I started realizing that it was really tied to CF and that any backend will do.


Marlon - while I have heard of folks moving from one DB to another, even one OS to another, I haven't heard of folks mving from one backend to another. I mean people _leave_ languages, but I'd consider that rare. As it stands, there is a Flash Remoting package for .Net. There is an open source version of Flash Remoting for PHP. I see no reason to not use FR when you can get better performance.


yes, Ray, that's exactly what I was trying to get at. Sure, you can use webservices to get data into flash but if your app is data heavy then remoting has some definate advantages.

but to get back to the point of open source apps compared to, say, PHP.

I will say this about open source, tho. I know a place that were evaluating learning mamagement apps. Unfortunatly the O/S ones were deemed "not there yet" so an expensive proprietary (with no source and webservices to interface with) was chosen.

part of the reason could come down to trust. if you run a critical app, if it's open source and something goes wrong, you bloody-well hope the community can fix it. if it's a licenced app of a large company, at least you've got a hotline to screem "blue murder"... and this can also apply to using ColdFusion as a platform....

...open source SAP, anyone?


I missed a bit.

I'm also (still) unsure why there aren't many open source apps (farcry excluded**) written in ColdFusion. I was looking for an event/conference booking one just the other week. Bah - no hope!

if someone has 2c on this, I'm all ears...

** BTW, it strikes me that Farcry could scrub up nicely as a LMS. I mean Geoff and Daemon are using it as a pretty robust application base...


Lack of open source CF apps could be because:

- cost of CF - lack of deployment options/hosting - CF programmers are too busy building apps for paying clients - just way more php, java, .net and soon to be rails pgs around - Flash Remoting, SMS Gateways and PDF generation is not enough to convert people over to CF

and Barry, it does not matter if Open source products in php and java are not ready - at least these projects have been started and have active communities.


wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


Proprietary languages have several hurdles that open-source languages don't for open-source projects.

A proprietary language can pull the rug out from under the project. If an open-source language takes a turn that is "unfriendly" to your project, you at least have the option to support the old version yourself, make a version that is friendly to your project, patch the language so that your project is supported, etc.

Hypothetical instances: two groups of developers come up with competing projects. A highly-placed developer in the Company states a strong preference for Project_A. Project_1 developers have to worry, "What if Project_A-friendly code gets baked right into the language?" Instead of open competition between the teams, everyone's watching to see how the owners of the language are reacting.

But the Project_A developers aren't completely safe: What if their project requires/permits use of technologies that compete with the Company's other offerings? An animation technique, say, or some open document format that the Company's Marketing Department sees as a threat? They could find themselves baked right out, just as easily.

Even a simple bug patch can be a make/break for a project. In an open source language, if a bug is stopping your project, usually it's a straightforward matter of finding/writing the patch, compiling it into your working code, and submitting it for inclusion in the next release.

With proprietary software, you just have to hope that YOUR biggest problem is also the Company's biggest problem, otherwise the fix you need might get bumped off the schedule to make room for a new feature the Marketeers want.


Ron: You do realize that if you use CFML (or any other non-open lang), and a later version changes something that negatively imapcts your code, you don't have to upgrade, right? Also, you talk about simply forking your version. What does that do for future developers on your project? All of sudden you aren't using PHP but "Something Else". That seems ok to you? Even if you document all the changes you are still opening yourself up for trouble.

As for your example, I'm sorry, but it simply doesn't make sense. Back in the old days Allaire released one product actually made with their software, and that was a forums application, but it was dropped many many years ago. I have yet to hear of a developer who was afraid Macromedia would build their web sites into ColdFusion. The closest I've seen is built-in support for PDF. There is a company that also offers PDF support for CF. However, Adobe's PDF support and this other company's PDF support is pretty different, so I don't think the company has anything to worry about.

I also think that the common PHP user will NOT be simply patching PHP. Do you honestly feel the average PHP user has the skills, or the desire, to make their own version of the PHP server? This is NOT to bad mouth PHP folks. If CF were open source, I'd say the same thing. I don't think the average user would even be able to modify and compile a new version of PHP. For the reason I stated above (forking), I'd bet most folks never do that. Also, do you have hard data on how fast the turn around is for PHP bugs? You talk about how CF users are at the mercy of marketeers. Does every PHP bug reported get fixed immidiately?


barry, there is a great list of CF open source projets here:

www.remotesynthesis.com/cfopensourcelist

Not as big as PHP, but growing.


Ray: Yes, I do realize that you can stay with an old version, FOSS or no. And, I do realize that 'forking' the base language is a very big deal -- but it is possible, whereas with a proprietary language, it's not.

My examples were hypothetical. The common thread in them was: commercial interests will take precedence over the wishes of OS projects. OS projects had better keep one eye on the commercial interests of the language owner to judge their future support.

Now, as far as PHP -- I know nothing about PHP. Sorry. My OS experience has been with Python, and, more recently, Ruby.

Here's my rule of thumb: the more expensive the software, the more/older bugs you'll find.

Python and Ruby are free, and if something I've written in Python or Ruby misbehaves, I will spend 4 hours on it before I begin to think it might be a bug in the language.

If it's written for AutoDesk or ESRI's hideously expensive software, I'll try it twice, and then I start checking for what antique bug they've left unfixed for version after version. Some of ESRI's documented bugs will be starting grade school soon.

CF is somewhere between in price and in the average ages/numbers of bugs. I'll try for an hour or so, and then I go looking for documented bugs. Sometimes my googling will turn up the same complaints for a couple versions back, but that's about it. Not bad, but not as good as FOSS.

Ron


Just because something IS possible doesn't mean it is good. As a manager, I would (most likely) never approve such forking on my projects. It just adds too many risks.

I simply just don't know where you get this fear of the commercial owner simply taking over OS projects. I simply have never seen this happen, nor have I seen anyone scared of this. I did present the PDF example, but even that is somewhat contrived as the feature sets are pretty varied. If someone in the CF world knows of this happening, let me know.

I haven't seen a price versus bug comparison before. I _would_ probably make the comparison between age and bugs. Older products tend to have more bugs hanging around just due to their age.

I'd say CF is no more, or less, bug free than other products, but again, I'd ask, what would an -average- PHP person do if they find a bug? Would they crack open the source, probably not.


The Open Source community, as a whole, typically has a plethora of sites fwom which you can find, or ask for information.

The problem, in my experience, is if you ask a question, more often than not, a person who responds will assume you have a certain level of knowledge, and if you possessed this level of knowledge, you would have no need to ask the question. A few times I had asked for 'idiot proof' help, I was berated for wsting people's time.

Its kind of like, you can't get in the club unless you know the password. However, you only get the password after you are in the club.


wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


As a Rails/Ruby and Python programmer the comment

"I'd say CF is no more, or less, bug free than other products, but again, I'd ask, what would an -average- PHP person do if they find a bug? Would they crack open the source, probably not."

is interesting. They probably generally wouldn't (we google). I'm not really a coder who likes to get close to the metal but I can tell you a couple of times a year I do it. I go deep down into the library that's giving me pain and find out what's going on. I think so far it's always been my lack of understanding but just being able to see what happens under the surface is immensely useful.


Ian: I'd agree. Within my first few weeks of working with rails, I found a bug in the ruby sqlserver adapter gem and submitted a patch. That's something I'd be at the mercy of Adobe were it CF that had the bug.


I wonder whether the buy-in to the "Adobe Vision" (of the future) carries much weight?

if ColdFusion is to become a "first class citizen" to things like Flex, where does it pay off?

there seems to be a lot of Ruby-on-Rails ppl saying "Bah - humbug!". The lack of "closer ties" with Flash/Flex, livecycle, et al, doesn't seem to be a worry....

just a thought...


I offered two possible explanations for the relative scarcity of OS projects built on commercial languages.

One: an OS project's lack of control of the language basics means developers are less willing to commit to the project.

Two: the controlling company's top priorities are sales-driven: Adding features. Locking-in their offerings. Locking-out alternatives. Fixing bugs isn't sales-driven, until after the fact (the bugs cause buyers to refuse/delay upgrades).

This makes it hard for OS developers to commit, as well.

I can't claim there's an overwhelming flood of support for my hypotheses here -- a trickle, perhaps. I am interested in any alternative explanations of the phenomenon.

Ron


Coldfusion is infinitely more expensive than Ruby on Rails.

Coming from the Java world, I am just not in the habit of buying stuff!

In the 1990's I briefly bought into Microsoft's ever changing (or charging) C++ products. It was like having to pay to work on quicksand. So Macromedia, no thanks.


ColdFusion, as a server product in production, has a price. ColdFusion, as a programming language, doesn't cost a dime. The CFEclipse plugin, for the Eclipse IDE, is free. There are thousands of resources available on the web to learn the language, including the blog to which you just posted. A developer's edition server is free for use. And the number of inexpensive hosting providers, who offer ColdFusion as an option, is growing rapidly (GoDaddy has a $4.95/month option).

The core language hasn't changed since, at least, the v4.0 days, other than to expand and grow upon what was already there. Every iteration since has provided backward compatability, with minor code changes (if any).

If anything, the cost of programming in ColdFusion has decreased over the past 5 or six years, rather than increased. And, now that ColdFusion falls within the Adobe product line, the expansion of the platform will only grow. And, considering the ease with which Flash and Flex integrate with ColdFusion, the platform is likely to explode like it never has in it's past, probably expanding beyond anyone's previous expectations.


I am very tempted by your seductive arguments, being on the run from a very over complex relationship with J2EE.

But I have already started dating Ruby, and she's so straight forward and simple! I am already getting paid for RoR stuff, so my loyaties are with her.

Ideally I want to spend minimal time learning frameworks and languages, I just want to connect web pages to data bases quickly.

As I read 'Agile Web Development With Rails' earlier this year, I kept coming across really practical down to earth common sense (testing, gems, setting up test/production envionments, proper MVC for once (BTW wheres the Model in Struts MVC?). Best of all, its not hype.

Thanks for the info about the costs of ColdFusion, I would be flirting with it had Ruby not come along.


and Guy,

ColdFusion, as a server product in development doesn't cost a dime either, whot with the free developer versions (inc a couple of static IP addresses).

the only time CF get's really pricey is running clusters, and if your app needs to be that big then then not only can you afford it but it's probably too much for RoR to handle anyhoo...


Ruby on Rails does scale and can be clustered!


It appears that this blog is sending out emails to strangers proporting to be sent out by me!

Please don't do this !!

UNSUBSCRIBE


Guy, the blog only sends new comments to people who previously entered comments. It doesn't send any emails to anyone else.


Seems to me like a lot of the oomph in "Ruby" comes from rails, and the MVC design pattern.

Sorry if this "plug" is bad-form, but if it's the framework+mvc you're interested in, maybe check this out CF on wheels at http://www.cfwheels.com/ . Those guys have MVC there, they have scaffolding, routes, helpers (form helpers even), and several other features of rails for CF.

Talking with a colleague at work who is a recent (well past year I guess) advocate of Ruby on Rails, he thinks that cfwheels might actually have a better take on the framework than ruby-rails *shrug*.


FYI - Recent major security exposure with RoR

tinyurl.com/k3pzr


As far as I'm concern coldfusion is a fast and easy programming language to pickup and use and it's in expensive for the so called newbie programmer. Also by reading some of these posts it seems like most of the negative CF comments come from people whom are apache/linux users or develop in this particular enviornment. Also coldfusion is very fast specially on a decent server runnign IIS 6.0. As far as ROR it is very easy to use and to some extend seems more flexible than CF but I would not trade it just for that simple fact. Also as far as using coldfusion with Java is just great I have been able to do so many things by going this route, oh and using JSP tag lib is just awsome. So for those ROR apache/Linux programmers stick to that because this just means more opportunity for us other programmers. Also as far as CF being popular let us worry about that, there are tons of us out there and growing everyday, I get job listings from monster and hotjobs all the time for the ft.lauderdale/miami area(cf programmer/web developer).


Post Your Comments
Name:
Email Address:
Comments
*** Please note that all comments require moderation so it may be some time before your comment posts to this blog! ***
Remember My Information:
 



Hosting provided by