Interoperability: Check your politics at the door

By Ted Neward
As we prepare to enter the holiday season here in the US, I think it’s time that we called for Peace on Earth. Or, at least, Peace in Computer Science.  

In 2000, when Microsoft first announced the .NET Framework (then called by various alternative names, such as the “Universal RunTime (URT)” or “COM3” or the “Component Object Runtime (COR)”), it was immediately hailed as the formal declaration of war on Sun and Java, if not an actual pre-emptive attack.

Within the industry, a schism already present was made deeper—developers were routinely asked “which side” they were on, whether they were supporters of “open” standards and “community-driven” development, or whether they were trying to support the evil corporate conglomerates. (I’ve since lost track of who’s supposed to be good or evil—Sun because they refused to release Java to an international standards body, IBM because they are trying to subvert Sun’s control over Java, Microsoft because they routinely “embrace and extend” open standards, or Oracle, because… well, just because.) I’m personally regarded as some kind of heretic and looney because not only do I routinely write code for both the Java and .NET platforms, but because I refuse to say, when asked, which one I like “better”.

You know what? I’m damn tired of these arguments. Can’t we all just get along and write software?

It’s not like these arguments really do much for our customers and clients. Truth be told, few of the people who use our software can even tell which platform the silly thing was written in, much less how it being written in Java will somehow make the world a more free (as in speech, as in beer, as in sex, whatever) place. Or that .NET somehow allows for multiple languages—generally speaking, the only language they care about is the one they speak and read and interact in. Most of the time, they’re just happy if they can *use* the software—remember, according to statistics routinely cited at conferences and presentations, half the time our customers never see software they’ve asked for, and when they do, it’s likely to be twice the budget costs originally anticipated, with half the features they originally asked for, in a user interface they don’t quite understand, even though it’s supposed to be “the latest greatest thing”.

This is progress?

Over the last five years, there’s been a quiet revolution under way, and it’s not the dynamic language revolution, nor the REST-HTTP-SOAP revolution, nor the agile revolution, nor AJAX. It’s not about containers or dependency injection or inversion of control or mock objects or unit testing or patterns or services or objects or aspects or meta-object protocols or domain-specific languages or model-driven architecture or any other fancy acronym and accompanying hype and marketing drivel. It’s a revolution of pragmatism, of customers and clients and others turning to developers and saying, “Enough is enough. I want software that works.”

“Works” here is a nebulous term, but before the Marketing goons start spinning the term to their best advantage, let’s clarify: “Works” is a simple term, as defined by our customers, not us. “Works” means runs in a manner that’s genuinely useful to our clients and customers. “Works” means it’s delivered close to on time and preferably under budget. (Nothing will ever make that utopian dream come true completely, so let’s be more realistic about the process—besides, *close* to on time and budget is a pretty good goal to shoot for right now, anyway.) “Works” means software that attaches itself to the existing mess we’ve made over the years, without having to rip out a whole bunch of servers and replace them with a whole bunch more. “Works” means taking what a customer has, in place, that already meets that definition, and tying the new stuff we’re building into that existing mess.

“Works” means, practically speaking, that we take the languages and tools that are available to us, and use them each to their advantage, regardless of political affiliation or perceived moral stance. That means taking Microsoft’s tools and technologies and tying them into Java’s, and vice versa. That means dropping the shrill rhetoric about how each is trying to “leverage” the other out of existence, and figuring out how to use them all together in a meaningful and technologically powerful way. That means recognizing that we are all one community, not little villages out in the countryside trying to beat each other into submission even as we try to scrape a living off the land.

Abraham Lincoln, the man who had the unfortunate luck to preside over the United States during its most divisive era, once said, “A house divided cannot stand.” Welcome to the Interoperability blog. Please check your politics at the door—here, we care only about how tools can be used to solve problems.

6 Responses to “Interoperability: Check your politics at the door”

  1. Dino Says:

    Ted, I like the way you think!

  2. Time Passx Says:

    Maybe it would be more helpful (and certainly less sensational) to see “politics” here simply as memory/experience with certain vendors who go out of their way to lock you into their One True Way at the expense of interoperability with tools from other vendors.

    Indeed many vendors are guilty here, but I shun all that are in favor of those who try to compete by offering the best implementation of accepted standards.

  3. Andrew Clifford Says:

    From TheServerSide.com:

    Ted is putting the onus on developers to find the value that neither Microsoft nor the Java community seem willing to promote. Ted is a really smart guy, great book writer, and avid fence rider. Unfortunately, most of us are just trying to keep up with either camp. Our IT management is trying to not look stupid by flip-flopping on architectures or diluting the developer and systems management knowledge-base by supporting two camps. Ted is trying to show the value but there has to be critical mass or at lest movement on WS-* to get going.

  4. Jack Webb Says:

    Let’s send an envoy over to TSS.COM?
    [From the ServerSide.Net
    In the spirit of harmony let’s send somebody over to http://www.theserverside.com and offer an olive branch. Okay, so, who can we send? I know you’re out there, we need one brave soul …

  5. Leonid Tomilchik Says:

    I would add to the title “…check your politics and *religion* at the door”, but this is sure not to go down well in the US. To me, the ferocity and strong-headedness of Java-vs-.NET debates, and oftentimes, sheer irrationality of expressed opinions and positions, sounds very religious: “It is so because the Book says so”; and “The ‘other’ guys are infidels”.

  6. JVaughan Says:

    TSS Interop Blogger Dino Chiesa writes: Because software has got to work, that means it must be practical. Asking the question that Ted proposed - What tools do we have available to make our systems work together? often might be translated not to “what new tools are out there that I can buy?” but rather “what is running in the shop today? What do we have skills with today? What are we comfortable running today, operationally? What can we afford to use, given our existing resources, financial and otherwise?”

    Often the answer that comes back to these questions is a pile of seemingly unrelated stuff, which at first does not look like it fits the bill. Like the crew of Apollo 13, the challenge to us is to take that pile of duct tape, gauze pads, and 3-in-1 oil (you and I both know that every enterprise that has been around since before June has a mishmash of systems) - you have to take that pile of stuff and connect systems together, practically.

    Read more.


Leave a Reply