From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ad062b5cdc790a8c X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1993-03-25 08:20:37 PST Newsgroups: comp.lang.ada Path: sparky!uunet!gatech!usenet.ins.cwru.edu!agate!linus!linus.mitre.org!linus!mbunix!emery From: emery@goldfinger.mitre.org (David Emery) Subject: Re: Air Force helping to undermine Ada In-Reply-To: joshua@Veritas.COM's message of 24 Mar 93 18:21:47 GMT Message-ID: Sender: news@linus.mitre.org (News Service) Nntp-Posting-Host: goldfinger.mitre.org Organization: The Mitre Corp., Bedford, MA. References: <9303100635.aa26443@dsc.blm.gov> <1993Mar24.182147.10664@Veritas.COM> Date: Thu, 25 Mar 1993 15:23:22 GMT Date: 1993-03-25T15:23:22+00:00 List-Id: >But that leads into the Real Problem (tm): there are almost no off the >shelf products written in ADA. So if you want to take full advantage >of a commercial product's API, you need to program in C, or some other >common language. It is not impossible to use ADA in these situations, >but it is much harder than using C. Doing Ada bindings requires a certain level of skill, but after that, there's generally no real problems with most commercial products. Some "middleware" products (such as DCE) require assistance from the compiler vendor, or intimate knowledge of both implementations to prevent unwanted interference between the Ada RTS and DCE threads, for instance. On the other hand, once you get a good Ada binding, my experience (8 years worth) is that the Ada binding is often much easier to use. A well-written Ada binding, using Ada strong typing, etc, catches many errors at compile-time, and provides a much stronger error detecting and recovery system at runtime. For instance, we've been working with XVT, a commercial GUI product. The XVT C implementation does not handle its errors very well. For instance, it gets confused when you try to locate a widget off the screen, or where the bottom-right corner is above the top-left corner, etc. By using Ada strong typing, we detected several stupid mistakes at compile-time (e.g. type mismatch when trying to add a vertical measurement to a horizontal location), that would have caused a lot more work to detect, identify and resolve at runtime (using debugging techniques). (We have experience using the XVT C binding, and so we know how painful it is to run down runtime errors using XVT.) The same is true of the POSIX bindings. Several people (NOT Ada people) have said that the POSIX/Ada binding is better written, easier to understand, and easier to use, than the existing C binding. dave