Subject: Re: [boost] Any interest in creating new CORBA IDL to C++ mapping?
From: Bjørn Roald (bjorn_at_[hidden])
Date: 2010-07-12 18:37:25
On 07/12/2010 09:54 AM, Johnny Willemsen wrote:
> Hi all,
> We are talking with various users of TAO to see if we can create a new
> modern IDL to C++ mapping. The idea is to drop all old compilers which
> lead to the current mapping and make a new IDL to C++ mapping that is
> using the latest draft C++0x standard.
> We want to use full STL, shared_ptr, r-value, and everything else we
> could need.
What C++ language to use:
I am thinking you should go as way out modern standard C++ as you can
and clearly indicate your intent to do. We got the old mapping for
those tied to old tools. I guess creating the best possible mapping
within C++0x constraints is the first objective. Make sure we get a
mapping that feels right at least 5-10 years from now.
> The idea is to prototype this first in TAO and than see if on the long
> term we can propose a new IDL to C++ V2 mapping to the OMG
> I did find some discussions on this list about 2 years ago, are people
> interested in this effort,
> any input is welcome.
Backward compatibility will most likely be an issue, but should not stop
anything like this from moving forward. Especially not as a prototyping
effort. I guess IDL based products in an ideal world should support old
and new C++ mapping if a V2 mapping eventually is approved by OMG.
Alternatively and a lot more realistically; to assure early user
adaptation of new mapping there need to be some re-engineering magic,
adapter generator or adapter code generally available to avoid users
concerns of vendor lock-in. Requiring an adapter may however put
undesired design constraints on the new mapping, so I think it may be
wisely ignored if needed. Nevertheless, if it is possible to create an
adapter solution where the adapter have minimal overhead and provide V2
mapping for users tied to products only supporting V1, then adapter
support seems to me as the way to go as far as user adaption. But there
are surely other paths one can take. As long as we get a new mapping in
place - and actual user adoption become a reality - most actively
supported C++ CORBA IDL related products are likely going to make the
new mapping native. Heck... the old one is stone age.
The really interesting part from a C++/Boost perspective is how a
general two-way mapping from C++ to IDL'ish typed data and interfaces
should be crafted. If there is something in this, and people have
ideas, this may be a time to step up and promote ideas as they may
affect the new C++ mapping. If this is possible and done right, it may
be a step on the the path to some nifty new possibilities. Maybe with a
defined subset of C++ as data/interface definition language (probably
looks a lot like IDL) and support from new tools based on good C++
front-ends like Clang, we could provide generation of mappings between
C++, CORBA ORB/IDL, Microsoft IDL, WSDL, possibly DDL, and other
interface definition solutions and middle-ware worlds. Hey what do we
need modelling tools for ;-) I guess I dream of a better world where
data protocol mappings is a lesser concern in my daily work. I am not
sure this is even possible in a way that actually provide a real
solution, but if it is to be done with focus on C++, it will likely be
done around here. Nevertheless, getting a completely arcane major
interface definition language binding to C++ fixed is certainly a step
in the right direction - also for C++ as a programming language. Thanks
Johnny and friends for working on this.