Live data from Hacker News

The Rise and Fall of CORBA (2006)

queue.acm.org

1–10 of 156 posts

Re: The Rise and Fall of CORBA (2006)

#3
I remember how CORBA was all going to be the future.

I wrote dozens of programs in C++ and Python using IDL.

Funny, though, that we now find ourselves doing the exact same thing but it is "an API", has no type-checking, no error handling, requires more work, is limited to particular languages and is slower.

Distributed objects were ahead of their time by maybe 15 years. Now we're stuck in async API-over-JSON hell forever.

Re: The Rise and Fall of CORBA (2006)

#5
post #2

The Wikipedia page says the most recent version of the standard is 3.4, published in 2021: https://en.wikipedia.org/wiki/Common_Object_Request_Broker_A... In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree.

I graduated in 2018 and it was only mentioned off hand in a systems programming class in a discussion of RPC frameworks. That was basically all I knew about it until I became a maintainer of a CORBA implementation as part of my job. It's not the main part of my job and honestly I still don't know a lot about actually using CORBA. The only part I know a lot about is the interface description language (IDL) used for code generation, which we use a ton of in another framework that I'm actually paid to maintain.

Re: The Rise and Fall of CORBA (2006)

#6
post #2

The Wikipedia page says the most recent version of the standard is 3.4, published in 2021: https://en.wikipedia.org/wiki/Common_Object_Request_Broker_A... In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree.

> In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree.

Too bad you didn't join the company I left in the 90s. It was used in production.

I learned about it in my CS degree too, and (because I was a fulltime dev at the time as well as a part time student) I went ahead and used it at work[1].

From what I remember of using it in production, the only difficulty I had was in sourcing a free ORB (server software) that supported inter-ORB routing so that I could load-balance.[2]

My employer eventually shelled out a small fortune (it was the 90s, we were drowning in VC money) for something from, IIRC, IBM[3] that ran on Sun Enterprise Servers (another small fortune).

My experience with CORBA was GREAT! I mean, compared to the way we do it now with browser tech:

1. I could use any language to write the client software, not limited to only Javascript.

2. Making a server call from the client was transparent. It looked like any other function call, unlike how it has to be done now using promises/futures or callbacks.

3. The tech supported exceptions which were also transparent to the programmer. In C++ you could do the following and it would work as expected.

    try { myObj->foo() } catch  { /* ... */ }
4. It was all strongly typed; if you used an argument with the wrong type you'd get either (in compiled languages) a compilation error or (in Interpreted languages) a runtime exception before the call is made.

5. Developer velocity was great. I wrote my object specification, the tools generated both the server-side and the client-side wrappers, and all I had to do was call them.

[1] I was young, still in the phase of resume-driven-development.

[2] I used a free ORB written in C++ called either Mico or Micro; I don't remember the specifics.

[3] Maybe Sun, I'm not sure.

Re: The Rise and Fall of CORBA (2006)

#7

I remember how CORBA was all going to be the future. I wrote dozens of programs in C++ and Python using IDL. Funny, though, that we now find ourselves doing the exact same thing but it is "an API", has no type-checking, no error handling, requires more work, is limited to particular languages and is slower. Distributed objects were ahead of their time by maybe 15 years. Now we're stuck in async API-over-JSON hell for…

Why no type checking? Generate an Open API client for target languages. Done.

Assuming you need an API. I'll never build an app that way again, it's not worth my hands. I'd rather use Hotwire, or LiveViews, or Django's Unicorn for the web part. Zod looks nice too.

Re: The Rise and Fall of CORBA (2006)

#8
post #2

The Wikipedia page says the most recent version of the standard is 3.4, published in 2021: https://en.wikipedia.org/wiki/Common_Object_Request_Broker_A... In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree.

Some older Java application servers still feature a tiny amount of CORBA underneath the covers

Re: The Rise and Fall of CORBA (2006)

#9
post #2

The Wikipedia page says the most recent version of the standard is 3.4, published in 2021: https://en.wikipedia.org/wiki/Common_Object_Request_Broker_A... In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree.

> In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree. Too bad you didn't join the company I left in the 90s. It was used in production. I learned about it in my CS degree too, and (because I was a fulltime dev at the time as well as a part time student) I went ahead and used it at work[1]. From what I remember of using it in production, the only difficulty I…

> Making a server call from the client was transparent. It looked like any other function call

That is a very bad idea and one of the reasons this kind of thing rightfully died out.

Because a server call isn't like any other function call. It has orders of magnitude higher latency, and additional failure modes that you actually have to take care of.

It shouldn't look like any other function call.

Re: The Rise and Fall of CORBA (2006)

#10
post #2

The Wikipedia page says the most recent version of the standard is 3.4, published in 2021: https://en.wikipedia.org/wiki/Common_Object_Request_Broker_A... In my 25+ year career I haven't seen it in use anywhere. I only ever encountered it while getting my CS degree.

Lotus Notes/Domino supported it for IPC and it worked pretty well, e.g. from .NET which did not have a vendor language binding.
Post reply on HN