15

I'm just learning about midleware in class, and our teacher has told us about CORBA. Doing a bit of research, I've found that the last version (CORBA 3) was released in 2002, which seems quite old in the computers science (well, in fact I know there is also CORBA 3.3, released in 2012, but..)

So there's my question: is CORBA outdated?

Update: to make it less subjective, let's try asking some particular things:

  1. Is being CORBA used in large new projects?
  2. Does CORBA have known difficulties that makes it useless in that scene?
  3. Are there new frameworks rising to fill its place?

I think all this fits quite well with the original question (and have been already answered)

Thanks in advance

Btc Sources
  • 277
  • 2
  • 8
  • what technology to take up next, including [which technology is better](http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/), is explicitly off-topic per [help/on-topic] – gnat Mar 20 '15 at 17:09
  • I have read it, but still thought It fits better here than in others communities. Do you know where does it fit better to post it? Thanks – Btc Sources Mar 20 '15 at 17:12
  • not at Stack Exchange I'm afraid. ["We already tried supporting those questions, we even gave them their own site. Sadly, it didn't work out..."](http://meta.stackexchange.com/a/200144/165773) – gnat Mar 20 '15 at 17:17
  • You should edit your question to remove the 'what technology to take up next, including which technology is better' parts. – dcorking Mar 20 '15 at 17:56
  • they're called *cobra*s... – Jimmy Hoffa Mar 20 '15 at 18:05
  • What are called `cobras`? – Btc Sources Mar 20 '15 at 18:09
  • 2
    I don't think this Q is opinion-based, and certainly not primarily opinion-based. Ultimately, a quantatitive peer-reviewed study could be carried out that measures the number of new projects started with CORBA, so this is much less opinion-based than other things that are in scope at Programmers.SE, – dcorking Mar 21 '15 at 16:54

2 Answers2

19

Yes, CORBA is rarely specified for new systems. But, there are plenty of live systems that you might want or need to connect to using their CORBA interface, as it was very popular from the early 1990s, for about twenty years, and live systems often last many decades.

@Blrfl shared a link to The rise and fall of CORBA (Michi Henning, 2006, ACM Queue magazine) which backs up my assertion.

During its lifetime, CORBA has moved from being a bleeding-edge technology for early adopters, to being a popular middleware, to being a niche technology that exists in relative obscurity. ... CORBA’s history is one that the computing industry has seen many times, and it seems likely that current middleware efforts, specifically Web services, will reenact a similar history.)

dcorking
  • 586
  • 4
  • 13
  • Quite nice explanation. Maybe even better before the edit cause let me understand what is it used for. Thanks. – Btc Sources Mar 20 '15 at 18:03
  • You can follow the 'edited' link to see the old version, which isn't really suited for this site (it is more an FAQ of what not to put in Q&A.) SOAP, message queues and REST aren't direct equivalents of CORBA: they are just other ways of thinking about the problems. – dcorking Mar 20 '15 at 18:06
  • 1
    [SOAP never was a good idea, even when it was popular.](http://harmful.cat-v.org/software/xml/soap/simple) – Mason Wheeler Mar 20 '15 at 18:07
  • Interesting reading @MasonWheeler – Btc Sources Mar 20 '15 at 18:19
  • Additional reading: [The Rise and Fall of CORBA](http://queue.acm.org/detail.cfm?id=1142044). Michi Henning, the author, is in a uniquely good position to opine on the subject. I've used the product he went on to do afterward, and it's quite good. – Blrfl Mar 20 '15 at 18:47
  • I read a piece (don't have enough time), but I got the problem I think. Thanks for the link @Blrfl – Btc Sources Mar 20 '15 at 19:42
10

The short: Yes, sadly(*), CORBA is outdated, as in:

  • No decent .NET implementation
  • The existing C++ binding is ugly, although there does exist a new C++11 binding
  • No decent implementations for other modern languages (except Python)

That being said, existing CORBA implementations like omniORB, TAO, R2CORBA are supported and used, and are IMHO much more mature than many other IPC/RPC frameworks, although these are certainly more "modern" and are probably the future.


(*) I write sadly, and it is indeed a sad affair, because (point 3 from Q), there are quite a few frameworks rising, but there's not one that can fully replace it at the moment, and they all have problems of their own. (Immaturity, tailored for a narrow usecase set, interoperability (e.g. WCF via net.tcp), performance, footprint, licensing (ICE), ...)


Additionally, addressing point 2., while I do not agree with some points in The Rise and Fall of CORBA, one point that is indeed today a pain point is the lack of good versioning, quoting:

Versioning.

Deployed commercial software requires middleware that allows for gradual upgrades of the software in a backward-compatible way. CORBA does not provide any such versioning mechanism (other than versioning by derivation, which is utterly inadequate). Instead, versioning a CORBA application generally breaks the on-the-wire contract between client and server. This forces all parts of a deployed application to be replaced at once, which is typically infeasible. (...)

While it is not as horrible as the paragraph makes it sound, it is an issue for which I do not know of an elegant solution, even when sticking to a single CORBA implementation for all your parts.

Martin Ba
  • 7,578
  • 7
  • 34
  • 56
  • 1
    I see, this plus the article @Blrfl put on the other answer as comment let me have a quick view of the scene. I would upvote your answer, but don't have enough rep yet ;) – Btc Sources Mar 20 '15 at 19:44