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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!news.glorb.com!newscon02.news.prodigy.com!prodigy.net!newsmst01a.news.prodigy.com!prodigy.com!postmaster.news.prodigy.com!newssvr13.news.prodigy.com.POSTED!4988f22a!not-for-mail From: Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> Subject: Re: [OT] Re: Teaching new tricks to an old dog (C++ -->Ada) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 Message-ID: NNTP-Posting-Host: 69.106.117.220 X-Complaints-To: abuse@prodigy.net X-Trace: newssvr13.news.prodigy.com 1110257422 ST000 69.106.117.220 (Mon, 07 Mar 2005 23:50:22 EST) NNTP-Posting-Date: Mon, 07 Mar 2005 23:50:22 EST Organization: SBC http://yahoo.sbc.com X-UserInfo1: Q[OQB\CEBZUWSSD[N[O@_WH@YR_B@EXLLBWLOOAFMASJETAANVW[AKWZE\]^XQWIGNE_[EBL@^_\^JOCQ^RSNVLGTFTKHTXHHP[NB\_C@\SD@EP_[KCXX__AGDDEKGFNB\ZOKLRNCY_CGG[RHT_UN@C_BSY\G__IJIX_PLSA[CCFAULEY\FL\VLGANTQQ]FN Date: Tue, 08 Mar 2005 04:50:22 GMT Xref: g2news1.google.com comp.lang.ada:8837 comp.lang.c++:44546 comp.realtime:1051 comp.software-eng:4600 Date: 2005-03-08T04:50:22+00:00 List-Id: "Peter Koch Larsen" wrote in message news:y8lWd.103136$Vf.3969714@news000.worldonline.dk... After reading some ideas about Ada, > My conclusion is that there are some nice ideas out there, but that they > mainly protect against the "sloppy" programmer. > Actually, the inherent type safety, along with the visibility rules in Ada do a bit more than "protect against the 'sloppy' programmer." I wonder there is real protection against a truly sloppy programmer, in Ada or elsewhere. Then again, perhaps we are all a little sloppy now and then. I know I sometimes make stupid mistakes while coding that the Ada compiler brings to my attention. The larger issue is how Ada scales up to programming in the large for safety-critical software. Few other languages do scale up as well as Ada. For a small, one-person job, I'm not sure it matters so much what programming language you choose. However, when you are building a large team of programmers and need high level of confirmability wrt the inter-relationship of the varioius modules, Ada serves much better than most alternatives. A key idea in Ada, one that I like much better than in other languages (although this aspect of Modula-3 is pretty good), is the model for separate compilation. Space in this posting does not allow one to do full credit to this capability, but it is one of those features of the language that, when used as it is supposed be used, makes the team development process so much easier. For real-time embedded systems, Ada allows easy navigation from one level of abstraction to another, and allows that navigation to be safe. We can, and usually do, design our programs at a high level of abstraction. However, when it is required to descend to the machine level, we can do, but with greater safety (built-in rules) than one might do with some other language. Anyone who has ever made an mistake in pointer arithmetic knows how entertaining it is to spend long hours searching for the source of some run-time fault. Never made that kind of mistake? You only need to make it once for it to be memorable. Some find Ada to be a little difficult to learn at first. In particular, the rules that govern something called "visibility" give new programmers a bit of trouble. For those programmers who insist on fighting this feature, there is no end of trouble. I like to use the analogy of the rotating-brush floor buffer. When you flip the switch on that buffer, you need to know just how to control it or it will run away with you. Once you let the buffer have its way, you can make subtle little movements to make it go where you want it to go instead of dragging you all over the floor. The more persnickety features of Ada are a lot like the floor buffer. Once you learn how to control them, use them to your advantage, and understand their purpose, the language becomes easy and fun to use. The problem is that most programmers fight those features and complain because they refuse to abide by them. Those who do learn the visibility rules tend to build excellent, dependable, and maintainable software, and with much less sweat, tears, and blood than the corresponding programmer in language X. Or is the wrong end of the third-from-the-end letter of the alphabet? Richard Riehle