Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jun 2002 17:10:20 -0500 (CDT)
From:      John Utz <john@utzweb.net>
To:        j mckitrick <jcm@freebsd-uk.eu.org>
Cc:        freebsd-java@FreeBSD.ORG
Subject:   Re: Anything like COM in Java?
Message-ID:  <Pine.LNX.4.44.0206281627291.29068-100000@jupiter.linuxengine.net>
In-Reply-To: <20020628185157.A33576@dogma.freebsd-uk.eu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 28 Jun 2002, j mckitrick wrote:

> | with the risk of being overly flip; you like COM because you haven't 
> | written any full size multiple developer products with it yet!
> | 
> | it get's very fragile and fiddly when you get up to the multiple 100's of 
> | interfaces.
> 
> We have quite a few in ours, but not hundreds.  There are basically 2
> things I like about it:
> 
> GUIDs, so if I say I want a certain version of an interface, 
> the GUID guarantees it is.

really? promise? nobody ever adds a new method to the same interface? your 
dev team get's it perfect the first time? if they dont get it right the 
first time ( a typical case in any development effort ) what happens then? 
new interface and new guid? or does the new method just get added to the 
same guid?

has anybody been dumb enuf yet to think that if they dont tell anybody
about a method that they added, then it's 'secret'. hoho. it's secret
until somebody runs that broken-ass* ObjectView?(is that it, i cant
recall)  thingy and gets themselves a new header and idl file complete 
with the 'secret' methods.

*in vc6, which was the last platform i used COM on extensively, the idl 
wouldnt compile because it was broken. i actually got hired into a new 
group at my old job based on the fact that i figured this out and fixed 
the mis-emitted idl so i could use it.

> It breaks down to straight function calls for in-process servers.  No
> overhead, less work than CORBA.

hmm, it breaks down to a call to a function pointer in a vtable, so it's 
not *quite* that simple...but certainly less involved then CORBA, at a 
cost of being trapped in a single OS. There *was* a DCOM port to a few 
things, but it met with less than enthusiastic support.

> | i could explain some more practical and pragmatic challenges associated 
> | with COM ( which i agree is pretty darn nifty in theory ), but this is the 
> | freebsd java list.
> 
> Please, email me privately.  ;-)
> 
> | umm, CORBA? are you trying to interoperate with a non java app? any non 
> | java app has to speak the same binary interfacing standard.
> 
> What I really want is the total separation of functionality that
> components can provide.  Now, the ugly part of COM is the type library.
> That's the necessary link.

yes, and you may eventually find yourself groaning vigourously when you 
realize that a needed interface change is going to require you to 
trivially edit and rebuild a whole bunch more files than you would have 
otherwise because of this additional requirement.

this is what i meant about being fiddly.

with the caveat that i have only read about it and not coded with it, the 
broker idea in corba seems to me to be a better solution; u do it your 
way, he does it his way, code the broker to sort it out.

> What can I do in Java that would allow one class to dynamically bind
> (early) to another?
> 
> I'm rather convinced at this point that components dramatically improve
> project organization beyond a certain point.

organization is more rigidly enforced, but *changes* to organization are a 
more annoying pain in the ass, and in a development environment ( *not* a 
*product* interoperability environment ) that counts for a lot.

> My current project uses a great deal of inheritance, but components
> really separate functions into contract interactions.

eek, worst of both worlds in my opinion, but it's only my opinion. now you 
have to go back and fiddle with even more things if you decide that you 
want to push back some funtionality into a parent class, or to completely 
rethink the problem (refactor).

I think that this at some point becomes a /usr/X11/bin vs usr/bin/X11 
issue, which is my shorthand for the idea that the pain is the same, you 
just are choosing your pain budget differently then i do.

i am sure that over the course of the next few weeks, other things will 
come up, but i think that i've hit the hi points from my perspective.

> How can I do this in Java?

i'm guessing EJB, but that's a guess absent experience.

> Do Interfaces work well enough for this?

no, i dont think so, because the implementation of the classes that you 
are passing as arguments to the methods that implement the interfaces are 
uncontrolled.

> Is there a Java binary equivalent, so the binding takes place at
> run-time rather than compile-time?
 
let me know what you come up with.

to return to my thoughts on COM, i think that it's really quite cool for 
defining inter *product* interfaces. 

for example, it's tres bitchin' to think of being able to add a new secure
vpn mail protocol to outlook as a COM object and have it automagically
show up ar a replacement toolbar for the default toolbar in outlook.

it's also worth recalling that WinAmp and XMMS and gimp and anything that 
has 'plugins' have a similar interface.

but, to return to my outlook example, *Nobody's* Done It!

furthermore, nobody sell's 'improvements' that i am aware of ( by that i 
mean a 'thing' that implements a GUID and is cooler than the original 
implementation so you want to buy it and replace the old one.

COM was a solution to a problem that nobody has really seemed to care 
about

MSFT continued to fiddle with it so that it would be simpler to use, but 
they've basically given up. 

there is an absolutely hilarious verity stob essay that i shared with some
of my other COM aware collegues:

http://www.ddj.com/documents/s=1504/ddj0108vs/0108vs001.htm

hope u get a laff. it's been fun to think of this again...

> jm
> 

-- 

John L. Utz III
john@utzweb.net

Idiocy is the Impulse Function in the Convolution of Life


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.44.0206281627291.29068-100000>