« that winfx map really didn't help | Main | deep in data »

web services = code reuse

Today I finished an interesting class taught by, um, I suppose I'll have to look up the name. He's on the current MS web services team.

There were about 10 minutes left for questions, and no one had any, so I asked where he thought web services were going: the original idea of course being a replacement for code sharing across organizations... instead, code sharing would be provided across the globe. A second expected result of this was imagined: the demise of the software dev house as doing standalone work, and bifurcating into either top level client work (calling web services deftly and usefully) or low level web services work (yeah, people really need a time zone converter, and we're just the folks to do it). The teacher laughed very hard, and said using web services as a form of code reuse was a misguided initial idea and will never happen.

However in talking later, it seemed we were differing only in semantics. His point: How realistic is it that companies will want to release code that they have no control over, that they cannot see on their machines, and cannot fix? It's more realistic to view web services as a location-neutral implementation of key services, such as FedEx or Google. My point: It all comes down to your definition of code reuse. Lots of companies release code running on Windows that they have no control over. Same with IE, or the CLR. And even at the most granular level, Int.Parse is code reuse.

Personally I'm delighted not to ever have to write an integer to string converter. Other than performance and connectivity reasons, there is no reason that couldn't be a web service. If something really cool is a web service, I don't see the downside of using it, assuming again that performance and connectivity are not issues. As for using (read "shipping") other people's code, it's just a matter of where you draw the line for your own comfort level. I suspect I have a higher comfort level than most about these things, and that was my instructor's essential point.

What would be the business and social implications, if web services were to come into its full potential and popularity? What would it mean for operating systems, for game developers, for hobbyists? I almost love not knowing the answer.