DSOM, a distributed variant based on CORBA, allowed objects on different computers to communicate.
With the "death" of OS/2 in the mid-1990s, the raison d'être for SOM/DSOM largely disappeared; if users would not be running OS/2 on the desktop, there would be no universal object library anyway.
In 1997, when Steve Jobs returned to Apple and ended many development efforts including Copland and OpenDoc, SOM was replaced with Objective-C already being in use in OPENSTEP (to become Mac OS X later).
They involve opportunities missed by IBM,[5] and destructive incompatible changes: Two projects of open-source SOM implementations exist.
SOM can be compared compiled libraries: [9] As of 2015, most of the information in the linked table is applicable to modern versions, except Objective-C 2.0 getting so called non-fragile instance variables.
Common Lisp Object System (CLOS) and Smalltalk are not known as being chain links like Java in LiveConnect.
Qt and KDE are notable for describing efforts it takes to maintain binary compatibility without special support in development tools.
It can be illustrated by so-called unprecedented approach it took to produce Delphi 2006 binary compatible Delphi 2007 release: How to add a "published" property without breaking DCU compatibility Archived 2015-12-08 at the Wayback Machine Objective-C is the most promising competitor to SOM (although not being actively marketed as multi-language platform), and SOM should preferably be compared to Objective-C as opposed to COM as it happened historically.
COM, XPCOM are being used actively, but they only manage interfaces, not implementations, and thus are not on the same level as SOM, GObject and Objective-C. Windows Runtime under closer look behaves much like COM.
Some consider SOM to be more robust since it only supports a language-neutral calling mechanism that is similar to COM late binding.
To add or change the exposed features of an object, it can implement additional custom interfaces.
SOM avoid this issue by providing only late binding – allowing the run-time linker to re-build the table on the fly.
Whereas COM essentially defines a cut-down version of C++ to program to, SOM supports almost all common features.
Although may think it odd that Microsoft produced an object library technology that could not support such a fundamental concept of OO programming; the main reason is that it is difficult to know where a base class exists in memory where libraries are loaded in a order unknown at design time.
The downside to this approach is that it is possible that new versions of this base class may no longer work even if the API remains the same.
In particular, SOM objects can be made available to OLE2 applications by either late binding bridge (based on IDispatch) or COM interfaces having higher performance.