Re: Shared Semantics for Dynamic Interface Discovery
On Mar 30, 8:40 am, sandeep6...@yahoo.com wrote:
There are a few protocols (both Application-level and Transport-level)
out there that claim to be geared towards dynamic interface discovery
(e.g. CORBA-DII). I have never been able to fathom the concept in its
entirety. To me it appears that there is really not much you can do
if you discover an interface about which you have no compile-time
semantical knowledge. Can someone kindly shed some light on this?
Yes: You're right, and the other people are wrong. :)
mean, what exactly can we do if we discover an interface definition at
run-time? Wouldn't it require some level of human intervention to do
anything meaningful?
Yep.
I may be able to discover the names of
operations are supported, the names and types of parameters are need
to be passed, the data-type of the result that is returned etc., but
so what? Unless I know the behavior associated with each operation,
what good does it do me? And I can almost challenge that there is
absolutely no way in the world we can capture semantical details
associated with interfaces.
And isn't it extremely irritating when the people you argue with imply
that it is possible by pursuing this fruitless path, but always seem
to "have to go to lunch" when you call them out on it?
We got into this discussion at work while we were discussing this
problem on a smaller scale. Can we do anything about a blob of data
for which there is absolutely no compile time knowledge of its
underlying data structure but for which an XML description of the data
structure is provided at run-time? Again the same issue. Can we
really do anything meaningful with this data? I have given it some
thought and concluded that the only thing that can be done with this
blob of data is at the PRESENTATION LEVEL ONLY. Yeah, we might be
able to display the data correctly in some user interface, but that's
about it.
These types of people are *the* most annoying kind of smart people.
They are the Hoare's (pun intended) of the software engineering
world. I would not be suprised if the person you were arguing with
also believes that there is some generalized lock-free mechanism with
no machine-specific synchronization support that we simply have not
discovered yet.
Again I challenge that we can do nothing with this data
beyond the presentation level. One of my colleagues thinks that with
a run-time XML description of data we can populate the data in a
relational database and let some other application take it from
there. Now this may be possible, but aren't we merely shifting the
problem?
Yep.
My philosophical argument is that any claim to do anything meaningful
with either interface or data for which there is absolutely no prior
knowledge, without human intervention, is complete humbug. To do
something meaningful we need to have shared semantics between the two
entities. In all the hype of dynamic interface discovery and self-
describing data, no one talks about the need for shared semantics.
Because they cannot.
I would like to know what the wider community of netizens, who are
infinitely wiser than me, think about this issue.
I certainly agree. See post #4 of this thread:
http://groups.google.com/group/comp.lang.c++.moderated/browse_frm/thread/cd3=
ceb807bf9f3ac
About the person you were arguing with:
You probably already know that you and he will never see eye-to-eye on
this matter. His perspective on design is a manifestation of
fundamental differences in the neural-interconnects between your
respective minds.
One way to weed out people like this during an interview is to take a
stack of 100 sheets of blank paper, lock him in a room, and tell him
to architect, in excruitating detail (with code), before leaving the
room, a system of moderate to great complexity, making sure you
impress upon him the need to be specific [red-black tree for set vs
straight binary tree, etc.]
If he starts sweating, he might not be what you are looking for,
because people who think in that manner often find displined
forethought toxic, a quality that just happens to be a prerequisite
for being a good engineer. Another dead give-away is if the person
insist on interacting with you or other members of the interviewing
team while doing the design.
Incidentally, the whole notion of .COM and interfaces (and some
aspects of .NET) foll into this category of meandering modes of
thought.
-Le Chaud Lapin-