Microsoft steers away from object orientation

Summary: When Longhorn ships, it will signal a full-scale move away from the object-oriented world of COM and DCOM, as Microsoft prepares to increase the pressure on Java

As Microsoft prepares developers and independent software vendors for Longhorn, the next version of its Windows operating system, the company wants to wean them off object-oriented programming.

Speaking at the Developing Software for the Future Microsoft Platform conference in London's Queen Elizabeth II Conference Centre on Monday, Microsoft software architect Don Box said the company will not invest much more in COM and DCOM -- Microsoft's mechanisms for sharing objects between programs.

Instead, said Box, programs will use XML-based managed services to communicate with each other. Box is leading the work on the "plumbing" part of Longhorn, called Indigo, which is effectively the successor to Microsoft .Net and as such will dictate how programs are written in future Windows platforms.

Moving developers away from the object-oriented world is a key element of Microsoft's battle for mind share with the likes of IBM, Sun Microsystems, BEA Systems, Oracle and other rivals who sell products based on the Java 2 Enterprise Edition (J2EE) standard.

Microsoft has made inroads into large corporations with its back-end server software. However, J2EE-based systems are still generally favoured by such customers for more complex computing jobs such as running stock exchanges or high-volume Web sites.

"The ability for programs to communicate is a core tenet for the way we want Longhorn to work," said Box. But, he said, object-oriented programming is just not all it was made out to be. "What promised in the 90s to be the most promising technology turned out not to be. By the 1990s, no one disputed that we could make objects work as an industry, but we got carried away with the metaphor. We naively said 'this notion of objects that seems to pan out so well when writing programs… should work for communications between programs.'"

Box said technologies such as Java's Remote Method Invocation (RMI) and Corba all suffered similar problems. "The metaphor of objects as a primary distribution media is flawed. Corba started out with wonderful intentions, but by the time they were done, they fell into the same object pit as COM."

The problem with most distributed object technologies, said Box, is that programs require particular class files or .jar files (referring to Java), or .dll files (Microsoft's own dynamic linked libraries). "We didn’t have true arms-length relationship between programs," he said. "We were putting on an appearance that we did, but the programs had far more intimacy with each other than anyone felt comfortable with."

"How do we discourage unwanted intimacy?... The metaphor we’re going to use for integrating programs [on Indigo] is service orientation. I can only interact by sending and receiving messages. Message-based comms gives more flexibility."

Box stressed that COM and DCOM are not dead. "Only now are some groups inside and outside Microsoft finally taking advantage of COM," he said. "Our commitment to COM is not finished… but our annual $6.8bn [£3.7bn] R&D spend is not going on OLE32.DLL," said Box, referring to the dynamic linked library that COM uses.

Analysts say the move away from COM and DCOM should not be a great surprise. "To an extent, most people expected this," said Bola Rotibi, senior analyst for software development strategies at Ovum. "While DCOM and COM will still be supported there will be no new work. They are saying it has come to a close."

Rotibi said that with Longhorn and Indigo, Microsoft is giving developers a platform on which they don't have to worry about how things connect, but instead can concentrate on how they want things to look. "It's all about the power to not have to worry about the plumbing. There is nothing wrong with the concept, but the question is, can they deliver?"

Topics: Apps, Software Development

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

5 comments
Log in or register to join the discussion
  • Dumbing down a system to create dumber users/developers, in order to compete in a creatively generated dumber market. Go Microsoft. In future all businesses will run the Microsoft way, no need for inovative and independent systems analysts or the like. We will all just use Microsoft's word for every thing... Clever.
    anonymous
  • There appear to be blatent factual errors in the reporting of the piece:

    i) Indigo is NOT a replacement for Microsoft .NET - it is a replacement for Microsoft .NET Remoting. These are worlds apart ... you will still write Indigo stuff in Microsoft .NET.

    ii) Microsoft are NOT trying to wean developers off object-oriented programming - they want to wean them off distributed object architectures. Again, these are worlds apart ... object-oriented programming will remain and almost certainly be used in the development of Indigo services.
    anonymous
  • I have nothing but a huge respect for Don Box and the authors, but I have always felt that the 2 key ideas behind Object Orientation are #1) Abstraction. You dont have to know the implementation just the interface. You work at a high level similar to the way people actually think ; great example is a steering wheel, a 7 year old can understand and use a steering wheel without understanding how the entire steering system works #2) Message Passing. Everything happens through message passing, this helps you to implement abstraction, you dont have to to any details about other objects, just how to send them messages.

    I agree passing objects around is not a good way to do things.

    It seems to me that Service Orientation is about again the same 2 key ideas #1) Abstraction, seperate the interface from the implementation and work at a high level, services provide each other business level functionality not low level technical services and #2) Message Passing.

    Sounds like the best, key ideas of object orientation are still relavent.
    anonymous
  • A move away from COM/DCOM is not the same as a move away from object orientation! Please try to understand the subject before writing an article about it, otherwise you only end up making yourself look stupid.
    anonymous
  • nothing to do with object orientation imho. More to do with giving up on remote object invocation.
    anonymous