Wherein our plucky narrator reveals a shocking secret and makes a plea for understanding.
I am
Mort and I write distributed applications. I have decided that this simple fact is the primary factor in the difficulty I have communicating my concerns about WCF (nee Indigo). I've had several occasions to interact (in person and via blogs) with various members of Team Indigo. They are some of the smartest, most professional, and dedicated folks I've ever had the pleasure of talking to and I've always felt there is a huge impedance mismatch in our conversations. Reading Steve Swartz's
comments on my last two posts made me realize it is my fundamental Mortness that is the problem.
In case anyone doubts my Mort credentials, I will re-iterate them here. I prefer Visual Basic to C#. I don't have CS degree (English and History instead). I was introduced to programming through that gateway drug of my generation, Lotus 1-2-3 macros. I eventually graduated from Paradox to Visual Basic via Microsoft Access. I am an opportunistic programmer and I expect my tools to let me focus on delivering the business functionality my employer pays me for, not write a bunch of infrastructure code. I got to be an architect not because I'm a great programmer (I'm not, I'm Mort), but because I can visualize how to solve business problems with computer technology.
With that in mind, I'd like to respond to Steve's comments. I know that Indigo supports asynchronous messaging. I just don't like the way Indigo supports asynchronous messaging. Indigo, in an attempt to make asynchronicity easy to use, hides it from Morts like me. This is the exact same mistake that DCOM made with location transparency. It will have the exact same consequences that DCOM's location transparency had, distributed applications that won't scale. This is the most hideous trick that Microsoft can play on Morts. We'll make designs that look just like the Microsoft examples, work great in the development environment and blow up in production. Thanks a lot. And
redefining what Close() and Dispose() mean doesn't help either.
I know that Indigo supports translating public contracts to application contracts. I just want direct control over the process, rather than being stuck with the output of your tool. Elvis may think that mapping the external message to the internal model is stupid grunt work that can be relegated to a command-line utility, but Mort knows that it is a crucial piece of business logic that needs it's own separate place in the world so that it can change independently of the rest of the application.
I know that Indigo supports XML programming (
Tim and all the other Einsteins will be
happy). I want to do XML programming about as much as I want to do IL programming (which is not at all, in case you're not sure). I'm glad it's there under the covers, but don't make me look at it.
It's not so much about what I want Indigo to do as it is about what I don't want Indigo to do. I don't want it to interpose an RPC model between the underlying asynchronous message-based truth of Indigo and overarching asynchronous message-based truth of the business applications I write every day. I don't want to have to dip down into an untyped bag of XML goo just to get a message instead of an object. I want Indigo to allow me to say, "Send a message containing this purchase order to that service over there and notify me when I get the response back with P.O. number in it" without making it look like a method call. If I want the client to block while waiting for the P.O. number, that's my choice, but it's always an asynchronous operation across the network and it should always look like an asynchronous operation across the network.
The main thrust of this post is that Morts get message-oriented development. Messages (documents and action requests) are fundamental to business programming. We don't need the OO façade that Indigo pushes on us, but we need more than SOAP. We need an easy way to send and receive structured (but not necessarily typed) messages. For all the talk of the Indigo big tent philosophy, I feel like Mort is left standing in the rain.
Posted
Aug 12 2005, 04:54 PM
by
john-cavnar-johnson