Conversations about Contract-First Design

Published Tue, Apr 26 2005 21:40 | girishb
I am sure you have been following this very interesting conversation between Dare Obasanjo, Tim Ewald and Aaron Skonnard and Dare, again.
Anyway, If you have not, the gist of it is that Dare thinks code-first (using a subset of features from XML schema which can be mapped to objects cleanly) makes it easier to share web services, and Aaron thinks that contract-first is the right way to go since that will allow for a more cleaner (interoperable?) interfaces.
I think, as this article by Aaron explains, contract-first is the way of the IDL based coders and code-first is the way of the VB coders. Neither were wrong and both had their own bag of issues. But, I think Dare is right.
I remember when C++/COM, in its heady days, everyone was discovering [size_is] and [max_is] and other nice VB incompatible features of MIDL and jumping in coming up with really awesome IDL that no VB code could consume. Then people realized that something that can be used to generate typelib cleanly would be the right way to go if they wanted VB developers to still be friends with them.
Anyway, long story short, if we can get the microsoft languages to play together between applications without causing more gray hair than necessary, we would have come a long way. As for "interop", Mainsoft has this cool implementation that allows .NET code to be hosted within J2EE beans.
Just use that and be done with it. As for the rest of the languages,... what rest of the languages...