Several years ago when Microsoft introduced its .NET technology, there
were many discussions about whether this was a sign of the end of COM. After
all, .NET isn't based on COM but instead on a runtime environment and byte
code. At the time, most everyone, including Microsoft officials, concluded
that .NET isn't the end for COM. But the world of technology keeps changing.
As we prepare to take another step forward, so does the likelihood that COM
is, in fact, reaching its end of life for most business applications.
Don't get me wrong--I'm not saying that Microsoft's product support for
COM or COM's use as a standard (and one used by key Microsoft products) is
coming to an end. However, we're fast approaching a point at which most
business applications won't be implemented with COM. This distinction is
important. Simply put, Microsoft isn't ending its support for COM but rather
the market is bringing about the effective end of COM.
In this case, it comes down to the demand for applications that have more
memory and faster processors. If you've been developing applications for more
than a couple years, you might recall the last big jump: the migration from
Windows 3.1 to Windows 95, which is better known in the technical world as
the transition from 16-bit to 32-bit OSs. I don't know of a single developer
who found this transition to be a pleasant experience. Perhaps it was
profitable for some consultants, but nevertheless it wasn't pleasant, even
for them.
We're now approaching the next big jump: the migration from 32-bit to 64-
bit OSs. When people hear "64-bit," they often think of servers. After all,
it was the overburdened database servers of companies' Web-based applications
that first showed the strain on 32-bit OSs. However, as we continue to move
forward, we're seeing that high-end users (e.g., developers who develop for
64-bit platforms, gamers who want more memory to make games run faster) are
eyeing the move to 64 bits. Although 64 bits might not be a priority on the
average Web server yet, as more servers are used to host multiple sites, even
Web servers will eventually look for 64-bit processing.
The result is a challenge for COM in that COM is a binary protocol. COM-
based applications base their communications on data contained and formatted
in their compiled state. Thus, when you compile your code to run on a 32-bit
OS, the code implements the protocol based on a 32-bit environment. The
problem is that an object that worked well in a 32-bit environment might not
work as well in a 64-bit world.
Microsoft and many hardware manufacturers are making their 64-bit products
compatible with existing 32-bit applications. However, compatibility is a far
cry from having a platform that runs 32-bit and 64-bit applications equally
well. The Windows .NET Framework is such a platform. More important,
Microsoft made the .NET Framework available several years ago, which means
that the transition from 32-bit to 64-bit OSs will be far less painful than
the transition from 16-bit to 32-bit OSs.
Although there will still be companies that use COM-based interfaces to
build applications, these companies will be the exception rather than the
rule in the not-too-distant future. Most companies will use .NET 2.0 and the
upcoming .NET 3.0 to build code so that their applications can be
effortlessly ported to the new 64-bit world.
End of Article