OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] The Browser Wars are Dead! Long Live the Browser Wa rs!

[ Lists Home | Date Index | Thread Index ]

On Saturday, October 19, 2002, at 08:26  PM, Karl Waclawek wrote:

> What is it that prevented CORBA from gaining more ground in the market?
> The fact that there is no standardized way to get through firewalls?

I think it was the development tools.  They sucked.  To start with 
CORBA was developed in the golden age of C++.  C++ is an extremely poor 
application development language with compile time static binding and 
no (useful) runtime metadata.

To work around that, the CORBA people (who were also quite enamored 
with C++) invented IDL (Interface Definition Language).  IDL looks a 
whole lot like C++ header files with some extensions.  It also requires 
lots of labor defining all kinds of serialization calls because 
serialization of C++ objects isn't something you can generalize.  Then 
you had to code-generate 3 versions each class (interface, proxy, and 
implementation) so the type checking compiler wouldn't freak out.

(Blanchard's (yes thats me) law of software development - any system 
that develops code generation as a standard technique is insufficiently 
powerful to solve the problem at hand).

Then you had all this stub code to generate and fill in.  It took 
forever because every class you wanted to distribute had to have a 
custom built proxy.

So while the underlying CORBA communications and services 
infrastructure was decent, the programming hoops you needed to jump 
through in order to take advantage of it were horrendous.  Java RMI, 
uses the same insane development process.

OTOH, take a look at HP Distributed Smalltalk or NextStep's PDO 
(Portable Distributed Objects).  These languages (Objective C and 
Smalltalk) are *message passing* rather than function calling systems 
and their technique for addressing unhandled messages is to call a 
default message handler (#doesNotUnderstand: for Smalltalk, 
forwardInvocation: on Objective C) rather than simply crash (in the 
case of C++) or throw an exception (in the case of Java). In the 
default handler, you can then package up the message and ship it over 
the wire.  You only need on kind of proxy with a little data about 
where the real object lives and you're set. No code generation, no idl, 
no hand coded serialization.  Distribute an object of any class on 

But the dynamic object people were out-shouted (and markted - ParcPlace 
was more interested in maximizing dollars per seat than in maximizing 
dollars overall and NextStep only ran on one kind of hardware) by the 
static typing crowd and so we have the nightmare  static programming 
languages C++ and Java rather than the nice dynamic ones from 5-7 years 

Its very sad to watch the deevolution of computer science over the last 
several years and we continue to lose new generations of developers to 
the static language mentality.

Plus I work harder and harder every year to accomplish the same thing.

Very sad indeed.

Todd Blanchard
System Architect


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS