The Artima Developer Community
Sponsored Link

Agile Buzz Forum
What CORBA got wrong?

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
What CORBA got wrong? Posted: Oct 3, 2004 6:50 AM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: What CORBA got wrong?
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Cincom Smalltalk Blog - Smalltalk with Rants

Advertisement

Ted Neward compares the WS* efforts with the older CORBA efforts - and has a few criticisms. Hmm. The more I look at what's happening with WS*, the more I think it looks exactly like what the OMG did with CORBA - a blizzard of specs no one cares about, which tend sto make vendor interop harder and harder. But anyway - I thought this was an interesting thing:

For me, the fatal problem for CORBA was that they also tried to tackle standardizing programming models/language bindings. Ever use CORBA using the C++ language bindings? Yuck. How about in Java - not so good either.

Hmm - there's a standard Smalltalk model as well, and somehow, it's simply not that complex. I'll show you:

Step one - turn on the listener in the DST control panel - make sure to enable I3. Step two - create a small class with a count variable, accessors for that variable, and an "API" method:


initialize
     "set the initial state"
     self count: 0.


add: aNumber
     self count: self count + 1.

Now, modify the #initialize method this way:


initialize
     self counter: 0.
     ORBObject namingService contextReBind: 'counterService' asDSTName to: self.

And add this method to "tear down" the service when you are done


release
     super release.
     ORBObject namingService contextUnBind: 'counterService' asDSTName.

Now, you can set up an instance by executing Counter inspect and leaving the inspector up for examination. Now, start up DST on another system, and execute this in a workspace: ORBObject namingService contextResolve: 'counterService' asDSTName.. That's it - you can now send the remote objects messages, like #add:, write there in the inspector. From there, wrapping a UI on it isn't hard.

Sure, there's exception handling, dealing with dropped connections - but that's no different than network programming has ever been. If you want the demo above to work with non-Smalltalk code, you need to go ahead and generate the appropriate IDL - but again, that happens for you. Seems a wee bit simpler than the complexity you see in Java and C++, eh? CORBA really didn't have to be complex - it just became so in the mainstream languages. Which says more about those languages than it does about CORBA, IMHO. The main reason that WS* is succeeding where CORBA failed? Port 80

Read: What CORBA got wrong?

Topic: The best software book ever Previous Topic   Next Topic Topic: PyCore - Python in Smalltalk

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use