This year I learned a lovely sound bite from Steve Vinoski, which he attributed to John Maynard Keynes, "When the facts change, I change my opinion. What do you do, sir?"
This was brought to my mind by a comment on Stefan's blog from Bill deHora where Bill wonders what is the rationale for changing from being a messaging guy to a Web guy.
Well, back in 2005 (and before) I thought asynchronous messaging was the way forward, and I fought hard to keep the Web Services protocols aligned along those lines. However three key things happened to alter my views:
- The Web Services stack became CORBA with XML, and all the tooling steadfastly refuses to play nice as an async messaging stack, and instead is a tangled jumble of XML gobbledygook and RPC calls;
- I grokked that aysnc messaging isn't the only way to build scalable systems (hence there are a couple of ways to skin an Internet-scale cat);
- Steve Loughran wrote a short piece on how easy it was to GET data into Excel which unequivocally demonstrated how broad the Web's reach is.
So now I still love aysnc messaging for certain classes of applications, but would default to a position of Web-based services for anything which isn't latency sensitive, and requires scalability and reach.