>and Net and Gui interfaces that were common to C, C++, Java, and Ada-95?
  Look at Java's AWT approach to placement of elements on screen.
Now compare that to the MS Windows (C) approach.  They address very
different needs, at very different abstraction levels, and the
resulting screens look very different.  I would be astonished if
someone were able to come up with a unified, simple, framework that
included all the capabilities of both.
  Compare Win32Ada, a transliteration of windows.h stuff to Ada, and
Claw, an Ada95 from-the-ground-up, Ada to MS Windows binding.  They
cover largely the same ground, and Win32Ada is probably an easy
transition for an experienced C-Windows programmer, so you might say
it's close to a common interface.  It makes very little use of the
powerful features of Ada or Ada 95 and is, IMHO, quite opaque to
anyone not an experienced C-Windows programmer.  Claw, OTOH, makes
heavy use of Ada 95 OO, child packages, tasking, protected records,
finalization, etc as well as the type safety, overloading, default
parameters, information hiding etc from Ada 83.  It would be a big
change for a C-only programmer, but come easily to an experienced
Ada programmer.  Is the 'more common' low level C-ish interface
really preferable for everybody?
  Tom Moran (a Claw co-author)