I was about to write something really nasty about the Devices Profile for Web Services — after all, isn’t it obvious that it cannot possibly be a good idea to use the world’s fattest protocol for communication with or between devices?
Then I thought a bit more about the time when I started programming for real — using C++ at that time, when the veterans in the company told me that C++ is always going to be too slow for anything serious. A few years later, it was great that Java had JNI to bridge to C for the critical stuff. Remember when people said Java just might be usable on the client, but for your server, you will still need the ultra-fast C++? I remember discussions about CORBA/IIOP being totally inefficient for high performance communications, OO-style get/set methods inappropriate for real work …
Don’t get me wrong: Performance matters, and it matters a lot. But a performance advantage alone is not going to save a technology or programming paradigm from becoming obsolete — if it were, we’d all be programming our communication interfaces using assembly language.
My prediction is that in a few years, all communication — whether it’s local (in process or interprocess), in a Personal/Local Area Network, inside company boundaries or crossing oceans — is going to be SOAP/XML over something like HTTP by default, with a lot of optimized alternatives the parties are going to agree on during communication setup.