Re: Why don't large companies use Ada?

From: David Emery <emery_at_goldfinger.mitre.org>
Date: 21 Nov 94 10:35:29
Message-ID: <EMERY.94Nov21103529_at_goldfinger.mitre.org>


>My big bitch with Ada is that it has historically bad interfaces to
>commercial libraries for such things as Unix, Motif, Sybase etc.

I've been doing Ada bindings to C for over a decade now. When I started, there were some implementation problems. But, even now, the biggest problem is lack of understanding on how to do language bindings.

In short, there are two approaches:

	"thin" (quick and dirty :-)
	"thick" (do it right :-)

In order to do a good job of defining an Ada binding (or a binding from language X to language Y, for all languages X and Y, including C and C++), you have to understand the semantics of the interface. Then you have to present these semantics in the appropriate style using Ada (or language X). Once you understand the semantics, the presentation is easy.

The difficulty comes in understanding the basic semantics. This is a place where skill, experience, and the quality of the interface all come into play. If you're given a bad/incomplete/inconsistent/poorly designed C interface, it's more difficult to do a good Ada binding.

Since most of the effort comes in understanding the C (or whatever) interface, language bindings are still mostly mental effort. This is why 'automatic generation' of language bindings aren't a good idea. Instead of getting something that has been thought through, you just get C (or whatever) with Ada syntax. You're better off sticking with C.

So the bindings 'problem' is a classic engineering problem, and one that does not have any easy solutions. On the other hand, given a reasonably designed C interface, I can produce a good ("thick") Ada binding in 2-3 weeks. Our experience is that a good Ada binding produces substantial payback with even a small number of users. In particular, a good Ada binding can prevent or detect errors before they propogate into the underlying implemenation, where it is much harder to detect and debug errors.

It's unfortunate that the Ada community, and the vendor community, haven't worked together to solve this problem, which, after all, is not that difficult. Too many people have taken the approach of "I'll do it when I get paid to", which has not helped matters.

                                dave

--
--The preceeding opinions do not necessarily reflect the opinions of
--The MITRE Corporation or its sponsors. 
-- "A good plan violently executed -NOW- is better than a perfect plan
--  next week"                                      George Patton
-- "Any damn fool can write a plan.  It's the execution that gets you
--  all screwed up"                              James Hollingsworth
-------------------------------------------------------------------------
Received on Mon Nov 21 1994 - 10:35:29 CET

Original text of this message