SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Technology Stocks : BORL: Time to BUY! -- Ignore unavailable to you. Want to Upgrade?


To: James Yegerlehner who wrote (9645)3/30/1998 2:31:00 AM
From: Kashish King  Read Replies (1) | Respond to of 10836
 
You've frequently used the adjective brittle to describe COM. What about COM is brittle?

Well, it's brittle in many ways, not the least of which is the lack of an inheritance model wherein you have a tremendous amount of code duplication and very little reuse. It's brittle in that there aren't any restrictions on what a component can do on your system: you just promise not to do anything bad. It's brittle in that you just promise not to change the interface to your component, if you break that promise, intentionally or otherwise, all hell breaks loose. It's brittle in that you just promise to release any resources (including other component interfaces) that you use and if you break that promise the system may eventually crash. It's brittle in that they use the BASIC data type and you just promise to store a particular data type in those variables and all hell breaks loose if you don't. COM uses a reference counting scheme and guess who is responsible for ensuring the integrity of it? A few hundred thousand developers versus a handful of virtual machines in the case of Java. COM is not reliable (read: brittle).

Contrast that to a clean, type-safe inheritance model with built-in garbage collection and you can see why Java is annihilating Visual Basic and COM. Java is the annihilator operator for unwanted terms like COM.



To: James Yegerlehner who wrote (9645)3/30/1998 4:17:00 PM
From: David R  Read Replies (1) | Respond to of 10836
 
As a relatively unbiased user of COM, I have one "brittle" area that is quite annoying. That is that clients are responsible for clean up, and a client that fails to clean up properly means trouble for an out-of-proc server. The problem is heinous when the server is a singleton (i.e. one instance supports all users) as it can be rendered unstable by an ill-behaved client.

As an exercise in frustration, have an out-of-proc singleton server with connection points (IAdviseSinks) to a client. Make the client fail abnormally, and try to clean up the server.

THere are some very cool things about COM. Inproc OCX's can not be beat for simplicity and speed. But once you step outside of the execution boundries (or worse to another machine), COM begins to fall apart.