[Info-vax] Reinventing VMS logical names (Fuchsia & Win NT)

Arne Vajhøj arne at vajhoej.dk
Thu Nov 16 19:55:26 EST 2023


On 11/16/2023 6:35 PM, Dan Cross wrote:
> In article <uj616t$2e6j7$1 at dont-email.me>,
> Arne Vajhøj  <arne at vajhoej.dk> wrote:
>> On 11/16/2023 2:17 PM, Dan Cross wrote:
>>> In article <uj5n1i$2cg8e$1 at dont-email.me>,
>>> Arne Vajhøj  <arne at vajhoej.dk> wrote:
>>>> On 11/16/2023 1:18 PM, Dan Cross wrote:
>>>>> In article <uj5en8$2b2rf$1 at dont-email.me>,
>>>>> Arne Vajhøj  <arne at vajhoej.dk> wrote:
>>>>>> In article <3c044c90-ddb9-40ea-9e12-7c71279cd547n at googlegroups.com>,
>>>>>> Jake Hamby (Solid State Jake) <jake.hamby at gmail.com> wrote:
>>>>>>     On Thursday, November 9, 2023 at 12:40:38 PM UTC-8, Stephen Hoffman wrote:
>>>>>>>> DEC did a whole lot of work on DCE.
>>>>>>>>
>>>>>>>> OpenVMS itself never particularly incorporated DCE within, but DCE was
>>>>>>>> what DEC was both pushing internally and externally back at the time.
>>>>>>>>
>>>>>>>> Microsoft picked up DCE and ran with it, via the related COM/DCOM/OLE
>>>>>>>> stuff, and all of what was built upon that.
>>>>>>
>>>>>>> DCE was a nice idea but it really lost out in the court of
>>>>>>> public opinion for being expensive, promoted by "dinosaur"
>>>>>>> companies, and not being OO, in contrast to CORBA, which had
>>>>>>> its own problems, but was popular enough to get incorporated
>>>>>>> into the standard Java libraries until it was finally only
>>>>>>> recently dropped.
>>>>>>
>>>>>> Is DCE RPC less OO than CORBA?
>>>>>>
>>>>>> DCE RPC use IDL. And it seems perfectly OO to me. A client can
>>>>>> be written in C but so can clients for CORBA. Just cumbersome.
>>>>>
>>>>> Sun ONC RPC uses an IDL too.  Would you call that "Object
>>>>> Oriented"?  If so, what does that term even mean?
>>>>
>>>> I don't know Sun ONC RPC IDL.
>>>
>>> It is easy enough to look it up.  Same with DCE RPC, for that
>>> matter.
>>>
>>>> But if it is an abstract definition of an interface defining
>>>> the methods that an object implementation has to implement,
>>>> then it object oriented.
>>>
>>> That is too abstract to have meaning.  For instance, how does
>>> one define "object" in this context?  If I have a data structure
>>> represented as, say, a global array of machine words, and I
>>> expose a bunch of methods to manipulate that array via an RPC
>>> interface, is that "object oriented"?  I don't think many
>>> serious programmers would argue that it is.  Certainly, I don't
>>> think anyone would seriously describe either ONC or DCE RPC as
>>> "object oriented" even if things like MSFT's RPC is derived from
>>> the latter, and either _can_ be used to implement OO-style
>>> distributed systems.  But that's sort of like asserting that a
>>> function call is OO because OO languages make function calls.
>>
>> You may think that nobody would describe DCE RPC as object
>> oriented.
>>
>> There are also people that believe that the earth is flat.
> 
> That's a stupid non-sequitur.
> 
>> But that does not really mean anything.
>>
>> DCE was created by OSF.
> 
> Now you're mixing things; are you talking about DCE RPC, or DCE
> as a whole?
> 
> The basis for DCE RPC actually came Apollo's NCS/NCA RPC; it was
> not an invention of OSF.
> 
>> OSF published a little book "Introduction to OSF DCE".
> 
> I actually have a copy.
> 
>> The 1.2.2 version (latest version) on page labeled 8 (page 26
>>from start) says:
>>
>> <quote>
>> Objects are used to model the behavior of all sorts of application
>> entities. In
>> object-oriented terminology, an object is simply an instance of its
>> class. Each object
>> contains member functions (methods) that are only specified in the class as
>> operations. In the distributed object model, a DCE interface is a public
>> set of
>> operations, but the methods of implementation are separate and application
>> specific. (Data types are usually application specific but the interface
>> can specify
>> them as well.) A DCE interface specifies what is known as an abstract
>> base class
>> because the class has a public interface and a hidden implementation.
>>
>> Object-oriented applications make it easy to hide data and
>> implementation details
>> by using hierarchies of classes and other object-oriented features. Thus
>> object-oriented applications can help minimize the exposure of network
>> details and
>> the special DCE mechanisms of distributed computing. In DCE, the IDL
>> compiler
>> generates a class hierarchy for applications. This hierarchy contains an
>> interface
>> class derived from a DCE RPC base class. The interface class becomes
>> part of an
>> application in such a way that the network details, mechanisms of data
>> transfer, and
>> object location are hidden (encapsulated) in the base class.
>> </quote>
> 
> You elided all of the context of the rest of the book, instead
> quoting one small part of one small section that would appear to
> support your thesis, provided one hasn't actually read the book.
> But here at least you should have quoted the first paragraph of
> the section you copied:
> 
> |DCE allows for a distributed object model in conjunction with
>                                             ^^^^^^^^^^^^^^^^^^^
> |the other DCE models to give a flexible way to distribute
>   ^^^^^^^^^^^^^^^^^^^^
> |functionality and data for client/server applications. In
> |addition, a distributed object model combines appropriate
> |functionality with data, by way of distributed objects, in
> |a way that also hides how parts of the distributed application
> |communicates.
> 
> Note the emphasis I added.  Does DCE _allow_ you to write a
> system based on distributed objects?  Sure.  So does HTTP.  OO
> is one of many models one can map things to both HTTP and DCE
> RPCs; does that mean that that DCE RPC is somehow
> "Object-Oriented"?  Not really; neither is HTTP for that matter.
> Do you really think the fact that the IDL compiler can generate
> C++ changes that?  One can generate object-oriented bindings for
> HTTP clients and servers as well; so is HTTP "object-oriented"?

The comparison with HTTP is totally bogus.

HTTP interface is not defined using an object oriented definition
like IDL and the HTTP documentation does not talk about being
object oriented like the DCE one does.

It is correct that DCE can be used non object-oriented, but that
is not really relevant.

The argument proposed was that DCE lost due to not being object
oriented.

It does not seem plausible that DCE was discarded for not being
object oriented when it can be used object oriented just because
it can also be used non-object oriented.

Arne








More information about the Info-vax mailing list