Slashdot Mirror


The Rise and Fall of Corba

ChelleChelle writes "Chief scientist of ZeroC, Michi Henning, has an interesting look at the story behind CORBA a once-promising distributed computing technology. Henning provides more than a brief history, in addition to several reasons pinpointing why CORBA fell short, focusing specifically on the OMG's technology adoption process itself. Most interesting is the final discussion on what we can learn from CORBA's decline, particularly in reference to web services."

304 comments

  1. OMG's technology adoption process itself. by Anonymous Coward · · Score: 5, Funny

    1. OMG Stable
    2. ???
    3. OMG Ponies!

    1. Re:OMG's technology adoption process itself. by zebidee · · Score: 1
      1. OMG Empty Stable
      2. OMG Pregnant Mare
      3. OMG Mare & Foal
      4. OMG Ponies
      --
      -- "Hey kids, try this at home!"
  2. Misread the title by Ka+D'Argo · · Score: 5, Funny
    Thought it said "The Rise and Fall of Cobra".

    Was hoping for an outline of Cobra Commander's long list of failures :(

    --
    Aw Frell this
    1. Re:Misread the title by A+Brand+of+Fire · · Score: 5, Funny

      Now we know; and knowing is half the battle!

      --
      [End of Line]
    2. Re:Misread the title by Blue_Nile · · Score: 0, Redundant

      Corba!

      --
      Si Hoc Legere Scis Nimium Eruditionis Habes
    3. Re:Misread the title by Mr.Dippy · · Score: 1

      I did the same exact thing. I was like "why the hell is slashdot going to have discussion on a 1980's cartoon?" I was ready to throw my 2 cents in and ask why the U.S. Gov't spent millions of dollars trying to destroy a highly organized terrorist network but every episode GI Joe couldn't kill one damn person? It would be like if we sent our troops to Iraq with all those high tech weapons but the insurgents never got killed.

      --


      -Dipster
    4. Re:Misread the title by CastrTroy · · Score: 1

      Which is why it's such a bad name. It's so close to a real word, that half the time you end up spelling it wrong, and people end up reading it wrong. It's like that idea that people can understand words, as long as the first and last letters are in place, the middle letters can be quite jumbled, and people will still be able to read it. Well, it works teh other way too, If your word looks like something else, them when people glance over it, they will probably see the other word.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    5. Re:Misread the title by Valen1260 · · Score: 1

      Cobra!

    6. Re:Misread the title by Anonymous Coward · · Score: 0

      here ya go (robot chicken, you have been warned)

    7. Re:Misread the title by Anonymous Coward · · Score: 0

      In other words, the cartoon was a lot more realistic than we thought. On the other hand, I would watch Aljazeera a lot more often if Destro were sending them videotapes.

    8. Re:Misread the title by Jeremi · · Score: 1
      why the U.S. Gov't spent millions of dollars trying to destroy a highly organized terrorist network but every episode GI Joe couldn't kill one damn person?


      GI Joe would be a less effective recruiting tool if it made any connection between war and death.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    9. Re:Misread the title by D-Fens · · Score: 1

      No no, the proper line to follow up with is: G.I. Joooe!

    10. Re:Misread the title by Scaba · · Score: 1
    11. Re:Misread the title by dreadclown · · Score: 1

      It works ten other ways too?

    12. Re:Misread the title by Firefly1 · · Score: 1

      Thanks guys; this is one of the more amusing subthreads I've seen in a while. Even before we debate the difference between the TV and comic incarnations of said snake-themed organization, even as we acknowledge that both have had their interesting points.

      --
      - White Knight of the Order of Mihoshi Enthusiasts
  3. CORBA. by Anonymous Coward · · Score: 5, Interesting

    CORBA might have been a great messaging infrastructure and all, but any corba websites I saw were confusing, over-diagrammed, impenetrably academic documents. Seriously, could you dumb it down a shade? Spare me your medical mumbo jumbo? Hello world apps?

    1. Re:CORBA. by Zero__Kelvin · · Score: 0, Flamebait
      CORBA might have been a great messaging infrastructure and all, but any corba websites I saw were confusing,
      The problem you are experiencing might be that you have absolutely no idea what CORBA is ... it is the Common Object Request Brokerage Architecture, and his quite literally nothing to do with Websites :-)
      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    2. Re:CORBA. by Anonymous Coward · · Score: 5, Funny
      The problem you are experiencing might be that you have absolutely no idea what CORBA is
      As I read it, the OP was talking about websites with information about CORBA. Who knows, maybe I'm wrong... but if I'm right, well it kinda makes you look like an ass.
    3. Re:CORBA. by Anonymous Coward · · Score: 0

      I meant webpages describing corba.

      Unless you were joking, in which case, never mind.

    4. Re:CORBA. by Anonymous Coward · · Score: 2, Funny

      Is that your username or your brain temperature?

    5. Re:CORBA. by Anonymous Coward · · Score: 2, Funny

      One time I was laid off, and during the exit interview I asked about medical coverage. The HR rep told me about this thing called CORBA (she coughed just before she said the word). I didn't know anything and was a bit shellshocked anyway so I said great. A few days later an API manual arrived in the mail. No medical benefits, just some sample code for an interop standard that didn't really work.

      I didn't get no respect.

    6. Re:CORBA. by Profane+MuthaFucka · · Score: 1

      At least we all now know that superconductivity is not a method for increasing intelligence in humans.

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    7. Re:CORBA. by LizardKing · · Score: 1

      The best book I've read on CORBA is one dealing with CORBA from a Java programmers perspective. It's called "Java Programming with CORBA", ISBN 0471376817. It has the best description of the POA I've read - I struggled with this particular feature of CORBA before, as I couldn't understand why it was designed the way it is from reading the Henning and Vinoski book. The Henning and Vinoski book is the definitive one for C++ programmers, but it is a pretty dull read even by teh standards of computer textbooks. It isn't helped by the quality of the C++ language mapping, which predates the ANSI C++ standard. The mapping could have really benefited from use of things like the standard string class and containers.

    8. Re:CORBA. by deander2 · · Score: 1

      dude, come on now! no CORBA "hello world" app has ever been written in under 21K lines of code. that's a massive intellectual property investment which no self-respecting manager would just give away for free! what are we, commies? :)

    9. Re:CORBA. by joto · · Score: 2, Informative
      CORBA might have been a great messaging infrastructure and all, but any corba websites I saw were confusing, over-diagrammed, impenetrably academic documents. Seriously, could you dumb it down a shade? Spare me your medical mumbo jumbo? Hello world apps?

      If you'd RTFA, you'd understand that that's exactly why it failed. Corba is badly designed, and overly complex for what it does.

      First of all it's a lot of hype. Today, it might sound daft, but when CORBA was envisioned, everybody did not use http and XML for everything. So if you wanted two or more programs to talk to each other, you'd need to invent a new protocol. And people did just that all of the time, with varying success. Of course, there would have been money to be saved, if everybody could agree on a common protocol. But nobody but salespeople could have come up with the idea of making the common protocol using "objects" instead of clients and servers. Almost all CORBA-lingo is equally daft and misleading.

      Secondly, it never worked. There's never existed, and probably will never exist, an implementation of CORBA that has all the features in the standard. And at least at the time I used it, every implementation was buggy, forcing some of the top programmers in our organization had to become "CORBA-experts", so that we would be able to use CORBA at all. This was a waste of talent, as this was the guys with 10-30 years of domain-specific knowledge and experience who used their time on CORBA instead.

      Thirdly, it was never compatible. Every revision of the Corba standard to date, and every implementation by every vendor, were incompatible. And it's not just a question of search and replace in your code-base. Implementations are incompatible in semantically interesting ways that are relevant and important for application developers. It's called "vendor lock-in".

      And fourth, it was overly complex. A simple "Hello World" CORBA-program that merely contacts the naming service and looks up the IOR to get a reference to a remote object, which it calls at least one method on, has to be about 100 lines of code. The verbosity of CORBA in this respect is staggering, especially when you see that it's intended to be an improvement over earlier systems, such as DCE (itself overly complex, but still...).

      Ok, our organisation still uses CORBA, and are even quite happy about it (today). But it has cost us a lot of money in the past. On the other hand, todays web-services would be totally inadequate for us, so the only other alternative would be to roll our own again...

    10. Re:CORBA. by cow-orker · · Score: 3, Interesting

      Well, you can. It's actually dead simple: CORBA is RPC, just that you don't address some particular service, you invoke a method on an object reference, which contains the servers address. Add in an interoperable binary protocol, a standard language to define interfaces and some standard mappings to common programming languages, that's all there is to it. Services are completely optional, the ORB, commonly depicted as an all encompassing cloud with mystic abilities, is just a support library to decode object references and speak the wire protocol. For the long version, here's CORBA in 5 Minutes.

      Now why the confusing websites? Well, what would you do as a vendor? Tell your clients (managers!) that you're selling them an RPC library? No way! It has to be Object Oriented Middleware, it must be Enterprise, and everything ties into the mystic ORB. You absolutely need an ORB! Well, you didn't in the 80's, but this is the 21st century and there you need an ORB! Oh, and what a remarkable conincidence... we are just selling ORBs!

      Anyway, have a look at ORBit. CORBA can actually be simple. It's commercial software that cannot.

    11. Re:CORBA. by Anonymous Coward · · Score: 0

      That's funny zero... everytime you try to take an AC down a notch, you end up getting modded into the ground, while the AC gets modded +5...

    12. Re:CORBA. by Anonymous Coward · · Score: 0

      You obviously have real insight into this. I actually read TFA but it went over my head -- I know very little about e-commerce systems and couldn't quite translate the article into real tasks and needs of companies. (Didn't spot any examples to clarify what he was talking about -- the article kinda supposed the reader knows what "CORBA" comes from...).

      Could you slightly expand, on somewhat layman terms (I'm a hardware guy and limited to driver programming), on actually why today's web services are inadequate to your company? What stuff -- and on what kind of scale -- do you do with COBRA?

      I understand there are limits to what you can tell and what not. But any smack you can lay will be warmly welcomed :-)

    13. Re:CORBA. by jc42 · · Score: 2, Interesting

      First of all it's a lot of hype.

      Heh. This article was actually the first clue I've ever read that CORBA was anything but hype. I've run across the acronym a zillion times, but before today, I'd never actually read anything that got through my thick skull that it was a communication protocol, much less what problems it was designed to solve. Same with pretty much anyone that I worked with. When management pushed it on us (complete with the management-friendly hype but not much more), the reaction of the developers was usually "Hey, that's great; we'll look for places that we can use it effectively." Of course, not really having any idea what it did or how to use it effectively, we never found any places that we could use it. The obtuse examples didn't help; reading code that doesn't make sense without uderstanding what it's supposed to do isn't a very good way to convince your typical developer that it's something they want to use.

      In any case, there's not a lot of implementing you can do with just an acronym and management-level hype for "documentation".

      Thirdly, it was never compatible.

      Sort of a problem for something designed to solve cross-platform communication problems. (If that's actually what it was supposed to do; I'm still not sure about that. ;-)

      I got the idea from TFA that it was a protocol developed mostly by a number of vendors. Are there any cases where this has worked? All the successful standards that I know of were developed with a large government and/or academic contingent, usually both. Companies generally try to hide their secrets from competitors, which is somewhat of a problem when you're trying to get competitors' products to work together. Granted, Sun and Apple are semi-exceptions, but even there, trying to get them to work out a common protocol is just asking for indefinite bureaucratic delays. (That's a voice of experience talking there; again there might be exceptions that I don't know of.)

      I liked the comment in TFA that one of the problems was that Microsoft didn't adopt CORBA. My immediate thought was "Well, duh!" Of course, the XML crowd has been showing signs of nervousness about MS's involvement, especially when the news gets out that MS is applying for patents on XML encodings.

      I've often thought that one of the main reasons for the Internet's success is that it was developed (by government and academic developers) for several decades before either IBM or Microsoft noticed it.

      It sorta reminds me of a comment I read once from a biologist, to the effect that one of the major adaptive constraints on birds is that they have to somehow prevent predators from noticing their nests until the babies can fly.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    14. Re:CORBA. by joto · · Score: 1
      Sort of a problem for something designed to solve cross-platform communication problems. (If that's actually what it was supposed to do; I'm still not sure about that. ;-)

      Oh, it most definitely was. It just never happened. They all needed to be source compatible, so they all used IDL. Which was mostly fine.

      The next step would be to let different CORBA implementations to talk to each other. Which they didn't. So OMG defined IIOP, which was a common wire-level protocol. IIOP was never mandatory in use, it only had to be supported. So the vendors "supported" it by using their own proprietary protocol, and adding a slower, buggier, less featureful implementation of IIOP, that required some hoops to go through to be able to be used at all. The vendors would claim that their protocol was "better" (i.e. faster, easier to use, more robust, etc) then IIOP since IIOP was designed mostly for "interoperation" while their protocol was designed for being "better".

      But in any case, you needed a CORBA library, and an IDL "compiler" to generate the "stubs". Exactly what was contained in this library and all the magic in the stubs was how CORBA vendors "improved" upon each other, and where they had the most fun breaking specifications and adding bugs. Of course there was a common core somewhere, but since every implementation was incomplete, and added proprietary features, this common subset was very difficult to find, and also very tiny!

      The few vendors left today follow the standard closer, and they also have a better standard to follow, so people shouldn't be as scared to delve into CORBA today, as they should have been when it was hyped. But it's still not "fun".

  4. What a ridiculous trend... CORBA to WebServices. by lonesometrainer · · Score: 5, Insightful

    Let's do SOAs based on WebServices. Right now, right here.

    The only Web-Service-Standard that's currently finalized and widely accepted is WS-I basic profile. So, no standard on...

    - authentication (no, dear MS people, HTTP basic is _NOT_ sufficient for the IBM MQ guys)
    - transaction management, transport and control (please say properietary soap headers)
    - encryption (there IS a standard for XML encryption, but it's unsure how to use it within SOAP)
    - naming services (UDDI is so dead, it's already smelling, go and find a public UDDI registry that's not just a webpage, that you can query via SOAP, IBM's developing a Websphere Naming Service, superb!)
    - ... and so on, and so on...

    Stuff that CORBA has been offering for nearly a decade! So why are webservices popular? Because of the technology? No way! They're freaking slow (our Java RMI services are nearly 50 times faster than those implemented with Apache Axis 1.4 here, and axis is pretty good). No, just because of the tools!

    Go, build a Webservice with NetBeans and a client with VS.net 2005 and you will have to implement two or three lines of code... That would have been possible with CORBA, too! The fall of CORBA is just a matter of tools, the technology is clearly better, offers more features, is very performant.

    But coding these days requires click and run...

    Sad.

  5. Where comes the Sun ... ???? by Zero__Kelvin · · Score: 5, Informative
    FTA:
    CORBA 2.0 in 1997. ... CORBA's future looked rosy indeed.
    I was learning CORBA in 1997. Alas, it was another Sun driven technlogy, like Java, before Sun understood how the technology landscape was changing. The only FOSS CORBA implementation that came anywhere close to implementing CORBA 2.0 was Orbit, and I do not know if the developers didn't have the chops, or (more likely) they were swimming upstream against a Sun that was still either hostile to OSS or simply wrote it off as a non-factor. In the end CORBA suffered the same fate as Java for the same reason(s).

    You can still use both .... but why would you?

    CORBA could *easily* be revived if Sun finally grasped the revolution in the market and decided to do so. Will they? Seeing as .NET/MONO is the only real competitor, they have an obligation to the community to do so IMNSHO. Will Sun step up to the plate and figure out that they have a very real obligation to the future? Hmmm ....

    BTW .. OMG was just a Sun directed organization ....
    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    1. Re:Where comes the Sun ... ???? by timeOday · · Score: 4, Informative
      CORBA could *easily* be revived if Sun finally grasped the revolution in the market and decided to do so.
      I don't think so. I spent almost 3 years working on an abstraction layer over CORBA so the other members of my (very large) development team could use it without being specialists. It's true that CORBA does everything, and does it well, but it's just too much.
    2. Re:Where comes the Sun ... ???? by maelstrom · · Score: 4, Funny

      As a member of the open source community, I have decided to revive the OMG group. To put focus on our roots, we shall be called the Object Management Freedom Group or OMFG for short. Any takers?

      --
      The more you know, the less you understand.
    3. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 1, Insightful

      He is right. (In my opinion.)

      I am not him, but the problem is the same - Corba is overly complex.
      His post illuminates the fact that this is not about Sun at all anymore, if it ever was. On the contrary, I saw Corba as quite popular among the OSS crowd.

      I did the same thing as the guy in your parent post. I suspect that in groups of developers all over the world, one guy was the Corba-guy with the task of just making it work. And we all had the same solution (I imagine) - writing the ultimate IDL, then a flexible abstraction layer in code. Then never touch it again.

      Nowadays Java and .Net and various libraries does what Corba promised to do, but far far simpler.

      I'm not sure where Sun fits in this picture at all. Why would they want to resurrect Corba, with JavaEE in its place?

    4. Re:Where comes the Sun ... ???? by Yokaze · · Score: 2, Informative
      Alas, it was another Sun driven technlogy, [...]

      CORBA? Sun driven? Everyone else did have more complete Corba implementation than Sun in their JDK.

      1997... I can't claim that my memory is correct on that matter, but sometime before 2000, JacORB provided a FOSS CORBA 2.0 Java implementation, which surpassed Suns by leaps.
      --
      "Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
    5. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      Maybe you should show your comments on this story to your shrink ... he might need to come up with a new script for you.

    6. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      I thought everyone had a copy by now, since it's available from the Customer Preview Program... :|

      Do you come on here just for an argument? Several of your other replies in this article seem to be deliberately inflammatory.

    7. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      On the contrary, I saw Corba as quite popular among the OSS crowd.

      I think it was only popular in the "CORBA is better than COM!!!!11 (What's COM?)" sense. Yeah, it's under the hood somewhere in Gnome, but how many CORBA-based middleware projects do you see on sourceforge?

    8. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      So completely untrue. OMG was not and is not a "Sun-directed organization".

      Sun had a CORBA implementation in the early days of the standards (early-to-mid-1990s) but it never made any serious commercial inroads.

      OMG is one of the few truly industry-neutral consortium out there.

      CORBA is complex, but solving enterprise computing problems is complex. If Web Services ever become enterprise ready, they will end up looking just as complex as CORBA. The process has started already, with the WS-* stack from Microsoft, BEA, and IBM...

      Something tells me the majority of the posters on this thread have never built mission-critical software.......

    9. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      CORBA was too unweildy and requires too much specialized knowledge to work.

      Anyone who has used IBM/Tivoli Framework-based products (Framework = CORBA) can attest to that. Upgrading a Tivoli app in an enterprise environment is a process that can take a team of 5 6-8 WEEKS, due to the complexity and limitations of the CORBA dispatchers. Since nobody knows, or wants to know about CORBA, upgrades & changes simply don't happen.

    10. Re:Where comes the Sun ... ???? by Michi · · Score: 1

      Having been involved quite deeply in the OMG, I would beg to differ. Especially in the early days, a single company could highjack proceedings simply by threatening to withdraw from the consortium. If any one of the big players at the time had indeed withdrawn, it would have spelled disaster. So, on occasion, one of the big companies got their way after threatening to withdraw...

      Later, it wasn't so easy to hold the organization to ransom, and outright blackmail was replaced by political maneuvring. I remember many occasions where the contents of a world-wide standard depended not on technical merit, but much more on who went drinking with whom at the hotel bar the night before the vote.

      Cheers,

      Michi.

    11. Re:Where comes the Sun ... ???? by xerxesdaphat · · Score: 1

      Sorry to the rest of Slashdot for metaposting, but the is the parent on crack to-night or something? I think every single one of his posts (save just one) has been troll/flame... what's that ad campaign, `Don't be a bloody idiot - don't drink and post!'

      --
      The Shoes of the Fisherman's Wife Are Some Jive Ass Slippers
    12. Re:Where comes the Sun ... ???? by ClosedSource · · Score: 1

      You're right that the OMG is not Sun-directed. It is true, however, that the CORBA spec has compatibility with Sun's EJB as a major goal. This is a special status that only Sun enjoys. There is no attempt to be compatible with MS's COM+ for example.

    13. Re:Where comes the Sun ... ???? by dnoyeb · · Score: 1

      Since the primary benefit of CORBA is that it can function between languages. It can connect objects in C++ to objects in Java and C and other languages. Why would Sun want to support that now? I think they feel Java is doing well and does not need to attach to Windows to be successful. Besides you can probably use RMI with JNI these days, which is a more Java centric approach.

      If I were Sun I wouldn't be so excited to put energy into supporting CORBA that I could put on some fancy new Java bloat.

    14. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      Zero__Kelvin: Put down the CRACK PIPE and STEP AWAY from the computer!!!

    15. Re:Where comes the Sun ... ???? by LizardKing · · Score: 2, Informative

      I was learning CORBA in 1997. Alas, it was another Sun driven technlogy, like Java, before Sun understood how the technology landscape was changing.

      Bullshit. Sun was pushing RMI by 1997. CORBA is a standard backed by the hundreds of companies that signed up to the OMG. (At my side are some NextSTEP developer manuals which I'm amused to see even have an OMG logo on them).

      The only FOSS CORBA implementation that came anywhere close to implementing CORBA 2.0 was Orbit

      Bullshit again. Go check out omniORB, MICO, JacORB and TAO for starters. All open source, all actively maintained and all supporting CORBA version 2.0 or higher.

      In the end CORBA suffered the same fate as Java for the same reason(s).

      So, CORBA is like Java. Ubiquitous in big companies and capable of producing highly scalable systems with excellent reliability, but not popular with PHP wheenies on Slashdot.

    16. Re:Where comes the Sun ... ???? by Michi · · Score: 1

      > So, CORBA is like Java. Ubiquitous in big companies and capable of producing highly scalable systems with excellent reliability

      Yes, agree. And CORBA does it at several times the development cost, defect count, memory footprint, and performance overhead than what is necessary.

      Cheers,

      Michi.

    17. Re:Where comes the Sun ... ???? by Anonymous Coward · · Score: 0

      It's the other way around. J2EE adopted IIOP. CORBA existed long before Java...

    18. Re:Where comes the Sun ... ???? by computational+super · · Score: 2, Funny
      If you cannot add value to the thread, why post?

      You must be really, really, REALLY new here.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    19. Re:Where comes the Sun ... ???? by ClosedSource · · Score: 1

      I should have been more specific, I guess. I was talking about the CORBA Component Model. Here's the OMG's summary (bold added):

      "Specification of: a Component Implementation Definition Language (CIDL); the semantics of the CORBA Components Model (CCM); a Component Implementation Framework (CIF), which defines the programming model for constructing component implementations; a container programming model describing how an Enterprise JavaBeans (EJB) component can be used by CORBA clients, including CORBA components; an architecture of the component container as seen by the container provider; how Component implementations may be packaged and deployed; and definitions of the XML DTDs used by the CORBA Components"

    20. Re:Where comes the Sun ... ???? by cow-orker · · Score: 1

      I spent almost 3 years working on an abstraction layer over CORBA

      All right, I'll bite. What's there possibly to abstract?!

      CORBA gives you network transparent objects. They look like objects in your host language. Nothing to learn here. You only need to orb_init and resolve_initial_references and go on acting as if everything happened on your machine. (But you shouldn't, naive network transparency will bite you.) What could possibly abstract more from the network than that without taking away all the power?

      Well, some language bindings, notably C++, could benefit from an abstraction layer. Actually, they'd benefit more from being replaced. I hope you wasted your time "only" writing a wrapper layer for some specific interfaces. That's legitimate, though it is also an indication that these interfaces were crap.

    21. Re:Where comes the Sun ... ???? by SimHacker · · Score: 1

      I was disgusted with the way CORBA was going in 1991, when I worked for Sun, and I still am. The article was a welcome vindication of the beliefs I've held for 15 years. In all that time, CORBA has never stopped sucking, so don't hold your breath.

      What's all this crap about Sun "finally grasping the revolution in the market" and "deciding to do so" and "having an obligation to the community" and "stepping up to the plate" and "figuring out that they have a very real oblication to the future"? Did you have Exctacy and back-rubs with Scott McNealy or something?

      I quit working for Sun because they believe their own bullshit and expected me to repeat their lies to our customers. Don't tell me you actually believe all that bullshit about Sun being the good guys who live up to their corporate responsibility, without being well paid to repeat that kind of crap? Or do you believe and spout all that crap because you work for Sun?

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    22. Re:Where comes the Sun ... ???? by SimHacker · · Score: 1

      Corba was totally fucked up and doomed to suck, long before Java was invented. The part about EJB compatibility came a long time later. Are you old enough to remember all the earlier bullshit about DOE and NEO and OpenStep compatibility? CORBA is a fashion victim, and after TNT, XView, OLIT, MOOLIT, Motif, CDE, Fresco, DOE, NEO, OpenStep and TCL fell out of fashion, EJB eventually became fashionable, and they changed the standard to reflect that, too.

      Does anyone remember Mark Linton's C++ user interface toolkit called Fresco (based on his earlier work on Interviews), which was at one time supposed to become the official display services for DOE? What ever happened to that? (Not to be confused with the more recent Fresco which was just a new name for Berlin -- or do they actually share any code or architecture?)

      According to Chuck Price at Sun:

      Fresco(TM) is being developed by a working group within the MIT X Consortium. It is a platform and language independent environment for constructing applications. Specifications have not yet been released from the working group, but certain decisions have been made public, to wit: 1) Fresco interfaces will be specified using the Object Management Group's Interface Definition Language, 2) the system is intended to support "distributed embedding", and 3) it defines a notion of structured graphics.

      OMG was always so confused about what their user interface and "Display Services" would be -- everybody went off in different directions, that they eventually abandoned: From the Common Desktop Environment (CDE) Frequently Asked Questions:

      Subject: 4.5 Is an object-oriented GUI toolkit like Fresco in the works for CDE?

      I have not heard anything about Fresco by name, but OpenDoc, OpenStep, and Taligent are on the minds of (i.e., being finacially supported by) those who are the sponsors of COSE. There has not been any public mention of the plans for transition from CDE as it is today to an object-oriented environment, but one is certainly needed since the COSE sponsors are heading down that path.

      The potential problem is that the new object-oriented environment from Sun (i.e., OpenStep) does not interoperate with the environment from IBM (i.e., Taligent) and that they have a different "look and feel." This is precisely the problem that CDE is supposed to solve. In a session at Xhibition '94, Sun held a developer's meeting in which they described the future desktop environment with CDE windows, OpenStep windows, WABI windows, etc. as a desirable thing. Sun went further to state that (and I am paraphrasing here) that developers could choose between rapid application development (and all the other good things from the object-oriented paradigm) using OpenStep or cross-platform portability with CDE. Of course, it might be nice to have both.

      Here's another interesting article from DDJ about Object Interconnections: The History of the OMG C++ Mapping.

      Why a C++ Mapping?

      Versions 1.0-1.2 of the OMG CORBA Specification [3], which existed from 1991-1995, contained a language mapping only for C. Unfortunately, given CORBA's OO (object-oriented) nature, writing CORBA programs in C was tedious and error-prone. However, given that CORBA was strongly influenced by C-based RPC systems such as the Apollo NCS (Network Computing System), standardizing a C language mapping first was easiest for those blazing the CORBA trail.

      Even as the first versions of CORBA were being published in 1991, however, the need to

      --
      Take a look and feel free: http://www.PieMenu.com
    23. Re:Where comes the Sun ... ???? by kupci · · Score: 0
      omniORB is indeed an excellent ORB - not sure exactly when they (AT&T) open sourced it, but then again, in '97 the open source wave hadn't kicked in much except for Linux, etc. I mean, I doubt that was a requirement back then, that it should have a FOSS implementation. Nowadays, different story. [Well, I'll be darned, you're right, it was open sourced in '97, and it supported 2.2. Kudos to Sai-Lai Lo and Olivetti]

      And you forgot to mention that much of the J2EE standards and APIs have a grounding in CORBA, in fact I was just reading that JTS (Java Transaction Service) borrows much from OMG's Object Transaction Service, to name one example.

      Too bad that with Web Services they are making the same mistakes all over again. Henning is a bit of a griper, surprised he didn't tout his zeroC CORBA-like app in the article, or maybe I missed it, for more interesting reading see Steve Vinoski's blog

      Sign me another corporate hacker I guess. No fancy, glitzy buzzwordy smack for us, but hey, it gets the job done.

    24. Re:Where comes the Sun ... ???? by angel'o'sphere · · Score: 1

      Come on guys.

      CORBA only has one big drawback: all early implementatisn where bug ridden and incompatible. In the first standards it was only envisioned that you can recompile your code to port it from one ORB vendor to the other ORB vendor. But 2 ORBS could not interoperate.

      CORBA is a bitch as it is a hughe standard. just like C++ is. So basically the same like in C++ was happening, lots of partly implementations, lots of buggy implementations. No 2 C++ compilers agreed for a long time on compiling the same code, and no 2 CORBA ORBS agreed on compiing the same IDL in a similar way or releasing references in in a similar way.

      Since the is IIOP CORBA is working nice. Since there are POAs CORBA is working nice. You mix a lot of stuff up in all your answers:

      SOAP -> Internetprotocoll, designed to work between "anonymous" entities, or business partners, spanning over several corporations or business partners.
      CORBA -> Intranetprotocoll, designed for high performance communication inside of an organisation. Using IDL to describe software architectures. Late you freely can distribute or mnolitic compile parts of the system. Describing a component and its interface with IDL does not necessary mean its a remote component. SOAP on the other hand is used to expose a new interface of an existing application to the internet.

      I personally dont think SOAP will rock in the near future. If you use HTTP, and if you use XML .... then its far easyer to simply transport hand designed XML instead of wrapping everything into proper SOAP.

      Anyway: CORBA is not dead. And wont be dead in the near future. All Enterprise Java Servers are CORBA servers and speak IIOP. The J2EE standard and the replacing J5EE standard requires them to be that. Sun even changed RMI to RMI/IIOP, from a developers point of view CORBA services accessable via IIOP just look like plain simple RMI services. RMI services can easyly be made accessible via IIOP, too! There are lots of free and open source implementations of CORBA, especially for Java. (And the commecial vendors selling ORBs thinned out, with more earnigs for the survivors on the CORBA market their implementationn got a bit better)

      In fact CORBA got a great revival in the late 1990s due to Sun and Java. The standard Java disgtribution (Enterprsie Edition) contains a CORBA implementation. For early steps in Java you don't even need to download and install anything, and definitely you don't need to spend money.

      When I have full controll over a software project, I *allways* use CORBA. Why? As most users said: in the beginning you only need 10% of CORBA, and those 10% are plain dead simple. As I *allways* use Java on the server we have a wide variety of ORBs which simpyl work, or are even reasonable FAST. The open question now is the clients: Java? VB? C++?
      When your system evolves and you think you need interceptors, easy to "configure" them into your system!! Need trading services? You can add them!

      OTOH, we tried this in a big project with SOAP. All microsoft tools failed in creating code by reading a WSDL from Axis. And frankly: I don't use a wire protocol tool suit/standard to manually dig XML elements out of an XML document. I want code on the client that is simply an object where I call a method, and the tool chain has to create this object and that method and has to take care for marshalling, serialization/deserialization etc.

      Basically I don't want ordinary programmers to need to have deep knowledge about the distribution standard I use. They simply should know how to access services, thats all.

      CORBA works great, SOAP sucks ... but well sooner or later SOAP also will work nice, if I'm 100% Java, both servers and clients, SOAP is superb, but overkill.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    25. Re:Where comes the Sun ... ???? by ungerware · · Score: 1

      No OSS ORBs? What about ACE/TAO, MICO, JacORB, and ORBacus? Most, if not all, were in existence back in '97, IIRC. Certainly ACE/TAO was.

      --

      -----
      Kvetch is Yiddish for "throw an exception" --Dr. Ron Cytron
  6. One man's simplicity... by 21mhz · · Score: 4, Funny
    From TFA:
    Many of the APIs were complex, inconsistent, and downright arcane, forcing the developer to take care of a lot of detail. In contrast, the simplicity of component models, such as EJB, made programming a lot simpler
    Wow. If EJB (pre-3.0) is simple in comparison, no wonder CORBA never really took off.
    --
    My exception safety is -fno-exceptions.
    1. Re:One man's simplicity... by lonesometrainer · · Score: 2

      It's a distributed, platform-neutral, language-neutral, object-oriented technology. The best OO could offer. What did you expect?

      Btw. EJB > 2.0 wasn't that hard, either. Just unconvenient in some places.

    2. Re:One man's simplicity... by FullMetalAlchemist · · Score: 1

      Actually, CORBA wasn't a component framework untill version 3 (and versioning of CORBA specifications is stupid, as a verion is an extension-only of previous verions).
      When was CORBA v3 released? Can't remember, 2002? Compare that to COM, which is based on the drafts of CORBA v1 but with added component framework, it's easy to see why COM won.

    3. Re:One man's simplicity... by Cyberax · · Score: 5, Informative

      EJB 2.0 is just a part of CORBA 3.0 specification :) So it's easy to understand why there is no a single CORBA 3.0 implementation.

    4. Re:One man's simplicity... by Anonymous Coward · · Score: 0

      me fail english? that's unpossible!

    5. Re:One man's simplicity... by ClosedSource · · Score: 1

      But not vendor neutral. In practice, code generated from one vendors tools won't be compatible with another's.

  7. Early middleware was doomed by mshurpik · · Score: 4, Insightful

    It's not surprising that an early middleware app like Corba failed because it was being developed at a time when the concept of middleware was just a buzzword. The article mentions the "fracturing" of the middleware market and the over-reliance on "screen scraping" technologies like HTTP+CGI. In other words, it wasn't until the standardization of the web platform (Apache+PHP+MySql or IIS+ASP+SqlServer) that people even knew what middleware was supposed to look like, and this standardization didn't happen, actually, until after the dot-com boom was over.

    1. Re:Early middleware was doomed by Anonymous Coward · · Score: 2, Insightful

      Some of the technical problems of CORBA went beyond a misunderstanding of what it actually needed to do. The biggest failure from my point of view was uneeded extra state that had to be synchronized. The hardest part of distributed systems is synchronization of views, so anything that makes this harder makes the entire system more brittle. Using CORBA always started out easy enough and then got nastier and nastier as development went on. Good riddance to bad rubbish really.

    2. Re:Early middleware was doomed by The+Pim · · Score: 1

      What do you mean by "middleware was just a buzzword"? That nobody really understood it? The article claims the opposite, that many qualified experts, who knew exactly what they were doing, worked on CORBA. I believe him. The point of the article is that even with capable people involved, standards groups tend to produce crap. Are you saying that middleware not a buzzword now? It seems to be more so than ever. What makes you believe that people understand middleware better now? And what do "Apache+PHP+MySql or IIS+ASP+SqlServer" have to do with any of this? None of the mainstream web services tools are based on them. (Not saying that's good or bad.)

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    3. Re:Early middleware was doomed by Anonymous Coward · · Score: 0

      CORBA was, at heart, basically a simply awesome and very modern object-oriented design.

      I'm not suggesting that object-oriented programming is the end-all (I don't believe that
      for a minute, actually, although I do often like it), but please remember that CORBA was
      neither concieved nor designed by idiots. Even though the committee failed (as Mr. Henning
      rightly indicates), that does not mean that it was a ship of fools.

      To say that it was "an early middleware app" is, basically, dead wrong.

      We faced great chaos before CORBA... and, sadly, we're still facing that chaos now. Michi Henning
      discussed a number of reasons in his articulate article. (Aah, aliteration.)

      But your comment here... well, it was hilarious:

          "the standardization of the web platform (Apache+PHP+MySql or IIS+ASP+SqlServer)"

      So much to pick on. I'm guessing that you're pretty "new" to this corporate software
      development stuff.

      So, I'll be constructive instead (I clearly am getting old... ;>): why do you percieve
      any of the combinations you suggest as a "standardization of the web platform"? Why might
      someone else quite seriously object to that claim?

      I'll leave it at that. Please investigate further.

    4. Re:Early middleware was doomed by mshurpik · · Score: 1

      >why do you percieve any of the combinations you suggest as a "standardization of the web platform"?

      Because when I was developing web applications for customers (2000-01), terms like "web scripting" and "database-backed web server" weren't defined. Customers didn't even know what PHP or MySQL were, or why they would need them.

      We were pushing scripting languages and databases at a time when customers had no idea what they were. Incidentally this was the end of the dot-com era.

      >We faced great chaos before CORBA... and, sadly, we're still facing that chaos now.

      Yep. Anybody in web programming probably has wondered why it takes ~1hr to make a selectbox.

    5. Re:Early middleware was doomed by mshurpik · · Score: 1

      >What do you mean by "middleware was just a buzzword"? That nobody really understood it?

      Yep. Customers looking to build web apps had no idea what scripting or databases were. Expecting them to make a clear decision on "middleware" was like asking stadium fans to referee the world cup. Middleware was a great way of getting venture capital. Nobody on the customer side could tell the difference between Tomcat and PHP.

      >None of the mainstream web services tools are based on them.

      Really? I tend to think that the best platform for web development is Apache+PHP+MySql. This certainly wasn't the case in 2001 when both PHP and MySql were non-starters. Now look at your average $10/month web account which offers these services by default.

  8. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 5, Interesting

    CORBA is too complex, an overengineered attempt at creating a clockwork the size of Tokyo whereas a single wristwatch would have sufficed.


    Yes, I have had to use it, unfortunately.


    The OMG people are clever bunch, but why do they insist on making these superheavy monolithical monsters? Why not build interoperable but smaller things which you can grok immediately, almost via intuition?


    Like you yourself put it indirectly via examples, developers like to develop systems which have the best supporting tools, systems which are the most intuitive and easiest to understand, systems which do not fight back when you try to do something, systems for which development is not an exercise in sado-masochism. So there's a design paradigm for you: make the APIs dead simple to use, and they will be used, a lot.


    Nobody wants to hack around some big behemoth. It's about job ergonomics, really. If a chair doesn't feel right for your body, you don't sit in it.

  9. Other failures by isj · · Score: 2, Interesting

    Initially the specifications for CORBA (object model, servers, language mapping, ...) were not free. Whenever I tried digging for details I ended up at a page which basically said "buy the expensive book". Of course they needed funding, but the lack of a free specification hindered adaption. I was also turned off by the continued references to UML (which was a new-fangled thing back then). When looking for hard details a floffy box does not help.

    It also seems that the vendors had a lot of problems agreeing. AFAIK it wasn't until version 2 that the on-the-wire format was specified. I can only speculate why.

    But I must say that the IDL (interface definition language) is close to ideal. Looks a lot like Sun RPC, and way better than WSDL. It only lacks the versioning as the article also mentions.

  10. Distributed applications by wysiwia · · Score: 4, Insightful

    Why should anybody create a distributed application when a simple library API is almost always sufficient. Why making something more complex than necessary. In most cases component APIs are rather stable as soon as all the missing pieces from early beta versions are solved. Yet even if they change it's possible to handle most cases without any intermediate interface definition etc.

    Prof. Wirth always said: "Make everything as simple as possible but not simpler". While Prof. Wirth as made many things too simple (to prove his statement true) any component system is yet much too complex for any locale task and many times also even for distributed tasks. I'm still waiting for a component system which is as easy usable as a simple library API.

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
    1. Re:Distributed applications by David+Off · · Score: 1

      > Prof. Wirth always said: "Make everything as simple as possible but not simpler"

      I think you will find that quote is usually attributed to Albert Einstein not some Swiss guy.

    2. Re:Distributed applications by Ricdude · · Score: 4, Insightful

      Um, there are instances where you *want* to distribute an application across several machines, and not have to worry about the details of implementing a robust inter-process communication layer yourself. Once you get past the boilerplate code of creating an object, publishing it's reference, and locating that object, CORBA breaks down into simple function calls.

      I just wish they'd create a C++ mapping that allowed for STL compliant sequences, and std::string compatibility...

      --
      How's my programming? Call 1-800-DEV-NULL
    3. Re:Distributed applications by Anonymous Coward · · Score: 1, Interesting

      Ricdude,

      I've used both CORBA and Ice.

      Check out Ice. You will experience a rush of "the good"!

      STL, baby.

    4. Re:Distributed applications by NutscrapeSucks · · Score: 1

      Why should anybody create a distributed application when a simple library API is almost always sufficient.

      People rarely start out with the goal of buiding a distributed application. It's either a question of scalability, or simply requirements issues such as interaction with multiple systems, distributed transactions etc.

      Also, in the Java and DCOM/MTS systems, there's not an enormous difference between using the distributed component and using a library API, which is also component-based. The simplicity is in the abstraction.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:Distributed applications by wysiwia · · Score: 1

      I think you will find that quote is usually attributed to Albert Einstein ...

      Yet Prof. Wirth used it all the time even if he wasn't original author. I wouldn't be surprised if it isn't Einstein either. So while people get known to use a quote that never implies they've invented it.

      I'm using the term "schitter bis bewölkt" (sorry German) on all possible occasions and if I ever get as famous as Einstein, people would certainly attribute it to me albeit I definitely can't reclaim authorship. ;-)

      O. Wyss

      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
  11. Re:What a ridiculous trend... CORBA to WebServices by lonesometrainer · · Score: 0

    I have to agree, somehow. It's just a matter of tools, even with CORBA tools would have been able to create IDL, the required supporting classes, proxies, whatever so CORBA could have been easy on the surface and a well fitting chair for the developers.

    We've had a solid and good working standard for distributed environments, so why this mess with webservices?

  12. Corba isn't dead! by Anonymous Coward · · Score: 5, Funny
    Just look at all the projects built on Corba like the Berlin Project and then you tell me Corba is dead.

    This article is nothing but a hatchet job on a mature committee standard. Corba is not falling like DCOM, it's soaring like the Hindenburg.

    1. Re:Corba isn't dead! by GotenXiao · · Score: 1

      Correct me if I'm wrong, but the Hindenburg crashed. In a large cloud of boom. Not really "soaring", that, is it? :P

      --
      Goten Xiao
    2. Re:Corba isn't dead! by Anonymous Coward · · Score: 0

      Geez you're sharp. It's almost as if I'm mocking Corba.

    3. Re:Corba isn't dead! by ultranova · · Score: 2

      Just look at all the projects built on Corba like the Berlin Project and then you tell me Corba is dead.

      This article is nothing but a hatchet job on a mature committee standard. Corba is not falling like DCOM, it's soaring like the Hindenburg.

      Isn't Gnome based on Corba ? Not that that's neccessarily good publicity for Corba, since Gnome is a huge mess with scalability problems: try opening a 100+ Eye of Gnome windows sequentially, waiting until the processor goes idle before opening the next, and notice how much slower the later windows open.

      Maybe you could convert Hurd into using Corba for message passing ?-)

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    4. Re:Corba isn't dead! by andersa · · Score: 1

      Seems like the only thing keeping CORBA alive these days is Gnome.

      If I understand things right, it is a very fundamental part of the architecture, so it's not likely to go away any time soon.

    5. Re:Corba isn't dead! by Anonymous Coward · · Score: 0

      Not really. J2EE is based, in part, on CORBA. Loads of app servers are sold every year and loads of applications are written on them. The programming abstractions have moved higher, but CORBA is there underneath.

    6. Re:Corba isn't dead! by nuzak · · Score: 1

      whoosh

      --
      Done with slashdot, done with nerds, getting a life.
    7. Re:Corba isn't dead! by tetromino · · Score: 1

      If I understand things right, it is a very fundamental part of the architecture, so it's not likely to go away any time soon.

      You understand things wrong. GNOME never made much use of Corba; the average GNOME developer tended to regard the Corba parts as unnecessary and over-engineered boilerplate. Thus, most GNOME apps had no IPC interface of any consequence. As a result, GNOME for the past several years has been moving from Corba to DBus, which is, frankly, much easier to use and much better suited for desktop IPC. Today, GNOME developers recommend that new applications do not use Corba, and in fact, the only GNOME application that still uses Corba in a non-trivial fashion is Gnumeric. According to developer blogs, GNOME3 will drop the Corba dependency entirely.

  13. Real reasons by William+Robinson · · Score: 5, Interesting
    The article focuses on market conditions and forces as reasons behind CORBA's downfall. Having worked on CORBA, I can say there are some technical reasons too.

    CORBA always required holes in firewall, more complicated to setup(as mentioned in article), poor/no load balancing/fault tolerance mechanism/ maintainability(probably this was not meant to be there, but very important for an ecommerce setup), poor QoS (this improved in CORBA 3.0 after Douglas Schmidt's and others contribution), security (though iiop over ssl appeared sometime later, security mechanisms for ecommerce were missing, that could bring collaboration from unknown consumers/providers.)

    SOAP/xmlrpc address some of these issues nicely, and might become defacto tools for business to business integration. I had only one issue with it. The protocol is too verbose.

    My 2 cents.

    1. Re:Real reasons by The+Pim · · Score: 4, Informative
      The article focuses on market conditions and forces as reasons behind CORBA's downfall. Having worked on CORBA, I can say there are some technical reasons too.
      I don't think you read to the second page, where he says:
      No matter how much industry hype might be pushing it, if a technology has serious technical shortcomings, it will eventually be abandoned. This is where we can find the main reasons for CORBA's failure.
      This is the point of the article: You have to get the design basically right for a standard to fly, but getting the design basically right (not even all the way right) in a standards process is darn hard. Frankly, we need standards for standards groups, since they keep making the same mistakes and ignoring the very wise and practical advice of people like Michi Henning.
      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    2. Re:Real reasons by Anonymous Coward · · Score: 0

      Er, SOAP's not that popular. Amazon has both SOAP and REST interfaces to their web services, and 85% of their usage is of the REST interface.

    3. Re:Real reasons by killjoe · · Score: 2, Informative

      One thing that gets overlooked with CORBA is the the stateful two way communication between the clients and the servers. The server can raise an event and tell the client to do something. That's just not possible with web services where constant polling is the order of the day.

      CORBA was a great idea implemented complexly. People don't like complex.

      I should mention that the author of the article works for a company which sells a product they claim is "better then corba". I have never used their products so I can't say anything about it but it's something to keep in mind.

      BTW zeroc guys do you have ruby bindings in the works?

      --
      evil is as evil does
    4. Re:Real reasons by zootm · · Score: 1

      To be fair, though, most commercial development (apparently) happens with SOAP, whereas REST is used more by amateur etc. projects. So SOAP is still popular in business. I think I'd personally rather use REST though, yes, but saying "SOAP isn't popular" doesn't really work because it's popular where the money is, which is something of a factor.

    5. Re:Real reasons by Anonymous Coward · · Score: 0

      Um... the article spent several pages on technical issues...

    6. Re:Real reasons by William+Robinson · · Score: 2, Interesting
      One thing that gets overlooked with CORBA is the the stateful two way communication between the clients and the servers. The server can raise an event and tell the client to do something.

      Yes, you are correct. Although, it has trouble with NAT. I remember one case, where we had to drop CORBA and go for designing our own protocol, because clients behind NAT would never recieve the event.

    7. Re:Real reasons by Ulrich+Hobelmann · · Score: 1

      Hm, I'm sure your complaints are valid, but it also looks as if they are mostly implementation-dependent.

      I'd wager the guess that CORBA applications can be well distributed (i.e. allow load balancing) and that an ORB could also include QoS features. Fault tolerance... are you talking about network errors, or simple return values in contrast to exceptions?

      Maintainability is clearly a bigger problem, as APIs evolve, but no technology can really solve that one, it's an organisational problem.

    8. Re:Real reasons by dan+the+person · · Score: 2, Insightful

      CORBA always required holes in firewall, more complicated to setup(as mentioned in article), poor/no load balancing/fault tolerance mechanism/ maintainability

      Right, so SOAP gets around this problem by reusing port 80 which on insecure networks sometimes has an unrestricted hole in the firewall already. In secure environments, you still have to put a new server in the DMZ whether it's port 80 your talking on or port 9001.

      As for load balancing and fault tolerance, Websphere here load balances CORBA clients over multiple machines in a cluster without any development effort. Just add more than one machine into your cluster and it does it.

    9. Re:Real reasons by killjoe · · Score: 1

      Don't worry IPV6 will take care of the problem by making NAT obselete. BHAHAHAHAHA.

      Sorry dude I couldn't resist. This industry cracks me up sometimes.

      Anyway, I feel your pain. I really do. NAT has been my nemesis all too frequently.

      --
      evil is as evil does
    10. Re:Real reasons by Michi · · Score: 2, Interesting

      Trust me: Ice is better than CORBA, and by more than just a little bit :-)

      Unfortunately, Ruby has threading issues that prevent an Ice implementation for it. Otherwise, we would have done a Ruby binding long ago.

      Cheers,

      Michi.

    11. Re:Real reasons by chez69 · · Score: 1

      bloated is an understatement. my remote EJB calls are much faster then soap calls.

      SOAP is easier to get going with though.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
  14. Corba, Corba: I hardly knew ye by Anonymous Coward · · Score: 1, Interesting

    I knew Corba as the Common Object Request Broker Architecture. I knew it was middleware, but I never used it. I've use the entire LAMP stack to build killer web sites. Not one stitch of CORBA within it. You might argue that CORBA is middleware, and I'm not using it. Agreed. But as others have stated, the LAMP stack comes with piles of documentation. Corba usually insisted on a very specific installation...you basically had to know how it worked before being able to set it up and use it properly. Now CORBA is fading. When it's gone, I will remember it as technology that might have been ok, but no one will ever know, and now that it's gone, no one cares.

  15. I took a close look at CORBA and wrote this by Omnifarious · · Score: 3, Interesting

    Why I think CORBA and other forms of RPC are a bad idea.

    Here is the paper in brief...

    The speed of light is a constant. Latency will never improve beyond a certain point. For all but the simplest things, RPC is the wrong model for dealing with the problem of communicating with other systems.

    Also, the abstraction layer of function calls is the wrong place to put the communication of disparate, unrelated systems. It encourages too many assumptions about the implementation of either side. There is too much hidden state in the caller and reciever of the messages.

    1. Re:I took a close look at CORBA and wrote this by Moebius+Loop · · Score: 4, Interesting

      I'm not sure I agree with your chief argument, WRT latency in RPC calls. The answer to this is to use asyncronous development techniques as part of your IPC.

      The increasing amount of network-related latency dealt with in everyday communication generally means that in any reasonable interesting application, there are often large numbers of blocking calls that take a variable amount of time to return. Threads in and of themselves are truly not the answer, except possibly when used sparingly as part of a non-blocking system. (as an aside, I've found that as a Python developer, working with the Twisted Python libraries was invaluable in my understanding of asychronous development techniques.)

      With regards to the idea of function calls being an innappropriate abstraction for these mechanisms, I think the issue really depends on the implementation. The reasons I've used an RPC/IPC solution to communicate between processes (either locally or remotely) was because the various processes weren't closely related, and needed to have a common interface between them.

      Making assumptions about implementation is an inherently bad programming habit, and has much farther reaching consequences. APIs would be essentially worthless if the developers made assumptions about how the work is done "behind the scenes". If you need intimate knowledge of the memory space of another process, it may be an indication to use process fork()ing to provide the same results.

      anyways, my 2/100th of a dollar....

      -phil

      --
      have you been seen on slash?
    2. Re:I took a close look at CORBA and wrote this by Omnifarious · · Score: 1

      But, if you make a function call in your code, not knowing that it is remote, you don't expect 90% of the time making the call to be in simply getting the arguments to the call or getting the result back. That is why I think RPC isn't the right thing. Request response sure, but don't try to hide it as an innocent function function call in your code.

      Twisted has deferreds. Those are a great abstraction. And if every remote function call were done as a deferred, that would be fine with me. But I'd no longer call it RPC because one of the fundamental assumptions in calling a procedure, that it is done when you get back control, is no longer true.

      And most people don't put a lot of thought into their APIs, and designing a good network API is even harder. Ideally a good network API should survive complete re-writes of either side without having to change at all. Most people don't put enough thought into designing function APIs for that to be true if they apply the same care and discipline into designing a network API.

      I guess what I'm saying is that pretending a network message is the same as a function call leads people down a couple of paths that are very bad and lead to systems that are slow and not robust with regards to change. There are ways to code carefully to avoid these paths, but that means you can no longer treat network messages as function calls in the strictest sense. So I don't think they deserve to be called RPC anymore.

  16. zeroC ICE by Anonymous Coward · · Score: 0

    zeroC are developers of a CORBA alternative called ICE, evidently better in all possible ways, it's GPLed so it must be good.

    1. Re:zeroC ICE by BiggerIsBetter · · Score: 1

      You mean the author of an article discouraging the use of CORBA works for a company which has a vested interest in discouraging the use of CORBA? That's unpossible!

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    2. Re:zeroC ICE by Anonymous Coward · · Score: 0

      Uh, actually Michi Henning was a co-author of _the_ definitive text on CORBA programming, and one of the most respected CORBA gurus out there during its heyday. I'd say he might be a little less biased than you're implying.

    3. Re:zeroC ICE by Anonymous Coward · · Score: 1, Interesting

      Note: I do not have any affiliation with ZeroC or Ice, just admiration.

      If you have used CORBA (especially the C++ bindings), I definitely suggest that you
      try Ice.

      I evaluated XML-RPC, SOAP, CORBA, and Ice for my company.

      My recommendation was, crushingly, for ZeroC's Internet Communications Engine (ICE) technology. It totally
      rocks. It is what you should build SOAs upon.

      If you want good technology, that is.

      My company though my recommendations were interesting, but went with one of my least-suggested approaches, SOAP. The primary reason cited was that it is ubiquitous. See? If everyone is using something, it must be right to use it for everything.

      I'm gonna kick back for a couple of years, and wait for the moaning. I'm sure some "compression technology" or
      "deep refactoring" will come to the rescue.

      It all seems to be about mindset. And so very few companies really seem to "have it" when it comes to
      computers. It is almost as if the late 1970's and early 1980's PC era never really left us, those moments
      when real nerds had to have chops in order to /be/ nerds. If you had a personal computer, you built it. If
      you owned one that you didn't build, you at least could still program it.

      Now, bozos not always but very often make our technology decisions. They just don't know that they are
      bozos.

  17. OpenOffice and GNOME use CORBA. by Animats · · Score: 4, Insightful

    The intercommunication system within OpenOffice, the mechanism that allows embedding spreadsheets and drawings in other documents, is CORBA-based. Sort of. Actually, it's something called UNO, which started life as CORBA but went off in an XML direction.

    GNOME also uses CORBA internally. But its CORBA isn't compatible with the one from OpenOffice.

    The UNIX/Linux world has never really had a good way for applications on the same machine to intercommunicate in a subroutine-like way. Microsoft has OLE/COM/DCOM/ActiveX, which is clunky but always available. In the Linux/Unix world, there's nothing you can assume is always there. There's OpenRPC, there's CORBA (in about five incompatible forms), there's Java RMI, and there are various kludges built out of pipes. But there's been no convergence in two decades.

    1. Re:OpenOffice and GNOME use CORBA. by Stalyn · · Score: 4, Informative

      The UNIX/Linux world has never really had a good way for applications on the same machine to intercommunicate in a subroutine-like way. Microsoft has OLE/COM/DCOM/ActiveX, which is clunky but always available. In the Linux/Unix world, there's nothing you can assume is always there. There's OpenRPC, there's CORBA (in about five incompatible forms), there's Java RMI, and there are various kludges built out of pipes. But there's been no convergence in two decades.

      D-BUS

      --
      The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
    2. Re:OpenOffice and GNOME use CORBA. by nacturation · · Score: 1

      The intercommunication system within OpenOffice, the mechanism that allows embedding spreadsheets and drawings in other documents, is CORBA-based. Sort of. Actually, it's something called UNO, which started life as CORBA but went off in an XML direction.

      So, kind of an embrace-and-extend of CORBA?

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    3. Re:OpenOffice and GNOME use CORBA. by mcpkaaos · · Score: 1
      So, kind of an embrace-and-extend of CORBA?


      More like an embrace-and-extend-arms-and-shove-as-hard-as-you can kind of way.
      --
      It goes from God, to Jerry, to me.
    4. Re:OpenOffice and GNOME use CORBA. by ultranova · · Score: 1

      My system doesn't have D-Bus. Besides, according to it's own nearly-nonexistent docs, D-Bus doesn't have a stable API, so what would you code against ?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    5. Re:OpenOffice and GNOME use CORBA. by Stalyn · · Score: 1

      D-BUS is predominantly used in GNOME and will be used in KDE4. I'm not sure what they mean by stable but that part of the page was written in 2004. I'm using it now and it works fine.

      --
      The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
    6. Re:OpenOffice and GNOME use CORBA. by cortana · · Score: 1

      FYI, dbus 0.9 should be available soon. Ideally the API will be frozen at this point.

    7. Re:OpenOffice and GNOME use CORBA. by slick_rick · · Score: 1

      You are right that Windows has COM and it works mostly. What you neglect to mention is that COM is the reason that a macro virus could email its self to everyone in your (Outlook) address book. COM works a little too well in many cases simply because it is ubiquitous on the win32 platform.

      There was a /. article a while back on "diversity" being a natural defense against viruses in the real world and in the computer world. I agree that having to work with multiple RPC mechanisms on the desktop is cumbersome on the *nix side, but I wonder how different the windows virus scene would be without COM.

      --
      apt-get install redhat please god - Me (take it easy, I love Debian)
    8. Re:OpenOffice and GNOME use CORBA. by cow-orker · · Score: 1

      So we get another one. Everybody who has the slightest problem with CORBA goes off and builds the successor. How many more square wheels without spokes do we need? KDE started with CORBA, then invented DCOP. OpenOffice disliked CORBA, then created UNO. This Henning fellow grew tired of CORBA and made Ice, and what drove the D-BUS guys to add another one is simply beyond me. And most often the only visible "progress" is the replacement of IDL and IIOP by some XML hackery. Well no, I don't fscking care that an XML parser is "the only dependency I need". I don't want the bloated monster (it's just a lexer posing as a poor man's parser anyway), and I want it even less if I still have to do the hard work in my head!

      What's wrong with the GNOME approach? They simply fixed the crappy CORBA implementation. It works.

    9. Re:OpenOffice and GNOME use CORBA. by Anonymous Coward · · Score: 0

      What's wrong with the GNOME approach? They simply fixed the crappy CORBA implementation. It works.

      Well, no. The CORBA parts of Gnome have never really been used as much as anyone would like, mostly because they're so hard to use. As a consequence, the Gnome developers are working on transitioning things to use DBUS instead. The CORBA bits will be kept for a while for compatibility, but they have no future - they'll be gone whenever they decide to do a Gnome 3...

  18. Scary... by Gorimek · · Score: 3, Insightful

    I worked with CORBA around 1997-98. It was one of several new technologies in our project, and we never really got it to work properly. Everything was just really complex and error prone. The company got closed for many reasons, but our stuff didn't help things much.

    Recently I've done a lot of XML Web Services work. This can actually be made to work, but it feels a lot more like filling out your tax returns than programming. Everything is really verbose, and you have to tell the system the same thing over and over.

    I never really connected dots until I read this article, but it is pretty much the same uneasy feeling I have about this that I had about CORBA. And the article even explains how they're similar!

    Not that that has to mean they're destined for identical paths, or that I'm a visionary who can sense the fate of a technology years in advance, but it does make me a bit happier that I quit that job last week.

    1. Re:Scary... by Anonymous Coward · · Score: 0

      Well. I am not sure why you could not get it right, as you gave an example, let me give my example.
      I work for a telecom company and we rely on CORBA as a transport mechanism serving 20Million customers, and this works very well for us.

    2. Re:Scary... by Anonymous Coward · · Score: 0

      Funny, I work at another telecom and after a brief brush with CORBA, we abandoned this effort within 2 years. I'm not saying that it is no longer used, but to say that it is a transport for millions of customers would be incorrect...

    3. Re:Scary... by Kevan_moran · · Score: 1

      There are a number of technolgies where stuff seems verbose and error prone. Configuring stuff around Tomcat being another example in addition to the Web Services example you site.

      The trick is to script things properly. The whole agile framework approach can work quite well in many environments. Make the whole develop and the submit to CVS or Subversion or whatever mandatory, automate the nightly smoke and burn build out of version control automated.

      Make the only way that stuff can get into production be via a version controlled script.

      It does involve work up front but it sure as hell gets rid of any verbose, repeatative, error prone xml configuration concerns. Plus it's sort of self documenting.

  19. Gnome and CORBA by droopycom · · Score: 1

    Didnt Gnome used CORBA at some point ?

    I remember there was something called Bonobo...

    Is that still going on, or was that just a fad ?

    1. Re:Gnome and CORBA by WWWWolf · · Score: 3, Interesting

      Ayup, GNOME has their own implementation of CORBA stuff, called ORBit.

      Bonobo is the component framework in GNOME, and is built atop CORBA.

      AFAIK they're still pretty much in use.

    2. Re:Gnome and CORBA by 21mhz · · Score: 3, Informative

      GNOME is steering away from CORBA, to the point of rewiring their next major release for D-BUS. I believe this includes Bonobo.

      --
      My exception safety is -fno-exceptions.
    3. Re:Gnome and CORBA by Anonymous Coward · · Score: 0

      Miguel de Icaza recognized once that corba was a wrong choice for Gnome

  20. Re:COM is better by Anonymous Coward · · Score: 0

    RTFA. COM is microsoft only, and only an idiot would lock themselves into license hell.

  21. Fortuneteller's Orb by Doc+Ruby · · Score: 1

    I knew CORBA was doomed when Netscape announced it would use IIOP as its distributed server protocol, back in 1996. Because I never saw a single simple implementation. I'd be surprised it's taking so long to die, except that's the main purpose of OMG's long list of giant corporations which saw HTTP as "the new EDI".

    --

    --
    make install -not war

  22. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 2, Insightful

    The fall of CORBA is just a matter of tools, the technology is clearly better, offers more features, is very performant.

    Well one reason CORBA tools sucked was that it was over-engineered: intended to solve world hunger, clean up the environment, produce a fresh and pleasing scent and tuck you into bed at night - oh yeah and be the glue for distributed systems too. Web-service oriented protocols are simpler because they try to do less. Simpler protocols means that tools are easier to produce, which means tools will be produced.

  23. Re:What a ridiculous trend... CORBA to WebServices by The+Pim · · Score: 2, Insightful
    Go, build a Webservice with NetBeans and a client with VS.net 2005 and you will have to implement two or three lines of code
    There may be some truth to this (I've never used those tools), but that's not saying much. You've just built a self-contained "hello world" client and service, accepting all the defaults. Now, take a complicated, pre-existing service, using some non-default binding and non-trivial schemas, and integrate a client for it into a large existing application. I tried this recently using apache axis2, and it was a world of pain. Now, it may be that axis2 sucks and there are better tools, but I've read many of the web service standards, and it's clear that there are complexity and interoperability issues (why do these standards have to offer implementors so many options??) that you can't easily paper over. Ultimately, I agree with the author (and hope!) that web services will fail for technical reasons.
    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
  24. never as simple Re:Distributed applications by aaron_pet · · Score: 1

    The threading issue is siply non trivial, and there are going to be errors of different kinds on a distributed system, rather than on a local system... somebody tripped over the cord! and the like...

    I don't know much about this stuff, but I'd stop waiting...

    Conventions for passing data drrm important.. and I would assume that you could get by omiting some of the failsafes if your application allowed for it, and have a simpiler time dealing with this stuff.

    --Am I talking out of the wrong orifice?

    --
    Please use [ informative / summarizing ] SUBJECT LINES
    Flame me here
  25. Let's put it this way by Anonymous Coward · · Score: 0

    Imagine a few kids building castles on the beach using little plastic shovels that they can share. However, they kick down their friend's castle when he's not looking.

    Then imagine a tsunami of goodness wiping everything clean (Microsoft).

    And Bruce Perens is surfing the waves above all this on his MONO board.

  26. Re:What a ridiculous trend... CORBA to WebServices by bigmouth_strikes · · Score: 2, Insightful

    Different people need different things. For many companies being productive - i.e. having appropriate tools - is everything. In many cases tt doesn't matter if you have to roll your own or use a non-standards compliant protocol, as long as you can get the functionality out the door in a matter of months, not years.

    Like the article said, CORBA is a niche product for those who absolutely need it.

    --
    Oh, I can't help quoting you because everything that you said rings true
  27. Wasn't that Einstein? by Petersko · · Score: 1

    "Make everything as simple as possible, but not simpler"

    Wirth may have said it, but I think Einstein said it first.

  28. CORBA COM Failure 1: ... Maybe by Matz+L.E. · · Score: 1

    If I see this stacktrace once more I'm gonna explode! Useless error messages like that made me hate CORBA. Yeah, I know: "look at your classpath". But when you have an appserver that plays random() with your nicely packaged, clean EAR, it's just... not nice. One last advice: SUN Appserver 8.0.1 - keep your fingers off and RUN! 7.1 and 8.1 seem to be fine, though.

  29. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 2, Informative

    Unfortanly the IBM MQ and WebSphere (WAS, WPS, LWP) (in fact, all IBM software) is complete crap; slow, bloated and unstable. iSeries and zSeries are actually very good hardware though.

    And no, Axis isn't pretty good, is just as bad as the IBM stuff (probably written by IBM employees, though released through Apache foundation). It's slow and bloated and generates the most horrible code I have ever seen.

    You're right about RMI though, it's very fast and extensible.

  30. Gnome and KDE to use D-BUS ? by Zoxed · · Score: 1

    I do not use/follow Desktop Environments, but I thought I read that both Gnome and KDE are/will be using D-BUS (KDE in 4.0 ?)

  31. Open/Closed argument by Frankie70 · · Score: 3, Insightful

    CORBA was an open standard.
    COM was a propreitary standard.

    But still COM succeeded much more than CORBA.

    Dox Box's book "Essential COM" has a foreword by Charlie Kindel (one of Microsoft's
    COM/ATL developers) which discusses this.

  32. Wow Corba Must Be Difficult to Use by zos · · Score: 1

    From the article, "In contrast, the simplicity of component models, such as EJB, made programming a lot simpler (if less flexible)." That's the funniest thing I've read today; EJB makes programming a lot simpler. Ha! Sure it does...

    1. Re:Wow Corba Must Be Difficult to Use by chez69 · · Score: 1

      with the right IDE, EJBs are not all that hard. I've picked up message driven beans and session beans on my own.

      --
      PHP is the solution of choice for relaying mysql errors to web users.
  33. CORBA and DCOM too buggy for the real world by rubies · · Score: 2, Insightful

    Anybody who had to deal with the woeful implementation of naming services in CORBA, who stupidly subjected themselves to cross-platform / cross language system implementations (try Visual C++ on NT talking to Smalltalk systems on SUN == headaches and midnight support calls every day) will tell you CORBA was a crock. Anybody stupid enough to listen to Microsoft when they said they would fix the DCOM dropouts / timeout issues when the system would stop talking to other DCOM clients (requiring server reboots) will tell you DCOM was a crock. The old RPC stuff was hard to use, but at least it worked. Give me a minimal raw socket solution any day of the week.

  34. The parable of the two elephants by Beryllium+Sphere(tm) · · Score: 4, Interesting

    I can't find a citation for this offhand but the original author, whoever it was, deserves credit.

    Imagine two superposed graphs, with time on the x axis. One is the rate of technical change. The other is the rate of adoption.

    Standards activity needs to happen between the peak of technology development and the peak of adoption. Too early, and you standardize on immature technology that nobody will want. Too late, and the market has committed to somethign other than your standard.

    Those two peaks in the charts are called the "two elephants". In fast-moving markets they move closer together, and the standards committee is "squeezed between two elephants".

    Given that people were rushing to deploy immature technology for distributed apps, one factor in CORBA's troubles may have been that there was no room between the two elephants for a reference implementation or for nontrivial test deployments.

    1. Re:The parable of the two elephants by Anonymous Coward · · Score: 1, Informative

      That is analogy described in Tanenbaum's book "Computer Networks."

  35. Re:What a ridiculous trend... CORBA to WebServices by cryptoluddite · · Score: 5, Interesting

    The problem with CORBA was mostly the technicalities and 'grossness' of the design. Yes I used the Java bindings, and it was just crap. All these "helper" objects and peers and stubs and junk. You'd compile an IDL, which was some hacked up C++ interface which wasn't even C++, get a buttload of Java classes that did not act anything like any other Java object on the planet. Lots of 'icky' exceptions. It just, for lack of a better way to describe it, had no style.

    Try to teach CORBA to some normal programmer and they'll be thinking that creating their own wire protocol is probably going to be easier for 99% of the things they need to do. Seriously, you just don't look at CORBA bindings (for Java at least) and want to have anything to do with it. It's probably not so bad for C++ developers because they are used to a lot of noise and complexity, and they have templates and stuff to 'spray perfume' on CORBA and make it smell... better.

    But seriously, when your technology drains the life out of any competent developer who actually likes to program then you know something is very wrong.

  36. next generation is already available by Anonymous Coward · · Score: 0

    Corba is too complex and slow. redFox from redPlain is lighter faster better than Corba implementations. Check it out at http://www.redplain.com/ or read about it in Embedded magazine Jan 2006 http://www.embedded.com/

  37. What's in a name? by Black+Parrot · · Score: 3, Funny

    > focusing specifically on the OMG's technology adoption process itself.

    Calling themselves "OMG" probably didn't do much to encourage adoption.

    --
    Sheesh, evil *and* a jerk. -- Jade
  38. It's all about the acronym people! by Anonymous Coward · · Score: 0

    COBRA, they could have had COBRA - now that would have been a cool technology!

  39. I hate to not bash MS on /. but... by Anonymous Coward · · Score: 5, Insightful

    This is definitely a case where Microsoft's way of doing things was vastly superior. Whereas CORBA was designed by a committee of competitors who all wanted to sell object request brokers, COM was designed by a single company who wanted to sell software that could interoperate.

    MS saw a need, designed something to fill that need, tweaked it until it worked, then released it. OMG designed something to fill that need, and more or less immediately released it. As a result, no two implementations of CORBA could talk to each other without buying another piece of software. Come to think of it, I don't really know why they didn't just copy COM -- at least it worked.

    What they should have done was have a body of experts collaborate on a standard, implement it, tweak it until it worked, and then release it. This is why standards like IEEE 754 (floating point) and JPEG are so successful, while standards like CORBA and VRML2 are such crap. Once the dust settles on ODF, I'm afraid that ODF is going to end up like CORBA, with every program implementing it differently enough that adoption is hindered and it only gets used in-house by companies that mandate it.

    dom

    1. Re:I hate to not bash MS on /. but... by michaelwatson · · Score: 4, Informative

      What planet have you been on? I'm actually an MS fan, but in this case, I have to say that you've missed the boat. CORBA and COM have little to do with one another. One is limited to a single machine (COM). The other is a distributed communications technology (CORBA). True, Microsoft has a distributed version of COM (DCOM), but it's nearly impossible to deploy unless you've got a rocket-science-equivalent degree in Windows security permissions. You say "MS saw a need, designed something to fill that need, tweaked it until it worked, then released it." Yes, they did. And DCOM stank to high heaven. Even Microsoft doesn't talk about it anymore.

      CORBA, on the other hand, is heavily used in telecom, aerospace, financial, and high-performance, realtime scientific and control applications. Check out Doug Schmidt's TAO if you want to see what complete free, open-source CORBA can do. And stop bothering us with MS's abortive attempt at the same.

    2. Re:I hate to not bash MS on /. but... by SanityInAnarchy · · Score: 1

      What do you mean, "once the dust settles"? The dust has settled on ODF. You can use it today, it's already supported by OpenOffice, KOffice, AbiWord, even (with a plugin) MS Word. Hell, I AM using it today -- there's a nice little Ruby OpenDocumentText-to-HTML package that I'm currently paid to tweak, and it's a hell of a lot easier to work with than WordML or *shudder* .doc...

      --
      Don't thank God, thank a doctor!
  40. Corba sucked as bad as DCOM becuase.. by OneSmartFellow · · Score: 1
    ... it was yet another layer between the developer and the socket.

    RPC solved the problems of platform independance and marshalling quite well enough; although, I agree it was a bit messy to read.

    Any experienced software developer will tell you that too much abstraction introduces its own problems, and typically hides, rather than solves, the original ones.

    What's so hard about 'htonl' and 'htons' anyway ?

    1. Re:Corba sucked as bad as DCOM becuase.. by Anonymous Coward · · Score: 0

      Wow, you really are an idiot. CORBA handles more than just network ordering of bytes.

    2. Re:Corba sucked as bad as DCOM becuase.. by OneSmartFellow · · Score: 1
      Wow, you really are an idiot. CORBA handles more than just network ordering of bytes

      Really ?

      Gosh, all those years of using it, and I never even realised !

  41. Horrible, just horrible! by shippo · · Score: 4, Interesting

    Some years ago I worked on a roll-out of some systems management software at a large company.
    This software was based on CORBA.

    It was hoped that by installing this software on every server and workstation in every branch nationwide (typically only around 3 to 6 machines per branch, although there would eventually be over 2000 branches netweorked), it would be possible to determine that all servers were working properly.

    However the memory and CPU footprint used by the monitoring tools was immense. More than half of the RAM in the servers was taken up just by the monitoring software CORBA services, and the CPU load was also huge.

    We also had serious problems with firewalls. Far too many open ports for anyone's liking.

    1. Re:Horrible, just horrible! by JoeRandomHacker · · Score: 1

      Yeah, this doesn't sound like the best application for CORBA. Anything with a wide area network or firewall should raise a red flag. The scale seems a bit large, too. I'd generally limit CORBA to projects with a maximum node count in the dozens.

      Your CORBA implementation may take some of the blame; some have a larger memory/cpu/management footprint than others.

      Overall, your project was using a really large hammer to try to drive a lot of tiny nails. Smashed thumbs are pretty much inevitable.

    2. Re:Horrible, just horrible! by BattleTroll · · Score: 2, Insightful

      All of these issues are unrelated to CORBA. It sounds like a bad implementation; one which would have been equally bad had they used a roll-your-own RPC mechanism.

  42. Too many features; expressly obscure by bytesex · · Score: 3, Insightful

    CORBA tried to do too many things at once; not only was it supposed to be some kind of OO-RPC, it also specced a declaration language (IDL), which was replaced at some stage by an XML-variant, which it wanted to also use to incorporate data- and other resources, plus some kind of 'discovery' broadcasting protocol that you could use to find (distributed, of course) CORBA servers around you, oh, and object serialization in weird strings. On top of all that, you had to leave your blood, soul and first born child at the omg website in order to obtain documentation, because, as these guys felt it, they had gold in their hands, and they wanted to cash in on it good. And it _was_ good, but it was just that because of this in-built obscurity (in turn caused by its complexity and omg's secretiveness), nobody could really tell where CORBA stood; was it some kind of transactioning system a la the kind that IBM mainframes have ? Was it OO-RPC (but then, why not use RPC) ? Then all kinds of competing tech started to overtake it (java RMI, XML-RPC based tech) to which the omg only vaguely responded (the XML declaration thingy) but couldn't really, because of the moloch that CORBA had become. And thus they faded into obscurity.

    The moral of the story ? When you want to sell a protocol or a language, be as simple as you can (modularize) and be as open as you can (throw it around, even) Otherwise, if you're not IBM or Sun or Oracle, you will not make it.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
    1. Re:Too many features; expressly obscure by Anonymous Coward · · Score: 0

      Wow, you relly don't know what the hell you are talking about. Defines an IDL? Well, of course it does. Even RPC defines an IDL in which to define the interfaces. And the CORBA standards are free.

    2. Re:Too many features; expressly obscure by Anonymous Coward · · Score: 0

      Hold on there, grasshopper. They may be free now, but they used to cost an arm and a leg back then, at a time when it was arguably much more important for the specs to be easily accessible, to foster early adoption. Nowadays, it doesn't really matter that they are free, as other technologies have caught up in the mean time.

  43. On CORBA, Web Services, and Ice by Anonymous Coward · · Score: 3, Insightful

    From an OOP point of view CORBA's core architecture is basically very, very good.

    They screwed up the details. Mr. Henning's point of view is much more informed than mine,
    but I want to emphasise this: they got a lot right.

    Look at SOAP and the "Web Services" trend: like the language-du-jour, "everyone" seems to
    think it is something new, something great. Why do we need another MS-DOS every five to nine
    years? Percieved convienence is the usual answer.

    At my company, a major retailer in our market, we're now taking a legacy codebase that is far
    from perfect but nonetheless innovative and moving it all to silver-bullet platforms. You know
    the ones I'm talking about. The full-meal deal: all our problems solved.

    Even though the language we're "moving up to" is basically 1957 technology billed as cutting-edge,
      with a bloated description system being used to transfer what amount to fixed-field data records,
    and all of that piped through another bloated and basically silly but extremely trendy RPC mechanism,
    it's all supposedly for the best. Not.

    See the trend? Why are we always in a hurry, for everything? Sure, you can swing to a point where everything
    is crufty and convoluted (like CORBA), but you can get good things when you think about it a while.

    That brings me to Ice.

    I have a workmanlike understanding of CORBA. From that base, I have an equal understanding-- and appreciation--
    for Ice, gained in much less time. Of course, a lot of that is because the whole paradigm (Ice /does/ keep a lot of the things that were VERY GOOD about CORBA!) wasn't new, but let me say that Ice is a dream in many ways. The C++ bindings are a perfect start. For casual use, blissful. (Great job, guys!)

    What's my point? Okay. First, understand Michi Henning's article. Now, with that understanding, pretend that
    you're in a meeting in which SOAP and certain other "modern technologies" are all being suggested. Take the
    time to absorb the scene. Is the "modern" technology really and truly innovative, or is it just-- and this is /USUALLY/ the case-- crap?

    -Anon.

    (I have no association with ZeroC, by the way.)

  44. Not as bad as all that! by codonaill · · Score: 2, Informative

    CORBA is hard, it really is - but it's not impossible to work with. When CORBA started, the distributed development world was hugely different to what we have now - there were very few code-generation tools at the time. It was originally C++ and the Java mapping never really took off. However it was the seeds of the J2EE movement that came after it - read the EJB 1.0 spec and you can see the influence of CORBA on it. In fact, I seem to remember that it mentioned that CORBA should be used to handle persistence. (Which is bizarre, as the OMG persistence specs were always terrible, and the implementations worse). Things have changed though, and the whole web/firewall/security issues did kill it off in front-end situations (anyone remember CORBA Applets?). However, it's still alive and kicking deep inside in telephone networks, aviation industries, stock brokerages and much more. It'll be decades before the existing applications are removed. I still come across sites that have a CORBA infrastructure playing some part of the Middleware architecture - and working well for years. Bad? Maybe, but it works.

  45. CORBA rocks!! by Anonymous Coward · · Score: 1, Insightful

    Well, I did not see CORBA working for anyone here.... I am sharing my experience working with CORBA and c++.

    I work for a Telecom service provider, and we have been and are using CORBA for the past 6 yrs and I tell you that CORBA rocks, at least for us.

    We have convered some transcations to webservice call (because of some verdor requirement) but the response time really sucks.. it changed from 4ms to approximately 400ms.

    We serve 28Mi+ customers all the transcations go via our CORBA Bus and it rocks... :)

    tchau

  46. Deep down GNOME by williamyf · · Score: 0, Offtopic

    Where almost no one can see it, lies a big bunch of corba code.The only problem is that the guys reinvented partt of the wheel, so is only 90% corba.....

    So long for the memories

    --
    *** Suerte a todos y Feliz dia!
  47. good technologies left behind by stupid mediocre by quench · · Score: 0

    it's the same story repeating over and over again, you have a consortium or forum or simply a bunch of smart guys mostly university based people writing long documents inventing a new techonolgy and backing it with a standard. than you have Joe Doe which finds it too complicated or you have a company not willing to pay an expert so everyone is happy when a simpler technology arrives. the simpler techology runs into problems later on but who cares, the learning curve is not as steep. so the bad technology wins in long term. here sad examples (I was always on the loosing side and am proud of it):

    CORBA->SOAP
    H323->SIP
    HyperLAN->WLAN
    ATM->Ethernet
    DiffServ->IntServ
    C++ -> Java

  48. CORBA is alive and well in TAO by michaelwatson · · Score: 3, Informative

    Y'all talk about CORBA as if it were really dead. Hello? Check out Doug Schmidt's The ACE Orb (TAO). Can you say high performance FOSS distributed computing platform, in use in some of the most demanding of applications and demanding environments in the world?

    Yeah, it's got CORBA's steep learning curve, but once you're there, you can write distributed systems that perform much better than any web service platform will ever perform. It's FOSS, completely free for any use, unlike Michi Hennigs' ICE. I respect the hell out of Michi. I love ICE, but Zero-C's commercial usage fees are way too high for me to consider for any of my company's efforts. So I went back to TAO for my distributed computing needs and I'm as happy as can be.

  49. I think you're missing some standards... by DarkMan · · Score: 4, Informative

    encryption: HTTPS
    authentication: HTTP Basic over HTTPS, or certificate based authentication over HTTPS
    transaction management: WS-Coorination.

    I mean, you can use WS-Security; WS-SecureConversation and all that XMLSecurity jazz, but frankly, why bother when HTTPS just plain woks? (You probably have to give up on the 'firewall friendly' approach of everything over port 80, but that is a significant step forward in my book.)

    naming: I'll give you that. UDDI feels overengineered for what it's normally used for. On the other hand, why are you looking for a public UDDI registry? The Registry is essentially the single point of contact for a particular application; thus you normally would want to keep some level of control over it. On the other hand, for public acces web serivces, have a look at Xmethods (which does offer a UDDI query interface).

    Oh, and I disagree that Axis is any good at all, especially not in performance terms. In fact, Axis 1 is the second slowest (and second worst) way of using SOAP (Axis 2 is the only thing worse). If you want something fast, try GSOAP and C++. (To elaborate: every call made with Axis is essentially a dynamic call, the 'compilation' just writes code to change the defaults. This is a very poor design if you want performance, as you can optimise a SOAP engine a lot if you know the schema at compile time - and I'argue that's the most common use case.

    Web serivces have the potential to be approximately the same speed as CORBA, if they're not, look at your middleware. .NET web services are about 2 or 3 times faster than Axis, from our benchmarks (which did use stateful web services via WSRF, but I don't believe that distorts the timings apprechiably.) GSOAP is about 5 times faster.

    Java RMI can always be faster, because it knows that the classes is needs are already on both sides of the wire or that it can get the actual class directly. That's not possible in a language independant system, where instead you have to give a description of the objects. Also, RMI can pass richer objects than SOAP can, (SOAP is can't pass objects with methods, just data holders). That allows for better architectures to be generated, also improving speed.

    1. Re:I think you're missing some standards... by spike2131 · · Score: 1

      Oh, and I disagree that Axis is any good at all

      I agree that Axis sucks. XFire is another nice java alternative.

      --
      SpyDock: Scientific Python in a Docker container
    2. Re:I think you're missing some standards... by _fuzz_ · · Score: 2, Informative

      I mean, you can use WS-Security; WS-SecureConversation and all that XMLSecurity jazz, but frankly, why bother when HTTPS just plain woks? (You probably have to give up on the 'firewall friendly' approach of everything over port 80, but that is a significant step forward in my book.)

      Because HTTPS only offers point-to-point security. If you need to encrypt or authenticate through a web service proxy (e.g. an ESB) you can't guarantee or prove the security of the document from point A to B to C. Also, SOAP can run over SMTP and other transport protocols. So if either of those situations are a requirement for your architecture, HTTPS doesn't just plain work.

      --
      47% of all statistics are made up on the spot.
    3. Re:I think you're missing some standards... by cow-orker · · Score: 1

      Encryption: IIOP over SSL works. Many ORBs support it directly, and then there's always stunnel.
      Authentication: gimme a break! HTTP/Basic is a goddamn cleartext password! You can transmit that in the message context, if you want. (Possibly the only application for that context nonsense, but it's there anyway.)

      Java RMI can always be faster

      Haha, you're so full of it. RMI is exactly the same as CORBA, the original protocol is a bit different, but RMI can also speak IIOP. No, CORBA doesn't transmit "description of the objects". Nonsense, all it gives is the class name, for the benefit of dynamic clients.

    4. Re:I think you're missing some standards... by Anonymous Coward · · Score: 0

      But it just plain woks. Mmmm... tasty!

      [You could have spelled out to the OP that he is probably working on relatively small scale systems... You on a big one?]

    5. Re:I think you're missing some standards... by ink · · Score: 1

      Because HTTPS only offers point-to-point security. If you need to encrypt or authenticate through a web service proxy (e.g. an ESB) you can't guarantee or prove the security of the document from point A to B to C.

      The client certainly knows that he is operating through a proxy. One can also issue client-side certificates, if it's that crucial; this would defeat a proxy (or, drill the security down to the browser software at any means). A simple keylogger or other spy software can defeat even WS-*. HTTPS has been Good Enough for pretty much everything I've ever written; and Basic Authentication is just so darn ubiquitous that it's almost sinfully easy to roll it all together.

      --
      The wheel is turning, but the hamster is dead.
    6. Re:I think you're missing some standards... by Stu+Charlton · · Score: 1

      Because HTTPS only offers point-to-point security.

      Well, arguably HTTP is end-to-end transfer protocol. SSL proxying can and does happen all the time, what really matters is whether the intermediary is "trusted" + "active" or "untrusted" + "passive". The same applies to WS-Security with XML DSig.

      If you need to encrypt or authenticate through a web service proxy (e.g. an ESB) you can't guarantee or prove the security of the document from point A to B to C.

      If you have an intermediary that's doing *anything* to the unencrypted message, you can't guarantee the end-to-end security of the document. An ESB would just be passive monitor in this case.

      Now, there is an argument that "parts" of a message should be opaque/secured with one certificate, and other parts should be visible to the ESB through another certificate. But that's getting pretty complicated... I can see this in a huge service network, but broadly speaking such beasts don't exist yet.

      Also, SOAP can run over SMTP and other transport protocols.

      Sure, though you'd probably need to justify the use case...

      So if either of those situations are a requirement for your architecture, HTTPS doesn't just plain work.

      Granted, but those cases should be the exception, not the norm. If they are the norm, in my experience you are likely in one of three situations: a) making assumptions that are over complicating the architecture, or b) dealing with a political environment where simplicity is scorned over tradition/heritage/risk aversion, c) you are (or think you are :) working in a specialized domain with unique security, performance, or auditability requirements.

      --
      -Stu
  50. Re:What a ridiculous trend... CORBA to WebServices by Just+Some+Guy · · Score: 3, Insightful
    - authentication (no, dear MS people, HTTP basic is _NOT_ sufficient for the IBM MQ guys)

    WS-Security, an OASIS standard (like OpenDocument Format), has been around since 2001. You may wish to update your SOAP knowledge.

    But coding these days requires click and run...

    No: it's all about the APIs and who's making them available. Got CORBA bindings for Google? How 'bout the National Weather Service? If nothing else, people are publishing SOAP APIs that we actually want to use. That alone makes it much more interesting that competing RPC protocols.

    --
    Dewey, what part of this looks like authorities should be involved?
  51. Re:good technologies left behind by stupid mediocr by Viol8 · · Score: 2, Insightful

    "mostly university based people "

    And therein lies the problem. A lot of these ivory tower academics have
    never worked in the real world where there are things known as deadlines,
    costs and "lots of work". Ie , people don't have a few weeks free to kick back
    and learn a highly complex API. They need to be able to learn it on the fly.
    And if the API is over complex and over engineered thats not going to happen.

  52. Re:What a ridiculous trend... CORBA to WebServices by sonofagunn · · Score: 2, Interesting

    Have you ever developed web services? For the most part, it's even more complex. WSDL is more complex than IDL, for sure. Interfaces in WSDL often have to be awkward because they lack object orientedness. Callbacks are a real pain in the neck using SOAP. Performance sucks. Large objects suck. And as someone else said, SOAP is struggling to provide standards and features that were mature in CORBA for years.

    There are some environments, such as .NET, that make developing web services a breeze.

    The author has some good points on why we as an industry moved away from CORBA, but SOAP and web services are even worse in my opinion.

  53. 19th century advice for 1990s crud: Simplify! by scottsk · · Score: 1

    The Internet treats crud as an obstacle and routes around it. CORBA - haven't heard that name in a long time. It was so inhumanly complex that even though I had a book where little cartoon aliens tried to explain it to me, I blinked a few times and moved on to something else. CORBA came from a time when the technology industry had a lot of really complex crud like IBM's Visual Age platform, Standard C++, CORBA, etc. It was collapsing under its own weight. All this stuff might have been technologically superior, but it was difficult to use and no one used it and now we've got Linux and much simpler development environments. None of this complex crud ever got any traction.

  54. Re:What a ridiculous trend... CORBA to WebServices by supersnail · · Score: 2, Interesting

    I always had the impression that nobody at OMG had ever worked on a real system in a real environment.

    The killer for CORBA in the real world was how the f*** do you get 5000 copies of the IDL to 10 platforms at the same time?

    The very few succesfull implementations of CORBA had a single IDL that went:
        int msg_type;
        long msg_length;
        char[] msg_buffer;

    Thus quietly dumping 97% of CORBA and implementing a solution that could more easily be done with BSD sockets but without any architects/managers loosing face.

    Currently the only widespread use of CORBA is as the transport for J2EE, and yes they use a single IDL
    not too far removed form the one above.

    --
    Old COBOL programmers never die. They just code in C.
  55. XML-RPC by cruachan · · Score: 1

    Is XML-RPC still in use? The Wikipedia entry says it has now evolved into SOAP, which if I remember correctly from the last time I used it is not true as they are different, albeit closely related, protocols and SOAP is not a superset of XML-RPC.

    I coded a distributed application (a word game) with XML-RPC for a client some years back having been given the choice of language and communications option. I looked at SOAP at the time, but used XML-RPC as it was very simple to implement with a straightforward API I was up to speed with in a day or two, and it did what was required of it perfectly.

  56. Re:good technologies left behind by stupid mediocr by Anonymous Coward · · Score: 1, Informative

    As someone who was worked in both, rather that the position you outline, in my experience, it is the case that in the "real world" more people are more stupid and therefore take longer to learn things.

  57. CORBA is like SDI by SimHacker · · Score: 1

    Hey, I've hated CORBA/OMG/DOE at least since 1992, so I really loved that article. The author hit the nail on the head!

    From: Don Hopkins
    Date: Sat, Feb 27 1993 4:17 am
    Email: hopkins@cs.cmu.edu (Don Hopkins)
    Groups: comp.object

    Svante Kleist (etxs...@garboa03.ericsson.se) wrote:

    I simply wonder if there are other ongoing efforts with similar scopes and ambitions to those of OMG? (i.e. where are IBM?..)

    Does anybody know?

    Well, there was the Strategic Defense Initiative (Star Wars), but they kind of cooled it on that once Reagan was out of office.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  58. What? by joshsnow · · Score: 1

    You do appreciate the different concerns adderessed by CORBA and LAMP don't you?

  59. Re:What a ridiculous trend... CORBA to WebServices by indifferent+children · · Score: 4, Interesting
    Well one reason CORBA tools sucked was that it was over-engineered: intended to solve world hunger...

    Your comment is similar to many of the other comments in this thread. You're right that the CORBA specifications are HUGE and overly complex. But here's one of the great things about CORBA: it can be easily 'subsetted'. I use CORBA every day. I use 10% of it's features, and it is beautiful. If you gave me an exam about the esoterica of CORBA, I would fail, but for the parts that my company uses, it's easy.

    BTW, most of the huge CORBA spec that we ignore is stuff that isn't part of the SOAP spec anyway; SOAP isn't really comparable to CORBA, SOAP is comparable to IIOP (the most popular CORBA wire protocol). Saying that SOAP is better than CORBA because it's easier/simpler is kind of like saying that MS Works is better than MS Office because it's easier/simpler (no, that wasn't a great analogy, but at least it isn't an automotive analogy).

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  60. Boneheaded sysadmin port blocking by Goonie · · Score: 3, Insightful
    The article mentioned CORBA's problems with dealing with firewalls.

    Correct me if I'm way off base here, but it seems like the following happened with regards to ports:

    1. In the beginning, services were allocated to different ports, with HTTP going to port 80.
    2. Sysadmins decided to block everything but port 80.
    3. Stuff needed to be put through the firewall.
    4. Rather than developing procedures to get ports opened, everything but port 80 stayed blocked.
    5. Protocols were designed to use port 80 to get through firewall.
    6. Selective port firewalling became useless because everything uses port 80.

    Clearly, blocking ports selectively is not a sufficient security measure, but being able to block services based on the ports they use is a handy tool to have in the armoury. Isn't it? And isn't it one we've thrown away because sysadmins have been to anally retentive?

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
    1. Re:Boneheaded sysadmin port blocking by (H)elix1 · · Score: 2, Informative

      I was going to tag this as insightful, but figured I would add to it rather than mod.

      On the ports, the biggest problem was applications (not necessarily the corba orb - don't remember from my one project with it) wanted a range of ports rather than a specific port. Had we been able to say port 4567 or something like that, our security folks would have been more than happy to open up the firewall a bit. Many of the product we were wanting to use would try to use ports 3000-4000 or something silly like that.

    2. Re:Boneheaded sysadmin port blocking by sonofagunn · · Score: 1

      I agree. Opening ports shouldn't be a big issue or barrier to adoption. This is what ports are for - IPC/distributed computing! Firewalls allow ports to be opened for this very reason. It's easy and simple to do in any environment. Now why the hell should we drop a pretty good technology just because some network engineer is too lazy or stubborn to manage some ports?

    3. Re:Boneheaded sysadmin port blocking by Abcd1234 · · Score: 1

      Which is why you provide some sort of authenticated mechanism for apps to make port forwarding requests to the firewall. But, as the GP points out, no work was done in this vein, as people just bypassed firewalls by pushing everything over port 80.

  61. Re:What a ridiculous trend... CORBA to WebServices by pzs · · Score: 1

    I quite agree. I know performance and features matter, but surely even the zealouts can start to realise that ease of use is just as important. There seems to be a prevailing attitude in some environments that if you can't get it to work you must be stupid. Man, that's annoying.

    One of the measures I use a gauge a new tool is whether it behaves how I would expect *without tweaking* and without needing to refer to the documentation. The idea of thinking "if I do this, maybe it will just work".

    This might sound like an ambitious criteria: expecting the developer to read your mind. However, with good tools it occurs more often than you might think. Two examples of this: Python, the language where you can often guess how the arguments to library functions work often without needing to look them up, and the editor NEdit, which just seems to always have its options, features and windows in the right place and behaving as I want them.

    Of course, make sure the backend is sound as well, but this out-of-the-box usefulness will win you a lot of friends.

    Oh, and in the documentation: examples. Loooots of examples.

    Peter

  62. CORBA's Fallen?? by Anonymous Coward · · Score: 0

    Good thing I never bothered to learn it then.

    OMG!

  63. Re:good technologies left behind by stupid mediocr by Viol8 · · Score: 1

    Or maybe they have work pressures that preclude them from doing so. Its very
    easy to be a student with very little work to take time out to learn something.
    I was an MSc student once and compared to the working world university was a
    walk in the park.

  64. Go JOE! by Wubby · · Score: 1

    I read that headline too quick and was expecting an indepth discussion of GI Joe's arch nemesis. Man, I need to stop drinking in morning!

    --
    Sig
    Appended to the end of comments you post. 120 chars
  65. Yo Joe! by Alpha27 · · Score: 1

    Oh, this is about software, nevermind.

  66. Bring out your dead! (I'm not dead yet!) by ursabear · · Score: 1

    I don't think CORBA is dead. I think CORBA just didn't become ubiquitous.

    There have been (and will continue to be) many great technologies that have impacted/will impact software in an ongoing basis. Actually, CORBA serves as a great example of how things often work in the software world: a great technology is introduced into the software development world; the development/design world tries to work with it; it makes it as a viable technology or becomes a niche widget/system.

    What's positive about CORBA (and GIOP/IIOP)? A great many of us loved the bright and shiny aspects of it, jousted with its windmills, and learned a great deal about cross-technology, cross-language, cross-everything runtime communication/collaboration/data exchange. I sincerely think CORBA made subsequent technologies much better (than they would have if they had been introduced first). In my opinion, similar things like RMI and web services/SOAP-based technologies are clearly easier to understand, implement, and deploy - largely due to many of the lessons learned with CORBA.

  67. DOPE: Distributed Objects Practically Everywhere by SimHacker · · Score: 1

    Back around 1990-1991, there were also a bunch of HP and Apple people involved with OMG. Some of the HP people migrated over to Sun, and tricked Sun into starting Project DOE (Distributed Objects [Practically] Everywhere).

    Michael Powell was "Mr. DOE" at Sun. Before going to Sun, he worked on a Modula-2 compiler . He thought C++ had a really beautiful object model ("once you get past all that other stuff"), and didn't think anybody could understand Lisp (and didn't want anything to do with it). Nobody in the company actually knew what DOE really was but Michael Powell, so if you wanted to know, you had to go ask him, and he'd tell you what he thought you wanted to hear at the time, because he hadn't ever bothered to write it down. That was how he consolidated his power and kept a grip on his position as the architect of DOE, because nobody could pin him down about anything. So after years of development, DOE was so late and bloated that Sun finally released it on *TWO* CDROMs (unheard of at the time).

    Arthur van Hoff (who previously developed HyperLook for NeWS, and later wrote the Java compiler in Java, and founded Marimba) didn't think DOE was usable, so he sat down one day and rewrote a tiny version of DOE from scratch called "DOE-Lite", which everybody in their right mind used instead of the official bloated DOE release. Arthur then proceeded to use DOE-Lite to make a distributed object trading demo which Sun demonstrated on the show floor at Object World. Ironically, he implemented using the (then canceled) NeWS window system, instead the officially sanctioned DOE user interface toolkit (because the official DOE gui was vaporware).

    Sun put a lot of different colors of lipstick on that fat old pig, DOE: they renamed it "NEO", and then they tried to pawn it off as a back-end to OpenStep (NeXTStep, which they later gave up on), and eventually they tried to imply that it had something to do with Java.

    I'd love to know what happened to DOE architect Michale Powell since his reign at Sun back around 1991! (No he's not Colin Powell's son, head of the FCC.) Had anyone heard from Michael Powell ever since? Where is he now? Does he have anything interesting to say about what went wrong with DOE?

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  68. Re:What a ridiculous trend... CORBA to WebServices by CastrTroy · · Score: 1

    For encryption most web services use HTTPS to make sure everything is encrypted. It's already built, and we know it works well, why try to build something new. On the other hand, web serviecs took over because of the web. It's much easier to just send an HTTP request in XML, and parse the XML you get back. I did some CORBA work in university, and just doing something simple like getting the server to send back Hello World required a more work than it should. Everytime you changed the server side code, you had to copy files to the client box so they could run the code. This wasn't too much of a problem for a university assignment, but imagine doing this with 100,000 clients connecting to your server. Making sure everyone had the same interface files (on development and production boxes) would be a nightmare.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  69. Oh man this peeves me off ... by guysmilee · · Score: 2, Interesting

    I am sure the author of this article is a fine individual ... however I am serious forced to question is opinions. CORBA is far from dead ... CORBA is in fact mandidated for use in every radio used US miltary, coastgaurd etc by 2010 (I believe). One only has to google for JTRS and start searching the links for SCA (the standard being used). And this is just the icing on the cake. CORBA itslef is a enormous overhead saving tool ... I have worked with far to many engineers that want to design there own msg'ing system between processors and devices ... without CORBA you are simply re-inventing the wheel. The CORBA community has already made its mistakes and corrections. And as for his assesment of the individuals contributing to the standard ... well he could not be more wrong ... these people are highly qualified/knowledgeable individuals building real systems and using CORBA to build real systems ... nothing is added to the CORBA spec ad-hoc. The biggest problem CORBA has with its addoption is its foot print size in embedded systems ... however thanks to modern memory sizes this is no longer a problem ... so in my humble opinion the author needs to wake up and jump back on the CORBA bandwagon ... otherwise he can go sit on his own and re-invent CORBA's past while CORBA moves on with life. Rant over :-)

    1. Re:Oh man this peeves me off ... by duncanfoo · · Score: 1

      Do you know who Michi is? He wrote the definitive book on the CORBA C++ binding. http://www.amazon.com/gp/product/0201379279/002-53 62619-6165620?v=glance&n=283155 I'm sure as a respected author, acknowledged expert on CORBA, long time contributor to the various CORBA specifications and member of the architecture board and co-author of a CORBA ORB he is more qualified to speak on this subject than you are.

    2. Re:Oh man this peeves me off ... by ClosedSource · · Score: 1

      JTRS is rather an interesting mandate. It seems to be an attempt to solve a social problem with technology. The social problem: Every branch of the military wants to do things their own way. Rather than mandate one or a limited number of military radios that all the branches must use, JTRS attempts to make it possible for them to pretty much do what they want but requires that they interoperate anyway.

      There is also the desire to save money but given the fact the program has already been going on for many years, it's doubtful that it's going to happen. The idea of using CORBA inside an embedded system is rather mind-boggling. Given the lofty goals of the project, it may end up being more complex than Windows Vista.

    3. Re:Oh man this peeves me off ... by guysmilee · · Score: 1

      I didn't realise he was the same guy ... however it still doesn't effect my opinion ... check the publishing date on the book.

    4. Re:Oh man this peeves me off ... by duncanfoo · · Score: 1

      I don't understand the connection. What does the date of the book have to do with anything? CORBA hasn't changed in any substantial way since then (another interesting sign).

    5. Re:Oh man this peeves me off ... by Anonymous Coward · · Score: 0

      His company is pushing a new standard.

  70. CCA Specification from DOE by Anonymous Coward · · Score: 0

    Others have recognized CORBA's shortcomings much earlier. The Common Component Architecture (CCA) specification http://www.cca-forum.org/ provides a slightly better blueprint for distributed coordination; now if we could just get a good implementation of the spec...

  71. Re:What a ridiculous trend... CORBA to WebServices by XMyth · · Score: 2, Insightful

    How about saying a paved road is better than a dirt bike? :)

  72. Re:COM is better by dnoyeb · · Score: 1

    COM is not related to CORBA. Perhaps you meant to say DCOM?

    Besides, CORBA is cross-language. Thats its unique feature.

    DCOM: Windows Windows
    RMI(Java): Windows Linux Macintosh
    CORBA: Java C C++ etc..

    Note: MS may have renamed 'DCOM' once again. I been off windows exclusive programming a while so I'm not sure. I think maybe its ActiveX now!?

  73. CORBA just thing of it as OSI for code by Anonymous Coward · · Score: 0

    CORBA has the approach that OSI had. Having little connection with grass-roots and being heavily driven by committees that are filled with academics and corporate suits wanting to make a name for themselves. If you want a good model for developing technology you can't look much past the IETF and a whole lot of successful open source projects. Oh and once you start charging an arm and a leg to see standards and the like it loses flavour real quick.

  74. Biased opinion from Henning by LizardKing · · Score: 1

    Hennings opinions should be taken with a pinch of salt. While he co-authored the bet known book on CORBA, he has since left the CORBA arena following the merger of his own company with IONA, and is now pushing an alternative technology called ICE.

    As for CORBA? The concepts like the POA are too over engineered, but the underlying ideas of language neutrality, a simple interface definition language and a common wire protocol have not been bettered. SOAP has an awful interface definition language based on XML, and is also dependent on XML in many other areas, despite the high overheads of parsing the format. SOAP also suffers from using HTTP as it's primary transport, as this is also highly inefficient. RMI is a great solution for end to end Java systems, but forces a reliance on a proprietary third party bridge if it needs to be intergrated into a non-Java environment.

    One area where CORBA is particularily useful, is in event or notification based systems. These standard services offer the same features as Java JMS, but also benefit from a standard wire protocol and standard mappings for languages other than Java.

    Overall, CORBA's demise seems to be greatly exagerated. It's not a fashionable technology, nor it is perfect. However, it provides the glue between many systems in organisations such as banks, warehouses and media organisations that no other technology could adequately fill. A number of companies are making a very tidy living from consulting both for their own CORBA implementations as well as open source ones such as MICO and omniORB.

    I can speak from personal experience as someone who has successfully used CORBA both as an RPC mechanism and an events system at my last two employers. Most recently, I used CORBA to replace a SOAP based system. Compared to SOAP, the CORBA based system was faster, easier to work with and far more reliable.

    1. Re:Biased opinion from Henning by Michi · · Score: 4, Informative

      > Hennings opinions should be taken with a pinch of salt. While he co-authored the bet known book on CORBA, he has since left the CORBA arena following the merger of his own company with IONA, and is now pushing an alternative technology called ICE.

      Correct--I decided to do something better than CORBA after slaving my guts out for seven years trying to make CORBA better, and largely getting nowhere. Eventually, I realized that there was only so much sh*t I could push uphill and decided to focus my efforts on something more productive.

      > The concepts like the POA are too over engineered, but the underlying ideas of language neutrality, a simple interface definition language and a common wire protocol have not been bettered.

      I beg to differ. The CORBA POA interface requires over 200 lines of IDL definitions when, in fact, I can provide all of the functionality of the POA, plus some extra, in just over 30 lines.

      Yes, language neutrality is a good idea. No, CORBA IDL is *not* simple, not by a long shot. (Look at the last section of the Slice chapter in the Ice manual for some of the reasons.)

      IIOP is a very poorly designed protocol that has more flaws than a dog has fleas. Among them a quite major one that prevents efficient implementation of notification services. (See the Ice manual for details.)

      > One area where CORBA is particularily useful, is in event or notification based systems.

      The CORBA event and notification service are interface nightmares, and cannot be efficiently implemented due to design flaws in IIOP. (See http://groups.google.com.au/group/comp.object.corb a/browse_frm/thread/6f47a3d21cd0d9dc/f597718937b8a 3f3?lnk=st&q=3eXDf.916%24k6.18007%40nasal.pacific. net.au&rnum=1&hl=en#f597718937b8a3f3).

      > Most recently, I used CORBA to replace a SOAP based system. Compared to SOAP, the CORBA based system was faster, easier to work with and far more reliable.

      I don't doubt that. It's very hard to beat the ineptitude of SOAP and WS. Now, if you had used Ice to do the same thing, you would probably have done it in half the time, with half the pain, and twice the performance :-)

      Cheers,

      Michi.

    2. Re:Biased opinion from Henning by LizardKing · · Score: 1

      Hi Michi, I'm pleasantly surprised to see your responses on Slashdot!

      Perhaps it's the C programmer in me, but I find IDL very easy to understand and writing a parser for it looks straightfoward (I once poked around the internals of libIDL and ORBit to see how much work it would be to revive its Name Service). As for CORBA's POA, I still don't really see the need for a hierarchical structure, but perhaps I'm missing something. I'm not qualified to comment on the actual implementation of IIOP as I've never needed to look at it, but the concept of a single wire format must be better than the total omission of one in the JMS spec. Finally, the Event and Notification services may not be perfect, but they certainly scale well both for me and others that I know use them.

      I'm still playing with ICE as time permits, and I'm impressed that it is available as open source. If a future project requires the kind of functionality where I've currently CORBA, then I will definitely consider it. However, the general tone of your article seems to be contrary to my experience. CORBA is one of those technologies that lacks hype or glamour, but crops up in a suprising number of places.

  75. Mozilla's XP/COM instead of CORBA by SimHacker · · Score: 1

    If CORBA is any better than COM, then instead of using CORBA, why does Mozilla develop and use XP/COM, which is an open source cross platform clone of COM?

    COM and XP/COM have their limitations, but COM is actually very nice for what it's designed to do (which is much less than CORBA is designed to do). But DCOM (Distributed COM) is a lot more than basic COM. The more appropriate comparison is between CORBA and DCOM. And also there's IBM's SOM (not distributed, like COM), DSOM (distributed, like DCOM), and OpenDoc (a component system, like OLE). But Microsoft has moved on from DCOM to web services and SOAP. Which is the point of the article. And that doesn't suck. I'd call it progress.

    I wouldn't give up on COM (and its derivitives like XP/COM) -- they're still great for non-networked integration. But I gave up on CORBA and its ilk, a long time ago.

    I'm disappointed that Apple has reverted to the circa-1986 NeXTSTEP window system (Cocoa), instead of continuing their pioneering efforts with HyperCard, OpenDoc, CyberDog, Smalltalk, etc. Why can't you flip any Cocoa application into edit mode, then modify, remix and script its user interface, just like good old HyperCard?

    Cocoa's tired old NeXT interface builder seems like such a huge step backwards from the wonderful world of dynamic end-user-editability and plug-together components that users could build and customize at run-time, which Apple delivered with HyperCard, and promised with OpenDoc and CyberDog, before canceling those projects (and others, like Dylan, Sk8, ScriptX, etc).

    Apple (and IBM) developed all this great component software stuff, then abandoned it for a rehash of something that seemed great in 1986, but is seriously behind products Apple already shipped. A lot of wonderful stuff has happened since NeXTStep was designed, but Apple's still stuck with the same old obsolete 1986 architecture, just appealingly renamed Cocoa and polished up with shiny graphics.

    At least IBM kept their eye on the ball, developed Eclipse, and made it open source. IBM's stroke of genius was to name it something that pissed off Sun, so Sun wouldn't participate in the project even though they were invited. Sun missed out on all the good karma and fun and credibility and happy developers, because the name "Eclipse" got between Sun and their customers.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  76. Re:COM is better by ClosedSource · · Score: 1

    A few corrections:

    Both COM+ and CORBA support multiple languages.
    RMI isn't Java's answer to CORBA, EJB is.

  77. Its still there if you know where to look by Anonymous Coward · · Score: 0

    As far as I can see all that happened to CORBA is that people built abstractions on top of it so, if you need it, you don't have to learn the CORBA stack yourself. In the Java world, for instance, EJBs use the RMI/IDL CORBA subset for their distributed object model, and use the Java Transaction Service (JTS) which is based on the CORBA Object Transaction Service (OTS). Java IDL includes a CORBA Object Request Broker (ORB) that is available in every deployment of the Java Platform. GNOME uses CORBA internally. Quite a lot of shrink-wrapped web software uses CORBA internally (BusinessObjects WebIntelligence for instance).

  78. Re:What a ridiculous trend... CORBA to WebServices by Profane+MuthaFucka · · Score: 1

    Marshall this, marshall that. IDL IDL IDL. ORB. WTF. It really was a huge pain in the ass.

    --
    Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
  79. Re:What a ridiculous trend... CORBA to WebServices by grimarr · · Score: 2, Interesting

    I really like that word you coined: zealout. Sounds like a cross between zealot and sellout, which may be part of the reason for some of the problems with CORBA.

  80. Re:What a ridiculous trend... CORBA to WebServices by Skjellifetti · · Score: 1

    One of the problems with SOAP and WSDL is that the standard is incompletely specified. Try connecting .NET with, say, BEA's autogenerated WSDL. An element such as:

    <xsd:element type="xsd:int" name="myInt" minOccurs="0" maxOccurs="1"></xsd:element>

    is perfectly legal WSDL. But BEA sends this as an empty element if there is no data which will generate a null exception on the .NET side since MS insists on trying to instantiate a primative but has no data to use.

    CORBA seems complex in many ways because the OMG went to great lengths to make their specifications complete enough to avoid this type of problem.

    On another note, much as I respect Michi Henning, there are definitely well designed and very solid CORBA ORB and service implementations that have made it fairly easy to build C++ CORBA objects. And they are open source, to boot. Just because IONA failed so miserably (their marketing folks were real dicks), does not mean that others didn't do it correctly.

  81. Re:COM is better by dnoyeb · · Score: 1

    RMI was out years ago when CORBA was first out. EJB is more recent by comparison.

    Note in my post that RMI is platform to platform (through Java) whereas CORBA is language to language. These are different objectives. Thus, they are not 'direct' competitors with each other.

    If you don't need language to language object exchange, why would you use CORBA? You'd be putting in a lot of work to get a primary feature that you had no intention of using.

    EJB does not compete directly with CORBA. Its a more MS style approach. J2EE tries to offer a complete system such that you dont need to use any other technologies/languages and thus there is no need for interoperability and no need for CORBA. It does not replace CORBA, it replaces your whole system.

    This is a shift in Sun's approach from years ago when CORBA was first here. Then Sun wanted Java interoperability, today I'm not sure they care.

  82. Re:What a ridiculous trend... CORBA to WebServices by artgeeq · · Score: 1

    I wonder if there is a virtual graveyeard out there of standards that never really took off or that died. Token Ring? X.400?

    Can a standard that has only poor tools or kludgey tools every really become popular? Most of us are mere mortals, not so well adapted to strange code formats that belong to a single standard. No, this is not just hypothetical. Years ago, I did a bit of programming using IBM's System Object Model (SOM) under OS/2, using IBM's programming tools. What a mess!! Software development is expensive enough already without having to delve into arcane programming paradigms.

  83. Engineering The Software by ChronoFish · · Score: 1

    My observation on the software industry is that when an idea is floated around enough (distributed programming) a software engineer will develop a protocol and then programmers will start to use it and then designers start to incorporate it. Then the designers will start to demand the functionality plus some enhancements and then the programmers will change/re-create/enhance/copy/simplify the protocol.

    That's how we go from CORBA to SOAP to REST and back to "SOAP-like". The original protocols are created in a time when it takes a lot of for-sight to guess what will be needed because there are so few apps that demand it. As programmers start to identify what can be done with the protocol, designers start to require enhancements that the original protocol was never designed to handle and ignore a great deal of what it was meant to handle. The programmers start to hack the protocol, maybe creating a new one in the process.

    When designers can grasp the functionality, or better yet, demand new features, the protocol becomes App-driven rather than engineer-driven. This tends to limit the extensibility, but greatly simplifies the protocol which leads to further adoption.

    The reason why CORBA is "dead" (with the exception of legacy code and legacy programmers) is that it was an early protocol that was engineer driven and relatively complex. Contrast that with REST (which gets a lot of play as a web service thanks designer driven protocols like AJAX) which is such a basic inherent part of web application development that it barely deserves a name of its own.

    -CF

  84. Phase Relationships in the Standardization Process by SimHacker · · Score: 3, Interesting

    Phase Relationships in the Standardization Process, James Gosling, August, 1990. [see link for illustrations]

    This is a moderately sarcastic note on the phases that the standardization process goes through, and the relationship between the level of technical and political interest in a topic. It is purely a personal view.

    Toshi Doi of Sony describes the standardization process in terms of the diagram at left. The i axis describes level of interest and the t axis describes time. Ti describes technical interest, and Pi describes political interest. As time passes, technical activity declines as the technology becomes understood. Similarly, generally fueled by economic pressures, the political interest in a technology increases in some period.

    For a standard to be usefully formed, the technology needs to be understood: technological interest needs to be waning. But if political interest in a standard becomes too large, the various parties have too much at stake in their own vested interest to be flexible enough to accommodate the unified view that a standard requires.

    In this model, Ws is the `window of standardization' where technical interest is waning (i.e. the technology has become understood), but the political situation hasn't become too hotly contested for constructive negotiating.

    This model has many interesting insights, but there is more complexity in the situation that can be explored. In the original model, the T and P curves are open ended. The situation is more like the diagram at left. These curves, Ta and Pa, represent technical activity and political activity. In general, technical activity precedes political activity. Both types of activity go through phases of different intensity. As these activities proceed, they produce results. The result curves are the integrals of the activity curves.

    The integrals of these two curves are drawn at left. The integral of Ta is K (knowledge) and the integral of Pa is C (calcification - revealing a strong personal cynicism). Ss, the sensibility of standardization, is just K-C. The optimum time for standardizing a technology is when Ss is at a maximum, which will be in a region where knowledge is high, but calcification has not yet set in.

    A very interesting quantity to observe is the phase relationship between Ta and Pa. When the maximum point on Pa follows the maximum point on Ta by a sufficient distance, there is a wide Ss window. A sensible standard can be fairly easily set since the political activity which leads to the standard has the necessary technical knowledge in hand when needed. If Pa lags Ta sufficiently, Ss will have a long high flat top, which forms a convenient table on which to work.

    Consider moving Pa left, closer to Ta. When it is close to Ta, Ss will have a shallow and flat region where the upward slope of Ta matches Pa approximately. This region is the time of chaos. Before calcification builds up, there isn't enough knowledge to do anything sensible, by the time that there is enough knowledge, there's too much calcification to allow a sensible compromise to be reached. In between, the region is flat enough that there isn't a clearly defined optimum moment for developing a standard, so there is instead a drawn out period of chaotic bargaining and soul searching.

    Consider moving Pa even farther left, until it is to the right of Ta. This is the worst case: Ss is always negative. The long flat minimum region is the time of panic where the political/economic process has decided that a technology needs to be standardized, but no one understands it. Standards get set by making random guesses that are not grounded in any technical reality, but are instead grounded totally on political expedience.

    The case described in the previous diagram is impossible in practice. The very act of setting a standard inhibits technical activity

    --
    Take a look and feel free: http://www.PieMenu.com
  85. Re:What a ridiculous trend... CORBA to WebServices by LizardKing · · Score: 1

    No: it's all about the APIs and who's making them available. Got CORBA bindings for Google? How 'bout the National Weather Service?

    Slightly tangential to your comment, but the weather channel (http://www.weather.com/), use the CORBA Event Service as the heart of their system. According to a posting on the MICO mailing list by one of their developers, the system scales to millions of events an hour.

  86. Ice by dwk123 · · Score: 1

    I'll second the thrust of the parent - I've used Ice, and find it 'easy' (as these things go), reliable, and fast (even the Java version). It takes the simple idea underlying CORBA (ie IDL describing remote interfaces in an implementation-language-neutral fashion), and implements it well with an adequate but minimal-ish amount of supporting services.
      Very highly recommended for folks looking for a multi-language distributed object framework.

  87. Re:COM is better by ClosedSource · · Score: 1

    "Note in my post that RMI is platform to platform (through Java) whereas CORBA is language to language"

    Actually CORBA is both language to language and platform to platform. As long as you can invoke methods on components remotely, it's really irrelevent whether the client and the component are written in the same language.

  88. Re:COM is better by Spinlock_1977 · · Score: 1

    Correction: DCOM runs on both Windows and OpenVMS. You can write code in any supported language on OpenVMS to chat DCOM to Windoze clients.

    --
    - The Kessel run is for nerf herders. I can circumnavigate the entire Central Finite Curve in a lot less than 12 parse
  89. CORBA (vendors) promised a lot, delivered little by Anonymous Coward · · Score: 0

    The article indeed provides a good overview about what is wrong with CORBA. It left out a few additional aspects. For example, that CORBA never delivered the magic that was promised.

    One such magic was that legacy-systems never intended to work together could suddenly work together. "All" one was supposed to do was to add CORBA interfaces to each such legacy application - turning their services into distributed objects.

    Then they should to work together!

    How was that supposed to work? By using (magic) meta-data. Enough meta-data and services everywhere, so one application could discover another, automatically guessing what that other application's distributed objects were good for, and start to use them for whatever purpose. Oh, and not just any kind of meta-data would do, no, it had to be "horizontal-vertical-metadata" (today"s wisks would call it something like "360 metadata". The blurbs change, then words remain meaningless ...).

    But CORBA promised more. It promised nothing less than fixing the software crisis once and for all. Nothing less than that. Fixing the software crisis. On all levels. CORBA was not only targeting anything up and including to the Enterprise level. No, it was reaching out for the Global/Industry level on which it promised to fix things. How? Well, by enforcing architectural integrity on Global/Industry level. Which was another great joke. A technology with an own architectural integrity similar to that of jelly-o claims to be the right technology to to enforce architectural integrity.

    More jokes? Sure. CORBA promised to be infinitely and infinitesimaly scalable. It promised to be great for even the smalles non-distributed object and class up to the big global distributed application. Of course it didn't deliver. It had and has too much overhead for non-distributed objects, it had and has too much overhead for distributed, fine-grained objects, and it had and has not the means to represent a huge application in a reasonable way.

    CORBA barely works and doesn't deliver. It's that simple.

  90. Re:What a ridiculous trend... CORBA to WebServices by Urusai · · Score: 2, Interesting

    A standard that is too broad is no standard at all. For instance, I could define a "universal language standard" that encompasses C++, C, Java, C#, D, Smalltalk, Lisp, Algol, Fortran, and S/360 assembler code. Now how dumb would that be? CORBA dumb, it seems.

  91. IDL by kabdib · · Score: 1

    The big problem with IDL-based RPC is that it becomes essentially impossible to version your APIs. Want to add a parameter? You break a bunch of existing clients. These problems dog you everywhere you turn: In development (changing the IDL usually means a complete rebuild), in testing (got all your client versions lined up?) and especially deployment to outside customers. IDL based technology just sucks rocks when you're shipping real applications.


    SOAP is a step in the right direction, but its overblown, bloated syntax and lack of a concise binary representation makes it look more like a practical joke gone out of control. ("Oops, they believed it!"). COM got around this by making it easy to version interfaces (but you still have to decide when to assassinate the old versions).


    I was part of a start-up in the mid 90s that had most of these things solved. A 166Mhz server could easily keep up with several thousand clients (we were limited by the efficiency of the host's TCP stack). These days, the thought of having to parse XML in order to forward a message is only a little less horrifying than the tower of OMG-how-much-more-complex-can-this-possibly-get that CORBA was . . . shudder.


    People hate APIs. Complex syntax or calls that you have to totally understand in order to get your job done will mean that the software in question will sit on the shelf. Simplicity is where it's at. This is CORBA's fundamental reason for failure.


    --
    Any sufficiently advanced technology is insufficiently documented.
    1. Re:IDL by Michi · · Score: 2, Informative

      > The big problem with IDL-based RPC is that it becomes essentially impossible to version your APIs.

      That is true for CORBA, but it is not true for Ice. Have a look at http://www.triodia.com/staff/michi/connections/iss ue8.pdf "Can a Leopard Change its Spots?" for a versioning mechanism that allows you to seamlessly version an application without breaking backward compatibility.

      Cheers,

      Michi.

    2. Re:IDL by BattleTroll · · Score: 1

      "The big problem with IDL-based RPC is that it becomes essentially impossible to version your APIs. Want to add a parameter? You break a bunch of existing clients. These problems dog you everywhere you turn: In development (changing the IDL usually means a complete rebuild), in testing (got all your client versions lined up?) and especially deployment to outside customers. IDL based technology just sucks rocks when you're shipping real applications."

      Adding a parameter is changing the interface - which is changing the contract your server has with all your clients. Changing the IDL requires a complete rebuild only if you have tightly coupled interfaces. When I make interface changes, I might have to rebuild 10% of my app - not even close to a complete rebuild.

      There's nothing in CORBA that provents you from implementing your own versioning system. A basic "getSupportedVersion" call that returns your version identifier is all you really need to determine if you're talking to an 'old' client that doesn't support your new fancy interface, or a 'new' client that does. Maintaining backward compatibility becomes a requirement of your server application; which is where it belongs.

      We do this all the time in our application. There may be thousands of clients with different interface versions scattered across an enterprise. Our single server can communicate with all of them - those clients built 5 years, up to our latest development builds.

      Don't fault the infrastructure for your bad design.

  92. The CORBA Niche by JoeRandomHacker · · Score: 2, Interesting

    For all its faults, CORBA does fill an important niche. As far as I know it is the only communication technology that features:

            High Performance (implementation dependent, of course)
            Language Interoperability (standard language bindings)
            OS Interoperability
            CPU Interoperability
            Vendor Independence
            Object Orientation
            Healthy Open Source Community

    I think we can agree that these are good things to have.

    There are a number of caveats, though:

          CORBA works best when you have tight integration between the client and the server. The more you try to put between the two (e.g. the public Internet) the more problems you will have.

          There is a good bit to learn to be able to design and build a CORBA-based system, from basic concepts to language bindings. Once you have it down most of it makes sense, and developing new applications can go fairly quickly, but it does take a while to get there. You might want to try starting with a Python ORB, since it is a lot easier to use than C++ or Java ORBs, and you can use Python later to build tests for your C++ or Java code.

          You have to ignore a lot of stuff. The bulk of the CORBA services out there aren't really useful; stick to things line Naming, Notification, and Trading. Some features like valuetypes are a pain to support, so are better ignored. CCM might be worth something eventually, but it would require really good vendor tools support, and it is better avoided for now. You can get by pretty well with the concepts in Henning and Vinoski's book, "Advanced CORBA Programming with C++".

          Interface evolution needs to managed carefully, since IDL is generally more rigid than XML.

    These caveats make CORBA inappropriate for a lot of projects, no question, but for those projects which have performance and interoperability requirements which match with CORBA's feature set, it is worthy of consideration.

  93. Dumbing down technology to gain acceptance by Sinister+Stairs · · Score: 1

    CORBA was a great idea implemented complexly. People don't like complex.

    Interesting point because it reminds me that even geeks, not just Joe Sixpack, reject complexity. Cases in point:

    Remember SGML and X.500? Complex standards that have been completely upstaged by their darling, "dumbed down" children, XML and LDAP; to the point that the ancestors are all but forgotten.

  94. DLL Hell - Here we come... by Tungbo · · Score: 1


    Hey! we'll always have sockets ....

  95. RMI is better, in a Java-only world by jonabbey · · Score: 2, Informative

    Actually, the ability of RMI to depend on a common code execution on either side of an RMI link (at least when using JRMP, the original wire-level protocol for Java-to-Java RMI) means you can do a good number of tricks that you can't easily do with CORBA. You can pass classes (not just objects) from JVM to JVM. You can operate with distributed garbage collection and multithreading out of the box. You never have to worry about whether your native Double class has the same representation and semantics as the equivalent class on the far side of the RMI link. You can pass any arbitrary object to the other side of the link and know that it will be reconstituted properly, without having to re-do parts of your design in IDL.

    RMI is tragically flawed by its limitation to the Java environment, but within that environment, it is a superb solution, providing simple and flexible support for distributed object systems. Want security? Wrap your RMI communications in SSL and turn on cryptographically random ID codes for your distributed objects. Want the ability to penetrate firewalls? Encapsulate your RMI calls in HTTP. Want to have your software automatically bounce from system to system? Java's ability to transparently pass serialized remote object references makes it a snap.

    As the article says, CORBA was crippled from birth by its creators' insane idea to deliver a set of castle-in-the-sky specs without testing them out with actual implementations. CORBA 1.0 couldn't even speak from ORB to ORB over the Internet, for pete's sake.

  96. GNOME by metamatic · · Score: 1
    Currently the only widespread use of CORBA is as the transport for J2EE

    And as part of the infrastructure for the bloated and slow GNOME desktop environment.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:GNOME by Svartalf · · Score: 1

      I'd be careful slinging that sort of comment about.

      GNOME's no more bloated or slow than KDE and I've observed conditions where GNOME was more responsive than KDE on the low end.

      GNOME uses CORBA. KDE uses DCOP. Both inject quite a bit of size and overhead and doing fanboy stuff doesn't make you look good.

      Oh, I forgot... This is Slashdot... Forgive me, I'll move on- it's all about opinions here, not facts.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    2. Re:GNOME by metamatic · · Score: 1

      Actually, I just compared GNOME, KDE and XFce on the latest Ubuntu. GNOME is more bloated and slow than KDE. Download Kubuntu and Ubuntu and compare 'em yourself.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    3. Re:GNOME by jc42 · · Score: 1

      Download Kubuntu and Ubuntu and compare 'em yourself.

      I finally decided to check Ubuntu out, downloaded the lastest ISO for the live CD, and tried it on a few Windows boxes that are sitting around unused. It failed in similar ways on all of them. It would go through a lot of familiar-looking startup stuff, and finally get to the pretty brown rectangle with the logo in the upper right. At that point, I could verify that moving the mouse around caused the pointer to make similar motions on the screen (thus showing that both the mouse and X windows are basically sane). I could also do the CTL-Fn to switch to a dumb-terminal screen, one of which showed the usual boot log. Frobbing the keyboard got echoes of what I types, but no responses otherwise.

      But I never got past that on any of them. I never saw any login prompt, or any GUI thingy that responded to keyboard or mouse events. I'd sit there poking at things, wondering "OK; what do you want me to do now?" Eventualy the screen would go black, and that was it.

      Is there somewhere documentation that will get a newbie (who's used unix and linux for 25 years or so ;-) past this point to something useful?

      The PCs in question were of different ages, from different sources, so it doesn't seem like they'd all have the same problem. Or maybe they do; I don't see any way to even start diagnosing the actual problem (since the only keyboard/mouse stuff that works is moving the pointer around).

      Maybe Kubuntu would work better? I am generally more of a KDE partisan; maybe Ubuntu somehow detected that and decided not to cooperate ...

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    4. Re:GNOME by metamatic · · Score: 1

      Odd that you'd see the same failure mode on so many machines. Makes me wonder if your download was corrupted.

      Did you use IE for the download? IE will truncate file downloads and not warn you of the error.

      Check the MD5 checksums of the ISO images. Also, check the MD5 checksum of the burnt CD, in case it's a problem with your CD burning software.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  97. This wasn't my impression of things... by Svartalf · · Score: 2, Informative

    When I used TAO, it just all snapped together. Minimal noise. No goofy setup, etc.
    If it's on the same network segment, it just finds the NamingService object on the
    segment (If you've properly started it...) and just works. I know, I've designed
    massively distributed trasaction processing systems with it that had to handle situations
    like vending a toll gate with a vehicle going through it to speeds up to 55 mph.

    Now, to be sure, this is more the ACE/TAO people's doing, but there's NOTHING in CORBA
    that requires all the noise that you typically see with other ORB implementations. And
    CORBA's neither slow nor cumbersome- it's all in the ORB implementations. Of which, many
    just plain flat suck.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  98. interop killed CORBA by plurgid · · Score: 1

    Anyone here ever REALLY try to use CORBA across languages and platforms?
    No ... seriously, using something besides Java on both ends.

    C? sorta okay, as long as you use C on both ends as well as the same ORB package.
    PHP? you're boned.
    Python? you're boned.
    Perl? there were some early weak attempts but pretty much, you're boned.
    Javascript? uhm ... yeah, BONED.

    So, wonder of wonders, an architecture for WEB SERVICES failed when it turned out that it was basically impossible to use with the most commonly used TOOLS FOR BUILDING WEB SERVICES.

    CORBA was a really, really brilliant idea, but it's major failing was that it's core promise of interoperability across languages just never really paned out. Sure there were language mappings for a half dosen languages or so, but they never EVER worked together the way they were supposed to.

    SOAP is to CORBA what LINUX is to SOLARIS. It's open, it's fairly easy to understand compared to it's counterpart, and while you can buy SOAP libraries, it's all there in the XML ... if you want to build your own, it's completely within the realm of possibility.

    More than anything, I think the fact that when things get really broken, you can always dump the raw XML to have a peek at whats going on is why SOAP has been more widely adopted.

    1. Re:interop killed CORBA by BattleTroll · · Score: 2, Informative

      "Anyone here ever REALLY try to use CORBA across languages and platforms?
      No ... seriously, using something besides Java on both ends."

      Yes. We use Java for our clients, and C++ for our servers. Works great on Linux, HP, AIX, Windows, and Solaris with very little cross-platform issues. Your assertion that language interpoerability failed is incorrect - it works as designed and works well.

    2. Re:interop killed CORBA by Anonymous Coward · · Score: 0

      I could not agree more with the previous poster. Stop gloating about CORBA interoperability,
      it just is not true! Have you tried to interface some different languages running on different
      platforms? I do not know of two different CORBA implementations (even coming from the same
      vendor) that can go along well, you always run into trouble at some point and decide to run
      the same ORB on all platforms. Then you get the dependency nightmares, trying to run the same
      CORBA code-base everywhere just does not work.

      I have been consulting on several CORBA-based projects. Sad to say: none of them has seen
      daylight. Just before they were declared dead, post-mortem analyses have shown that developpers
      had spent more time fighting CORBA than doing actual work. Combine that with heavy C++
      templating, memory leaks and obsolete third-party and you get a perfect recipe for a software
      disaster.

    3. Re:interop killed CORBA by unclepoole · · Score: 1

      You might be surprised about interoperability. I work for a government contractor and we have a geographic information system that communicates geospatial data over CORBA between Java / JacORB, Java / Sun ORB, and C++ / TAO - mix and match Linux and Windows however you like. Say what you want about it, it does in fact work correctly.

      Of course, there's a lot of other problems with CORBA. Tossing raw data across the sockets or using and extending some existing geospatial protocol would have saved us all the time that the CORBA learning curve cost us. Developing against CORBA was a nightmare, and only two members of our team even understand what we implemented. We STILL don't have an idea of the most efficient ways to cache and represent the data from our CORBA objects, and our software's memory footprint on both the Java and C++ side suffers from it. Yes, I know the network is supposed to be transparent in CORBA, but when you're working with millions of points, lines, and polygons with full data model attribution, along with high-resolution elevation maps and visual satellite imagery, you actually DO care where the data is. And that's probably the biggest problem with things like CORBA in our line of work. It's impossible to ignore the network: the physical location of the object is important.

      Beyond that, there are also a host of smaller annoyances - for example, as much as I hate the STL (another lovely example of a design-by-committee standard, sigh), the CORBA C++ binding's lack of STL integration for its sequences and strings is extremely frustrating for interoperability with existing C++ code.

      The implementations are also not that great. In fact, Sun's implementation is downright terrible. JacORB isn't quite so bad, but is ridiculously annoying to install and configure. When TAO works, it's great. But good luck even compiling the latest TAO on multiple platforms - that took me over two days to get right. It also issues about 50 bajillion compiler warnings when compiling IDL-generated C++ files and confuses the hell out of our memory leak checker. And at one point, the version we used had known memory leaks involving sequences and strings - not sure if that's been fixed since then.

      I keep on hoping we can abstract out the CORBA layer so that someday I can justify replacing it with something easier to understand, maintain, and cache. We actually tried SOAP before CORBA, but if you've used SOAP before, you can imagine how quickly it fell apart under our data loads. Extremely large volumes of floating-point data is not your friend in XML. :-)

    4. Re:interop killed CORBA by plurgid · · Score: 1

      I think the main point of my post is being missed. What I'm saying is that (at least in my experience) CORBA interoperability works only under the following scenarios:

              A) All you're using is Java
              B) All you're using is C/C++
              C) Sometimes you can make C/C++ and Java work together (with a great deal of effort)

      The main thrust of my original comment was that these scenarios by and large to not reflect what people are using to serve and consume webservices. Again, this is based on my own experience, but the LAMP architecture is completely out in the cold, and that's where I'm seeing the real proliferation of webservice type stuff. Maybe I just hang out in that scene to much and the rest of the world has moved on without us.

  99. Re:What a ridiculous trend... CORBA to WebServices by Svartalf · · Score: 1

    You didn't NEED to get the IDL on all the platforms.

    1) The IDL's only useful for making the interface skeletons. If you needed that, you had a pretty twisted ORB.
    2) I think you're referring to the IOR which is a reference to the remote object so the ORB can find it.
    3) I will believe the IOR "problem" being obnoxious- it was evil in CORBA v.2 and prior implementations, for version 3, however, you could use iioploc:// type URI's for the same thing, and if your ORB properly implemented things, if you are on the same network subnet you didn't even need that as there's a magic IOR to feed into the load up to bring in the local NamingService which simply makes everything totally plug and play. TAO offers BOTH.

    In my case, I've experienced the opposite thing. No IDL issues. No need to plug in IOR hex number sets. Only the rare, occasional iioploc:// invocation to the NamingService because we weren't on the same subnet and had to go through a port-forward on a firewall. It's all in the ORB implementation- and most of the ORBs just stink on ice.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  100. Re:What a ridiculous trend... CORBA to WebServices by I+Like+Pudding · · Score: 1

    The killer for CORBA in the real world was how the f*** do you get 5000 copies of the IDL to 10 platforms at the same time?

    Use an interface repository

  101. Re:What a ridiculous trend... CORBA to WebServices by joto · · Score: 2, Informative
    Seriously, you just don't look at CORBA bindings (for Java at least) and want to have anything to do with it. It's probably not so bad for C++ developers because they are used to a lot of noise and complexity, and they have templates and stuff to 'spray perfume' on CORBA and make it smell... better.

    Trust me when I say this: CORBA for C++ is much worse!

    I've tried both, and CORBA in java was such a relief from doing it in C++, I almost started thinking CORBA was sane, and only the C++ bindings sucked. Therefore I'm very happy for your perspective and insight.

  102. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 0

    I mostly agree with you that CORBA would have been way better than Web services, if only Microsoft had come on board.

    But the Web services standards, while absolutely sucky -- and I hate them passionately, as only someone who has to implement them for a living can -- are (slightly) further along than you think.

    For authentication there are WS-Security profiles for UsernameToke, X.509, SAML, and Kerberos. The product I work on supports the first three, and at least the first two have passed interops with other vendors. (The SAML stuff has interopped with other people's code at a client site, but we weren't there to see it so it doesn't count.)

    You have a point about transactions, although I'm not sure the CORBA stuff was in any better shape at this stage. The WS-TX stuff is still in committee draft, but it's based on WS-Transaction which is apparently fairly mature and widely used, but as I've never used it myself I won't comment further.

    You're just plain wrong about encryption -- WS-Security 1.0 (with Basic Security Profile) supports encryption (and signing) of arbitrary elements in a SOAP message using X.509 and interops basically everywhere, today (including open source implementations such as Apache). (With WS-Security 1.1 the client doesn't need a certificate, but only a couple of vendors have implementations.)

    Public UDDI is dead (stillborn, actually) but within organizations it looks like it's going to end up being the de facto directory service for Web services (which sucks, because I hate it, but no I don't have any other ideas either).

  103. Re:What a ridiculous trend... CORBA to WebServices by dubl-u · · Score: 1

    The OMG people are clever bunch, but why do they insist on making these superheavy monolithical monsters? Why not build interoperable but smaller things which you can grok immediately, almost via intuition?

    It's a BDUF thing. Good design is always an artful compromise between desire and possibility, between imagination and reality. When you leave a bunch of software "architects" alone in a room for too long they will often over-complicated and over-embroider their designs so that every imaginiable issue has a solution. But because they've spent months thinking about the topic, they can no longer imagine how it looks to a newbie. Often, they don't care, forgetting that somebody will need to use this. They focus entirely on desire, ignoring possibility. I have made this mistake myself, and it is very fun and inevitably disasterous.

    The solution is to put your designs to the test, both by writing actual useful apps with them and by releasing early and often. Take a look at successful protocols like SMTP and HTTP. They started simple and solved real-world problems. If you know sockets, you can write a server or client that handles the happy path for the basic interaction in under an hour. But both protocols have grown up over time, handling volumes and situations that their creators never imagined.

  104. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 0

    Totally. I took a week-long course in CORBA programming back in 1996, since my manager was excited about CORBA. Ultimately, I was so weirded out by the oddities and requirements (and vendor implementation bugs) that I wound up writing my own, special-purpose ORB for the specific distributed computing problem that we had to solve. It had a tight focus, and it worked great for the task at hand.

    It's too bad CORBA didn't go anywhere, but it was complex and weird. This is one case where being a public standard didn't do much for anyone.

  105. Re:What a ridiculous trend... CORBA to WebServices by cow-orker · · Score: 3, Interesting

    Butbutbut... CORBA is simple! WTF are you doing?

    More specifically, CORBA does what needs to be done. You want location transparency, so you need a wire protocol and object references that include endpoint adresses. You want language neutrality, so you need the IDL. These parts are necessary and not overly complicated. A Naming Service is probably a good idea, and it is still simple.

    What are you doing that's complicated? Trading Service or stuff layered even on that? Useless junk. Programming in C++? Okay, that mapping is crap. But why? People are constantly grappling with stuff they neither want nor need. Just don't use it, and optionally fix the faults in the things that are needed. (My wishlist: gimme a better C++ mapping that knows about STL, gimme me an ORB for Haskell, allow parametric polymorphism.)

  106. CORBA v ICE by hachete · · Score: 2, Interesting

    Michi Henning owns a company which develops ICE...which is a competing product to CORBA. Nothing to see here, move along please.

    As for complexity, SOAP is heading the CORBA way, thanks to Microsoft, IBM et al. SOAP has lots of interoperability problems btn languages, Java and Perl for example.

    You could use xml-rpc but most of the implementations are brain-dead, and unusable for complex apps.

    If you have to go btn two languages, just use sockets.

    --
    Patriotism is a virtue of the vicious
    1. Re:CORBA v ICE by dukerobillard · · Score: 1
      Michi Henning owns a company which develops ICE...which is a competing product to CORBA. Nothing to see here, move along please.

      He also co-authored the best CORBA book I ever used.

    2. Re:CORBA v ICE by hachete · · Score: 1

      That's because he started out in CORBBA, found it not to his liking, then moved on to building ICE...He's an apostate. Like I said, nothing to see here, move along please.

      --
      Patriotism is a virtue of the vicious
  107. Article has serious accuracy flaws!!!! by Anonymous Coward · · Score: 0

    I'm seriously disapponited in the accuracy of this article. The mistakes here are egregious to the point where malice can be attributed instead of plain laziness. For instance, let's start at the start of the article:

    >> After a false start with CORBA 1.0, which was not interoperable and provided only a C mapping, the OMG (Object Management Group) published CORBA 2.0 in 1997.

    First as this reference clearly shows [http://en.wikipedia.org/wiki/COBRA_Organization], CORBA had its roots since very early times and had its origins in Tibet. In fact, the article glosses over several structural revision in glibbly stating that 2.0 was published in 1997. (http://en.wikipedia.org/wiki/G.I._Joe)

    Later on, when in the article it states:

    >> Microsoft never embraced CORBA and instead chose to push its own DCOM (Distributed Component Object Model).

    It fails to mention the reason why... serious IP issues (prior art: see http://en.wikipedia.org/wiki/S.P.E.C.T.R.E.] and http://en.wikipedia.org/wiki/Legion_of_Doom).

    There were also serious leadership problems as well. Several power struggles within the group ensured a reputation of uncertainty (http://en.wikipedia.org/wiki/Serpentor).

    It also fails to make the connection to the real reason why its not so prominant today (See Red Shadows http://en.wikipedia.org/wiki/Cobra_Commander).
    That being said, at least in 2006, you still see some remnants (http://www.geocities.com/Area51/Station/6563/cobr a.html).

  108. Port 80 and frustration by Sloppy · · Score: 1

    I think it's totally disgusting how "it can work through port 80" has become such a huge influence on what lives and what dies.

    If people are able to send messages that interact with any services (not just web servers) of arbitrary complexity and function through that port, then the "correct" thing for a firewall to do, is block port 80. But of course, no one would do that. Yet if you're going to let 80 be open, then there shouldn't be any resistance to opening other ports too, if they're necessary for getting things done. Thinking as a network admin, I would rather see stuff happening on port n and understand what it means, rather than see more stuff happening on 80 and not have a clue what is going on.

    Why the hell do we even have firewalls anymore, if one of the main features that middleware needs to be popular, is that it defeats the firewall? The whole situation is just plain psycho.

    Yeah, I know the truth, so you don't need to tell me. The guy in charge of getting things to work, isn't the same guy who is in charge of the firewall. Left hand and right hand aren't working together. I guess what I really want to know is, why have such inefficient entities (i.e. large companies where engineers and PHBs are essentially enemies) had such an effect on technological evolution? They ought to be irrelevant. They ought to take what the truly productive entities give them. Maybe the real question is: why are inefficient and unproductive companies, paying higher wages than efficient and productive startups? The salary issue is why programmers are really silly things like SOAP.

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  109. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 0

    Check out Ice. The C++ mapping is very nice indeed!

  110. Re:DOPE: Distributed Objects Practically Everywher by arn@lesto · · Score: 1

    DOE/CORBA was one of the primary reasons I left Sun. I couldn't
    see any future in such a bloated, slow protocol.

    I often thought that M. Powel started DOE so that he could slide
    what was left of the Spring OS underneath. Never happened.

    --
    - AndrewN
  111. Re:What a ridiculous trend... CORBA to WebServices by cow-orker · · Score: 1

    No, I won't. To be honest, I have a bit of a problem with Mr. Henning. I'm pretty sure he misunderstood some parts of CORBA back in the day when he co-authored "Advanced CORBA Programming in C++", and his misconceptions only got worse in time (the tantrum he threw about the allegedly useless "oneway" directive particularly stuck). The he started working on Ice and since that day constantly derailed CORBA as bloated and fundamentally flawed. But it isn't. It is fixable, and it is an open standard, while Ice isn't. And I don't trust the guy not to make more fundamental mistakes; second-system-effect and all that.

    BTW, what bugs me about CORBA, is that the most interesting part are poorly documented: the Interface Repository and the wire protocol. Were they easier to grok, you could pull information about an interface from the IR (no need for an IDL compiler) and generate a very simple stub from scratch. Voila! A custom made stellite ORB, almost trivial to write in any programming language, and no heavyweight like that MICO abomination, either. Heck, this way both IDL and the ugly C++ mapping could long be a thing of the past, someone would already support something-sharp, and I would have written my 100% pure Haskell ORB. But no, that would destroy the market for commercial ORBs.

    Boy, I'm starting to positively hate this whole industry.

  112. CORBA, EJB's, Telecom, and Complexity by KevinGlenRoyGreer · · Score: 1

    CORBA is used extensively in telecom, and I don't see the situation changing anytime soon. The reason for this is that CORBA is the only (relatively) mainstream high-performance middleware to support heterogeneous environments. WebServices are (mostly) heterogeneous and RMI is high-performance, but if you want both, then CORBA is the only game in town. There is still no replacement for CORBA.

    Another thing that many don't realize is that EJB's use CORBA for remoting (but they can also use RMI).

    Ten years ago many developers found CORBA difficult to use but I think a lot of the problem was really that they found "distributed computing" difficult in general. I think that you'll find that if you do a side-by-side comparison of CORBA and a full WebServices stack, you'll probably conclude that CORBA is actually the much simpler of the two.

  113. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 0

    Its good to hear I'm not the only one who was thoroughly confused with it. I managed to become unconfused after a point, but at that point I just wondered "was that worth it?"

  114. What it all does, and why Linux/Unix lacks it by Animats · · Score: 2, Informative

    What all these systems do is quite similar. The basic idea is this:

    • There's some way to find out what other programs are running that are willing to talk, a "resource location" protocol.
    • Once you find out who's willing to talk, there's a way to find out what messages they understand and their formats. That's the key to all this.
    • Then, hopefully, there's some security mechanism which decides who's allowed to make which calls to whom.
    • Then, the caller and callee can communicate in a subroutine-like way, with some assurance that they're talking the same language.

    This all originated as an internal mechanism within Visual Basic and was responsible for its success. Alan Cooper had finally implemented a reasonably idiot-proof way to make A talk to B. That's why Visual Basic controls were so powerful. Then Microsoft made it a general-purpose mechanism. The Unix/Linux world didn't pick up on this for a long time. The Gnome and OpenOffice people get it, and their stuff plays well together. Most other extensibility is a master-slave relationship, usually involving "plug-ins", "toolbars", or "scripting".

    Part of the problem is that the main languages in the Unix/Linux world are C and C++, which have no introspection. If you have a structure, and you need to go through all its fields and get their name and type info so you can format and marshall them for transmission, there's no way to do that from within C or C++, other than by writing glue code by hand for each interface. Preprocessors have been built to deal with this problem (ones exist for OpenRPC and SOAP), but they're clunky and complicate the build process. CORBA requires that you define each interface in its own special language, IDL. The Java world has a solution to this problem, but it's Java-only. Microsoft has put extensions into their various dialects of C and C++ to deal with this, but they were too Microsoft-specific to go into the standard. So making A talk to B without extra work remains hard in the Unix/Linux world.

  115. Re:What a ridiculous trend... CORBA to WebServices by captaineo · · Score: 1

    Subsetting must hurt compatibility though - different vendors will implement different "10%"s of the features.

    This is why I cringe whenever I hear about some spiffy new feature in the MPEG standard. I already know most "MPEG" implementations won't be able to handle it.

  116. wow by indy_Muad'Dib · · Score: 1

    did GI Joe and Sgt Slaughter finally get that mask off of him?

  117. Re:What a ridiculous trend... CORBA to WebServices by indifferent+children · · Score: 2, Informative
    Subsetting must hurt compatibility though - different vendors will implement different "10%"s of the features.

    No, the ORB vendors should provide all of the spec'ed functionality. And to be fair, they tend to do a very good job at this completeness. As a programmer who uses CORBA (omniORB, ACE+TAO, and VisiBroker), I only *use* 10% of the features. I never use: POA interceptors, POA policies (hardly at all), Trading Service, AVService, etc.

    There are a few features that are almost never implemented by the ORB vendors, such as the TypedEvent interfaces to the NotificationService. That is one of those stupid features that the domain specialists (e.g. IT people from the Healthcare industry) put into the spec, without knowing how difficult and inefficient it would be to implement and use. The ORB vendors responded by ignoring that feature (mostly out of necessity).

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  118. CORBA in embedded systems by ehovland · · Score: 2, Interesting

    Thanks to Moore's law embedded systems have grown up enough to use CORBA. I know this because I work on a project which uses CORBA heavily (at least in the TAO and JacORB incarnations). Since CORBA has strong typing, it is attractive to developers who depend heavily on typeness to provide checks in systems where no one likes bugs. And really, who wants to write another middleware to deal with distributed systems? I sure don't.

    There is no disclaimer in the article so I think it is worth mentioning that even though Michi was CORBA for all intents and purposes for a number of years, his current employer provides a competitor to CORBA and Web Services. And, you guessed it, that product addresses each and every flaw he outlines in his article.

    To be fair ZeroC and Michi do put their money where their mouth is by supplying Ice in source form, licensed under the GPL. Although I do not see them putting this in front of a body like the IETF or trying to get Ice bindings integrated into something like boost. This would really attack that one point in the article talking about having real systems implemented and having it in front of a standards body.

    Now that I have put in the proper disclaimers, I have to say that having used CORBA the last 5 years I agree with Michi on every point. Our knowledge of POAs is just now getting to the point where we are comfortable using it in complex ways. We are only now willing to entertain the notion that we are actually using CORBA the right way. We have spent weeks reading, coding, recoding, testing and testing again to understand the spec and the real world usage. The learning curve is easily the steepest and tallest of any technology I have had to learn. I said "Amen" out loud when Michi mentions that people really screw up when they don't do it right.

    Using CORBA as a real distributed object system is not possible unless the system is in a network that you have complete control over. Even now we use cumbersome workarounds to develop our system remotely because we can't use CORBA like we were supposed to. Thank you very little script kiddies for making us use firewalls every where! But if CORBA had been built with security in mind in the beginning at all, it would be vastly more useful then it is now.

    And we have not moved on to things like Web Services precisely because we do not want to move away from type checking and we can see the train wreck associated to security. So we use CORBA the best we can (and we have been largely successful, BTW).

    Now I am going back to checking whether try blocks have been done properly for the naming service code we have to implement because of the exact reasons Michi says most implementers need the CORBA naming service.

  119. Re:What a ridiculous trend... CORBA to WebServices by GOD_ALMIGHTY · · Score: 1

    Amen. We're doing CORBA all over again, just slower with crappier libraries and technologies. WSDL is IDL, your HTTP server/SOAP handler is your ORB. You have to use 2WSDL / WSDL2 just like IDL compilers. I can't wait for another 5 years of tech changes to webservices that will make it run, as you said, just like CORBA has for over a decade. I just want to know who looked at HTTP and said, "Yeah, this is better than IIOP!", cause I don't want them anywhere near my projects.

    Webservices should be left to rot, the technology provides nothing that CORBA didn't do better.

    --
    Arrogance is Confidence which lacks integrity. -- me
  120. Shocking by raider_red · · Score: 1

    I'm shocked. I've never heard the terms "Corba" and "interesting used in the same sentence before. Back in 98-99, I worked with Orbix, which was a not-so-great (IMHO) implementation of the Corba standard. I'm glad I don't have to repeat the experience anytime soon.

    --
    It's good to use your head, but not as a battering ram.
  121. What about VNC? by Anonymous Coward · · Score: 0

    VNC got its start using CORBA no? It seems to have worked out well.

    Granted I suspect it only uses a small fraction of CORBA and I
    doubt it ever would have worked if the authors didn't design their
    own orb as well.

    I also recall a few tiny companies doing useful things with Java/CORBA
    (anyone remember Thought, Inc) about 10 years back to connect applications
    to backend databases in the way we now use xmlrpc.

    Also don't Gnome desktop tools communicate with each other using CORBA protocols?

    I postulate that the real problem is that everyone working on CORBA really
    underestimated how hard distributed systems can be unless significant simplifying
    assumptions are made that tend to limit the overall reusability of the underlying
    communications subsystem.

  122. Re:DOPE: Distributed Objects Practically Everywher by SimHacker · · Score: 1

    The incredibly fucked up NeWS/CORBA/DOE/Slowlaris situation was why I left Sun, too.

    I took a job at Sun in 1990, because James Gosling posted this message reaffirming Sun's commitment to NeWS, and during my job interview assured me that Sun was going to publish the NeWS source code in the public domain. (This was before the term "open source" was popular.)

    Unfortunately, John Gilmore was right to be skeptical: "I'm glad that people believe James Gosling about NeWS more than they believe me. Check his message for specifics, though. Weed out the promises and soothing noises and what is left?" The only hope was to make NeWS free, so I grilled Gosling about whether Sun would make NeWS free, and he assured me they would, so I took the job with Sun, based on his word. But James Gosling let our team down. Which is why I've never trusted anything he said about Java.

    To Sun, making NeWS free meant charging $1000 for media, and prohibiting anyone from distributing "free NeWS" it without buying the $1000 tape from Sun. (Yes, the person who posted that message is the infamous Pat Naughton.)

    Sun actually wanted to cancel the NeWS project, but instead of telling us the truth, they said that they were going to use NeWS as "Display Services for DOE", which we all knew was a crock of shit.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  123. Re:DOPE: Distributed Objects Practically Everywher by SimHacker · · Score: 1

    Hi, Andrew! It was fun working with you after Sun, on ScriptX at Kaleida. ScriptX was even more lisp-like and object oriented than NeWS PostScript. Did you know that after Kaleida shut down, John Wainwright (an architect of ScriptX) went on to implement a plug-in scripting language for 3D Studio Max called "MaxScript", that's remarkably similar to ScriptX! It worked so well that Kinetix bought it from him, and made it the official 3dsmax scripting language. It's still in common use, for programming 3dsmax tools, importers, exporters and user interfaces. It was quite powerful because it supported all kinds of ways to integrate other software: DOS command lines, OLE automation, and dynamically loaded C++ extensions for the scripting language itself.

    It sucked having NeWS and ScriptX canceled out from under me, while I was having so much fun with them. So no more proprietary platforms for me, thank you. These days, I prefer programming python, and I use SWIG to plug it into C++ and C libraries. I like to use OpenLaszlo on the client side, which supports Flash now and DHTML soon. But I will never fall for something proprietary like FLEX, ever again. In a few years, Flash will be as obsolete as Director, ScriptX and NeWS are today, so it's a bad idea to put all your eggs in that one basket.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  124. Re:Corba, Corba: I hardly knew ye by Anonymous Coward · · Score: 0

    For crying out loud, you are practically equating website creation (LAMP) to e-commerce infrastructure (CORBA).

    If you need to distribute and interoperate applications across different networks with heterogenous computer installations, nobody gives a toss about your killer websites I'm afraid. They are looking at middleware that fits the "big corp grade" bill.

    Then it's annother issue altogether how much EJB can eat CORBA's lunch and where... but LAMP is not near that ballpark, not even in the same ballgame.

    BTW, if you happen to use GNOME, you'll continue to know CORBA alright ;-)

  125. What's the other half? by Anonymous Coward · · Score: 0

    I'm still trying to figure out what the other half of the battle is?

    I mean, it can't be killing people--GI Joe troops were elite, and so no one ever actually died during their entire war.

    I'm guessing the other half was learning some sappy lesson at the end of each sho^W day?

  126. Re:DOPE: Distributed Objects Practically Everywher by SimHacker · · Score: 1

    PS, Andrew:

    Here's John Wainwright's page on MaxScript 101. MaxScript has a lot of really cool ideas built into the language that make it easy to script 3D graphics construction and animation (like treating transformations, time, etc as nested scopes that you can temporarily enter and exit, and directly supporting animation).

    I dont't mean to confuse anyone by talking about two different pieces of software called "Max" (and not "Macs"), but here goes:

    You should take a look at what Cycling 74 has done with their venerable visual programming language MAX/MSP (which supports a huge ecology of of binary plug-ins as well as visually scripted extensions), and Jitter, their 3d/video/image processing extension. Jitter supports writing extensions in JavaScript, and has full access to OpenGL from JavaScript as well as the visual programming language. You can even emit and consume JavaScript data structures on the wires flowing between Max data processing icons! But MAX is proprietary, and incredibly complex and arcane, due to its age. That can also be said for 3D Studio Max, as well.

    I'm excited about applying ideas from successful or well designed proprietary systems to future versions of OpenLaszlo, targeting 3D runtimes instead of Flash. One reason I'm sure Flash is doomed is because it doesn't already support 3D, and if Adobe/Macromedia ever gets around to adding it, rest assured it will be a horrible kludge. I want to develop and run OpenLaszlo applications in a well designed full 3D real time environment, and use it to implement visual programming languages like Max, and user interface builders like HyperNeWS. OpenLaszlo's independence from Flash makes that possible.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  127. it's a bad model by pyrrho · · Score: 1

    to make a blocking function call that actually sends a message.

    you need to queue messages in and out.

    It's neat if you have something that is supposed to work like a library and sneakilly is on another host... like a GNOME plugin... but to just have it in general, a nightmare to debug.

    blocking is teh evil whatever you think.

    juggle instead!

    --

    -pyrrho

  128. CORBA isn't synchronous by cow-orker · · Score: 1

    it only appears so. The GIOP protocol itself is completely asynchronous, invocations can be arbitrarily interleaved, results don't even need to be reported in the same order the requests came in. What is synchronous, however, are the language bindings. Then again, how else would you embed remote invocations into C and similar languages? Without first class functions is is simply too cumbersome to compose a program out of parallel invocations and continuations. The only way out are threads, and multithreading should properly be written multithreating.

    But consider a functional language. It would be ridiculously easy to define a language mapping where you could explicitly set off parallel invocations, or you could call each invocation with a continuation that tells it what to do when it eventually returns. Nobody did this, and the only explanation is that the guys at OMD did not know Standard ML. That explains some other major blunders, like missing recursive structures, but I digress...

    1. Re:CORBA isn't synchronous by Omnifarious · · Score: 1

      it only appears so. The GIOP protocol itself is completely asynchronous, invocations can be arbitrarily interleaved, results don't even need to be reported in the same order the requests came in. What is synchronous, however, are the language bindings. Then again, how else would you embed remote invocations into C and similar languages? Without first class functions is is simply too cumbersome to compose a program out of parallel invocations and continuations. The only way out are threads, and multithreading should properly be written multithreating.

      So, it appears you agree with me. I wasn't making a point about the underlying protocol. I was making a point about the idea of RPC. Sure, if you want to stop dealing with RPC in C as a function call you can start treating it as a message that you're sending and set up the appropriate stuff to wait for a reply. But then you've broken the whole procedure call semantics for C.

      My point is that procedure call semantics are entirely the wrong model for a network message. Code should treat a network message in a fundamentally different way. Ideally, of course, the underlying protocol support asynchronousness by having tags in replies that can be used to match them up with previous requests and such. But that's a side issue here.

      But consider a functional language. It would be ridiculously easy to define a language mapping where you could explicitly set off parallel invocations, or you could call each invocation with a continuation that tells it what to do when it eventually returns. Nobody did this, and the only explanation is that the guys at OMD did not know Standard ML. That explains some other major blunders, like missing recursive structures, but I digress...

      Perhaps in a language in which procedure calls no longer have the same semantics it would make sense for network messages to be modeled as procedure calls. I was also thinking of an experimental language I heard of long ago for programming for massively parallel systems. I believe it was called Actor (and I know there was an unrelated commercial language of the same name, but this isn't it). In it, every single message you sent to an object was asynchronous. And of course, modeling a network message there as a procedure call doesn't encourage bad assumptions about synchronousness.

    2. Re:CORBA isn't synchronous by cow-orker · · Score: 1

      Actually multithreading isn't such a bad idea. You will often have different threads of control, mostly independent of each other, and you want to keep them together, not rip them apart into request/response pairs that are queued somewhere. Doing the latter is about as maintainable as GOTO programs. The problems with multithreading start when threads interact in unpredictable ways, and that's what they do in C (and C dialects like C++, C#, Java, Pascal, ...). That's also the principal cause of all then synchronity: you have to make sure that all side effects complete before a procedure returns. If a procedure could complete in the background while you don't yet access its result, you'd get rid of most latency. But things don't work this way in C.

      The way out is to get rid of (most) global state. Without global state, thread cannot interact at all, with little global state, their interaction is manageable. That's what Erlang does (and to some extent, most functional languages). In fact, in Erlang virtually everything is done with threads (called processes), and it works beautifully. Of course, if you try hard enough you can still write a programm that is bogged down by network latency. No technology can protect against stupidity.

  129. Go for the simplicity by Julian+Morrison · · Score: 1

    If the "elephants" are close together, the obvious answer is to aim to make the simplest thing that could possibly work. Example: "web services". They're a cluster of awkward hacks held together with baling wire, but they're comprehensible in 30 minutes from a standing start, and they reuse a ton of mature APIs with readily available prepackaged implementations. Web services are the answer to "what can we have built, tested, up and deployed by next Wednesday?" Naturally they won.

  130. Re:What a ridiculous trend... CORBA to WebServices by Anonymous Coward · · Score: 0

    You're right that the CORBA specifications are HUGE and overly complex. But here's one of the great things about CORBA: it can be easily 'subsetted'.

    That makes it usable by those forced to use it, but makes things even worse for tools vendors (which was the context in which my statement was made).

  131. Time to start looking for a new job.... by kiwipom · · Score: 1, Funny

    When the architect/designer says 'Great a distributed app, let's use CORBA!'

    --
    Dum spiro spero
    1. Re:Time to start looking for a new job.... by Anonymous Coward · · Score: 0

      Sorry, but your comment just shows you're not up to the job.

  132. Re:What a ridiculous trend... CORBA to WebServices by Just+Some+Guy · · Score: 1
    For instance, I could define a "universal language standard" that encompasses C++, C, Java, C#, D, Smalltalk, Lisp, Algol, Fortran, and S/360 assembler code. Now how dumb would that be?

    Hey, I kind of like Perl...

    --
    Dewey, what part of this looks like authorities should be involved?
  133. ioctl(fd, EEEUGH_FMH, &spiked_studded_dildo); by SimHacker · · Score: 1

    You like simple API's for solving complex problems? Then you must LOVE ioctl()!

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  134. CORBA's Ugly Sister by Anonymous Coward · · Score: 0

    COBRA has an ugly sister called HLA. HLA is the US military standard for defense simulations. Trouble was it was designed by a small ivory tower elite who were clueless about the real world. Even funnier, they convinced the US secretary of defense and the IEEE to endorse it as a standard before it had ever been tried in practice. A huge waste of money. After the US secretary of defense made it compulsory, people discovered it didn't work. Oops.

    http://www.informs-cs.org/wsc98papers/109.PDF
    See DIS and HLA on Wikipedia too. Note how the HLA entry is very vague.

  135. Don't forget "One-Way" methods by KevinGlenRoyGreer · · Score: 1

    CORBA supports low-level asynchronous communications in the form of "one-way" methods which return immediately. The higher-level "Event" and "Notification" services provide higher-level async/Message-Oriented-Middleware (MOM) solutions.

  136. Previous thread on this topic by Hard_Code · · Score: 1

    Issue 8 of the ZeroC (creators of the Ice RPC protocol) linked to an active discussion in the rpc blogosphere on the legacy of CORBA, the fate of SOAP, and the age old problems of RPC:

    * exhibit A: 11:40 Oct 3, 05: Mark Baker claims CORBA was a technical failure ( http://www.markbaker.ca/2002/09/Blog/2005/10/03#20 05-10-ws-corba )
    * exhibit B: 15:38 Oct 3, 05: Steve Vinoski of Iona (leading CORBA vendor) begs to differ ( http://www.iona.com/blogs/vinoski/archives/000214. html ); a long discussion including Michi Henning from ZeroC ensues in the comments, including:

    Even if I do define WSDL that is "loose" and makes lots of things optional, that typically doesn't help me. Loose coupling isn't of interest just for its own sake, but is of interest because people are looking for a way to solve the versioning problem: how can I evolve a distributed application over time without breaking everything that is deployed already, and without having to recompile and redeploy the universe? If I define WSDL that is "loose" to start with, so I get the loose coupling I so much need, by implication, I know in advance how the application will evolve: I put the "loose" bits in the WSDL definitions where I expect future variation in the data. But real life doesn't work that way. None of us is prescient and, as a rule, what makes the versioning problem so hard is that we *don't* know how an application will evolve in the future. In other words, people who say that I can solve the problem by writing "loose" WSDL are kidding themselves: the real world is not cooperative enough for this to work.

    * Michi Henning

    It's odd that CORBA should end up being sidelined by most of its original supporters, in favour of a supposedly simpler and cheaper system that ends up being frantically complicated (well over 100 related specifications, and counting) and far more expensive. But that's business for you!

    * Tom Welsh

    * exhibit C: 23:05 Oct 13, 05: Ted Neward discovers and enters the discussion ( http://blogs.tedneward.com/CommentView,guid,070274 e8-ccfd-4ebd-87b5-494564c39b77.aspx )

    And here is another prediction: once people get over their current fixation with loose coupling, they will finally realize that, to get loose coupling, I don't need loose type systems that throw away compile-time type safety, and I don't need support at the protocol level at horrendous cost in performance. All I need is intelligent system design, a middleware that offers a workable implementation of multiple interfaces (check out Ice facets), and domain-specific standardization. With that, I get type safety, flexibility, and performance.

    * Michi Henning

    * exhibit D: 17:32 Oct 22, 05: Ken Horn comments on the issue ( http://kendes.blogspot.com/2005/10/loose-coupling- corba-vs-ws.html )

    Links

    * PEPt - An Architecture for Adaptable Remoting Systems ( http://haroldcarr.net/pept/ )
    * YAML ( http://www.yaml.org/ )
    * A Conversation with Roger Sessions and Terry Coatta ( http://www.acmqueue.com/m

    --

    It's 10 PM. Do you know if you're un-American?
  137. Re:What a ridiculous trend... CORBA to WebServices by aminorex · · Score: 2, Insightful

    I'm of the opinion that invested vendors want to raise the bar to entry for competitors, so they inject as much complexity as they feel they can easily manage. This turns into a bidding war at the standards table, when multiple vendors all try to inject complexity in areas where they feel they have leverage. It's just like price-fixing, really. It's an anticompetitive practice.

    --
    -I like my women like I like my tea: green-
  138. oh yes by pyrrho · · Score: 1

    which is the reintroduction of a messaging paradigm! in which case, why use function call semantics?

    ah... this is the problem with the whole RPC model, it's really just a good fit when you really do think the functionality is going to be local, and you want to be able to distribute it somewhere not local, but nearby on the network. Not a bad thing, but limited because if there is a lot of communication, you need to use message passing metaphors to properly design it -as- a communication system.

    --

    -pyrrho

    1. Re:oh yes by w7cook · · Score: 1

      This is the point I think people are missing. It's not just the technical details that are killing CORBA, its the fundamental assumption that transparent distributed objects are a good idea. I wrote an academic paper on this.. the conclusions will be no surprise to experts... but I'm trying to explain and quantify the issues: Web Services versus Distributed Objects: A Case Study of Performance and Interface Design William R. Cook, Janel Barfield To appear, Proc. of the IEEE International Conference on Web Services ( ICWS) 2006. September 18-22, Chicago, USA

    2. Re:oh yes by Michi · · Score: 1

      Readers may also be interested in my comments on that paper.
      Cheers,
      Michi.

  139. Not many alternatives yet by sted · · Score: 1

    Actually it is difficult to find good alternatives to CORBA for high performance and/or mission critical distributed applications.
    ICE, the middleware created by the company where the author of the article works, is very good.
    The downsides:
    - It is proprietary
    - It is not free for commercial applications (this is not bad per se)

    Most of the shortcomings of CORBA depicted by Michi Henning are true.
    But some of them are avoidable.

    These are some pros for CORBA:
    - Many freeware implementations (TAO, OmniOrb, JacOrb, etc)
    - Very good performances
    - Good support (both from public forums and private companies - three or four companies, for instances, offer support for TAO)
    - Interoperability with everything. Java is compatible out of the box (even if the JDK ORB is acceptable only on the client side). The excellent IIOP.NET (http://iiop-net.sourceforge.net/) offers .net interoperability. OminOrbPy (http://omniorb.sourceforge.net/) offers Python bindings. Et cetera.

    If only CORBA had a C++ binding like ICE...

    Sted

    P.S.
    Like many developers working with CORBA, I am grateful to Michi for his precious help within comp.object.corba in the early days.

  140. Re:DOPE: Distributed Objects Practically Everywher by arn@lesto · · Score: 1

    Hey Don.

    Haven't talked with John W for a while now. I knew about the language work he was doing. I'll check out the other two languages and OpenLazlo.

    I've been playing with my own language ideas, similar to Self in that it only has prototyping and delegation as the language mechanism, the underlying engine is very Forth like (dual stack with a couple of addressing registers). The runtime always compiles to machine code through several compilers, simple/fast, simple+profiling, slow optimized compiler using profiled info; all depending on frequency of use. The modules/packages depend on other modules all automatically loaded and cached from the net. You can add hints to the compiler via assertions (that might be checked/utilized). Arrays of similar objects are first class objects allowing efficient packing of numerical/textual data. I'm paying careful attention to the runtime size and making sure that system level driver code could also be written without huge overheads. A real-time GC of course.

    I'm hoping to prove it's viability by building a 3D game engine on top (similar to Blitz3D) that used OpenGL underneath, not thought too much about this at the moment. I do recognize that a new language is no good without an adequate well thought out library (NeWS's biggest problem was an immature library).

    It will all be open source, just like Linux was/is. It should be possible to write portable applications
    across platforms, embed it into browsers and other applications. I probably won't release anything for
    another two years until everything runs well on a couple of platforms.

    The syntax I'm working on is minimalistic, no static types, little in the way of variables and arguments (being stack based). It's a language for individual smart programmers, without being unreadable, who just want to get the job done. I'm tired of languages that pander to large teams of mediocre programmers.

    --
    - AndrewN
  141. SWIG by SimHacker · · Score: 1

    You might want to consider writing a back-end for SWIG to support your language, which will make it easy to plug in new primitives and integrate libraries with your language. That will sure save you a lot of work, and enable developers to easily plug their own stuff in! SWIG lets you write interface definition wrappers for libraries (and can even use C++ header files directly, or you can tailor the interface by simplifying and modifying them with annotations), and SWIG automatically generates all the glue code for a wide range of languages, or pure xml that describes the interfaces for other tools to grok. There's an API for extending SWIG and writing new back-ends.

    SWIG is brilliantly and practically designed, and deals well with harsh realities and nuances of C++. It totally rocks!

    For a great example of a complex library exposed to scripting languages via SWIG, check out the Intel Open Source Computer Vision Library, which plugs into many scripting languages by describing its APIs to SWIG. If you wrote your own language back-end, you'd be able to SWIGify an OpenCV interface to your own language, as well as any other library that has a SWIG interface.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com