, Feb 18, 2005

Hartmut Wilms and Clemens Vasters going back and forth on objects vs. messages … very interesting. Clemens’s remark that most surprised me was this one:

Message doesn’t and should not mean “untyped thing”. Actually, the contract mandate tells us the contrary. If you have a contract, tooling can use that contract to serialize and deserialize into typed object graphs. Reversely, if you have types, you can create contract. All programs you write that communicate with messages have a certain degree of typing if they shall be useful. If you are speaking against serialization (“OO typed”) in general, you are speaking against productivity. The job of the tools is to make sure that the serialization format easily interops, can be properly versioned, etc. That’s what my demand is from Indigo and any other tool.

I am totally puzzled. I’m not going to argue with Clemens about Indigo; but this seems to be a position totally conflicting with what I perceived as the common vision of the folks in and around Microsoft. In and around everyone who writes about Web services and SOA, in fact.

If the role of SOAP is reduced to an implementation detail somewhere way below my OO API, I don’t see any benefit and no justification (beyond .NET/Java interop) in using it at all.

There can be no worthwhile Web services or SOA approach that ignores what’s on the wire.