CIO Magazine ran
a story on Web Services last month. The story is presented as a quiz entitled "Are You Ready For Web Services?" with 12 multiple choice questions, each with answers worth from 0 to 5 points. I have issues with a few of the supposed
right answers, but question 8 really irks me:
8.I plan to develop Web services in:
a. Java (5 points)
b. .Net (5 points)
c. other (such as Macromedia ColdFusion, Ruby on Rails, Ajax) (3 points)
Can anyone explain why ColdFusion based Web Services are worth less points than those written in Java, when ColdFusion Web Services are Java (built on top of Apache Axis)?
I had a similar experience where a developer had stopped using CF at version 4.5 and had no idea of the new features and much it has evolved since then. It's easy to see why he might favour .NET stuff, however, if he looked at version 7... he might get a nice surprise :)
:)
I think, on the average, the .NET and Java developers I know are more familiar with some of the constructs for dealing with Web Services than a lot of ColdFusion developers. Things are great in CF when you're using simple services, but once they turn complex, having the background that .NET and Java require may make things easier to deal with, given that they both take a wrapper/stub object approach that creates types for complex web services, whereas ColdFusion developers are left to try to do this on their own by reading the WSDL and creating loosely-typed structs by hand.
While the technology behind Web Services in CF is the same many Java developers would use, I think the mentality behind Java development may lend a general edge to developing Web Service-based applications.
Ok, flame me now :)
On the upside, at least they considered Coldfusion as an option, most of these types of articles forget Coldfusion completly.
So we should be happy!
Regards
Dale Fraser
Simple. The reporter doesn't have a clue.
You're the evangelist, Ben. Call them up and explain it to them. Who knows, you may get a follow-up article on CF. I've had something like this happen to me in the past. After a cordial discussion to clarify, we did get a nice writeup that featured our product a couple of issues later. As my kid likes to say, lemonade from lemons.
--- Ben
On Joe R's comments about .Net & Java, I do not totally disagree but I do not feel it is the .Net or Java background in question as much as the OO design and understanding. Just because .Net and Java are OO does not mean the applications build using them are as well. It is just as easy to build a bad .Net or Java application as it is to build a bad CF app. Building an OO application has 'nothing' to do w/ the language and everything to do w/ the design. I say 'nothing' b/c obviously there is some influence but that does not mean it was a good one. In the end if the Web Service is designed properly, i.e. it does not require or return platform dependent structures such as a CF or .Net Recordset, utilizing CF's XML methods allows you to easily create the structures necessary to pass and retrieve complex objects.
I agree the tools to read the WSDL need improvement. But doesn't learning how to read the WSDL help force CFer's to learn some on the constructs and skills folks seem to feel they lack?
In then end it is all comes back to the design. A poor design is a poor design no matter what the language.
-Jason
<em>
Thanks Ben,
Regarding your comment, the question could have been stated more clearly. In my own defense, I wasn't looking to distinguish between platforms/frameworks/languages and so on as to make a point that Web services can be constructed using just about any tool you want. The points awarded were meant to reflect what our readers claim to use for Web services (we're talking CIOs here, not development managers, so we don't always get much detail beyond .Net and Java). We weren't trying to imply that those two approaches would be best, though I see how it could be perceived that way. In hindsight, we probably should have awarded five points for each.
As for ColdFusion being Java, that's my fault for being out of the loop. I haven't had anything to do with ColdFusion since my days at CNET when it was all CFML and HTML. But I wanted to include a couple options outside the Microsoft and Sun realms.
Thanks for the note!
Christopher Lindquist
Technology Editor
CIO Magazine
</em>
I've been an advocate for CF for years and still love it. I'm currently writing a web service in CF8 and do see some short sightedness on the design that java and .net both handle.
For instance, arrays of objects only works as expected (or at least as I expect) at the main WS Method level (i.e. from CFARGUMENT TYPE=Object[]). When using the [] Array notation in the CFPROPERTY tag, it generates some rpc:item subitem that seems like a burden on non-cf consumers.
Additionaly, I haven't found a way to support anything in regards to Optional Elements, MinOccurs, MaxOccurs or very importantly Enumerations.
Because I'm an avid CFer, I'm still developing this iteration of my webservice in CF even though it's a pain without Enumerations at the very least. However, we have 5 more web services planned over the next 12 months and I'm not sure the current functionality will support the level of control that we need. Maybe that level of control is there somewhere, but the online docs nor the Support community seem to make knowledge of that available.
-Steve