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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fdb77,5f529c91be2ac930 X-Google-Attributes: gidfdb77,public X-Google-Thread: 103376,583275b6950bf4e6 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,59ec73856b699922 X-Google-Attributes: gid1108a1,public X-Google-Thread: 11232c,59ec73856b699922 X-Google-Attributes: gid11232c,public X-Google-ArrivalTime: 2003-04-22 22:56:31 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!snoopy.risq.qc.ca!newsfeed.news2me.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!stamper.news.atl.earthlink.net!harp.news.atl.earthlink.net!not-for-mail From: Richard Riehle Newsgroups: comp.lang.java.advocacy,comp.object,comp.lang.ada,misc.misc Subject: Re: the Ada mandate, and why it collapsed and died (was): 64 bit addressing and OOP Date: Tue, 22 Apr 2003 22:57:40 -0700 Organization: AdaWorks Software Engineering Message-ID: <3EA62B54.49580F4F@adaworks.com> References: <3E4E8F8C.9C096985@adaworks.com> <9fa75d42.0302250710.5549baaf@posting.google.com> <3E5C7033.BD5DC462@adaworks.com> <9fa75d42.0302260618.7506cba7@posting.google.com> <3E5CF5C6.84822F57@adaworks.com> <8qkczsAcGcn+Ew83@nildram.co.uk> <3EA04A1E.CAFC1FEF@adaworks.com> <9fa75d42.0304221126.7112b7d5@posting.google.com> Reply-To: richard@adaworks.com NNTP-Posting-Host: 41.b2.49.5a Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Server-Date: 23 Apr 2003 05:57:30 GMT X-Mailer: Mozilla 4.7 [en] (Win98; I) X-Accept-Language: en Xref: archiver1.google.com comp.lang.java.advocacy:62528 comp.object:61638 comp.lang.ada:36392 misc.misc:13582 Date: 2003-04-23T05:57:30+00:00 List-Id: soft-eng wrote: > I think nobody complained about any particular > feature. The major complaint was that it > had all the itsy-bitsy little ideas that anybody > had thought at the time. And no truly innovative > or revolutionary ones. There were a few itsy-bitsy ideas that were unique in the language at the time of Ada's introduction. > Take something trivial, e.g. string slicing. > Not a terribly useful feature, but not entirely > useless either. The trouble is, there was > a whole lot of such mildly useful features > that Ichbiah had seen somebody use somewhere > (this one from PL/1 I think), or was able to > think up. String slicing was unnecessary, still is, when one used a Strings package. In contemporary Ada, this is handled quite nicely with language-defined packages. However, aside from that, the interesting an powerful idea in Ada was not the string slicing, but the array management model. A string, in Ada is a first class type. It is a kind of array type. Arrays in Ada are quite powerful. This is one of the features I most like about the language at the algorithm design level. From my experience with C and C++, I would much rather program with Ada arrays than with C or C++ arrays. > Also, Ada proponents made much of its strong > typing. But it was not at all novel or revolutionary. > It was a very common language idea > at that time, and then-popular Pascal had it too. We should probably re-phrase this phrase, "strong typing" to type-safety. Even though we saw some movement in the direction of type-safety in Pascal, PL/I, and other earlier languages, Ada went well beyond those earlier attempts and actually achieved what they did not. > That wasn't bad by itself. But from a practical > point of view, over-emphasizing strong typing made > interfacing to C a virtual necessity > for projects of any significant complexity. Well, this, of course is dead wrong. Type safety did not drive the move to interfacing with C. Also, Ada was, and is, designed to permit a programmer to get to a very low-level of programming, even to the machine code level, if it seems appropriate. One can, in Ada, relax the type safety as necessary. Some organizations set up rules that prohibited using such features, and opted, instead, for writing the code in C. In such cases, they gained nothing, lost a lot, and often created a mess. If they had remained with straight Ada, they would have been better off. That being said, there is a lot of operational code written in C, C++, Fortran, Assembler, and other languages. Contemporary Ada is designed to make it easy to use existing code regardless of how it is coded. Mature code that works is often better than new code that has not been tested in the real world, regardless of what spiffy new language one might use. Ada allows the developer to leverage the best of existing code while building better and more reliable code than would be likely in C or C++. > (C and later C++ style of type-safety turned out to > be good enough for real-world projects.) Once again, dead wrong. C++ is not type-safe. It offers an illusion of type-safety under some circumstances, but such oddities as type-promotion (also in Java) fly in the face of type safety. There all sorts of holes in C++ that make the idea of type-safety there somewhat at odds with what it ought to be. > But the huge collection of mostly mildly useful > features made the language too large and complex, which > is what got Hoare and other lights of > the time (relatively unknown in the DoD > circle) upset with Ada. Actually, Hoare later wrote a tribute to Ada in one of the Ada 83 books. His earliest criticism of Ada had to do mostly with the inclusion of exception handling in the language. Ooooops! We now have exception handling in C++, Java, Eiffel, etc. So when you mention Hoare and Ada, you need to understand that, subsequent to his Turing lecture, he had some pretty nice things to say about the language. Richard Riehle