Reg -
Go to both sites adn read up on thier implementations of DHTML, OLE, objects and containers then come back and I'll discuss it with you.
God, you can be a pompus ass! While I admit I don't know much about DHTML (that's why I asked you to explain what you meant by data binding), I *do* know quite a bit about objects and containers (must have something to do with being a programmer).
If you really want to discuss objects and containers and the benefits and side effects of different implementations, I'd be happy to.
Here's what I don't like about OLE/COM as I understand it. Revisions may have been made given the fluctuating state of s/w, of course, but it's just too damn hard to pick the good stuff out of MSFT docs for me to relearn everything every time they try to catch up.
OLE doesn't provide a very good way to name and/or locate services, and it doesn't allow persistent references to objects. CORBA provides a much more functional set of operations than COM does. This is because COM only permits a 32 bit result (HRESULT or SCODE) that includes one succeed/fail bit and a 15 bit field that MSFT has the exclusive right to define. This only leaves the remaining 16 bits to code other information. OLE support for languages besides C and C++ doesn't exist. Not only that, but there are no plans to do so. Why? Because conceptually it's not easy to extend. Even in C, users have to generate a structure that corresponds to the vtable of the interface. This only applies to servers, though, OLE automation service is easily used to hook clients. However, clients written in a language different from that of the server requires you to understand the binary representation of COM. COM doesn't do multiple inheritance because they do operation dispatch by offset (binary imp.) instead of by name. Instead,you have to do objects that are a set of interface pointers, one for each interface you need. This does allow for some cool flexibility, but seems like an ugly hack. Instead of multiple inheritance, COM has aggregation and containment, both useful features, but hardly all one would like to have. Multiple inheritance is a very nifty feature. OLE doesn't allow objects to throw exceptions like CORBA does, either. Also, OLE makes possibly invalid assumptions in the specification about the platform the service is running on. CORBA makes no such assumptions. Remember what you told Chaz about what happens when you assume?
I am not going to comment on the rest of your post. You have a lot of reading to do before we can finish this debate.
Yes, master. Seriously, though, what are you going to do when a multi billion $$ company starts giving away everything you're trying to sell, and says that they're just enhancing their basic feature set because it's a natural extension?
-justinb |