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,e7151167e0767ecc X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!newshub.sdsu.edu!elnk-nf2-pas!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!newsread1.news.pas.earthlink.net.POSTED!a6202946!not-for-mail From: Jeffrey Carter Organization: jrcarter commercial-at acm [period | full stop] org User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko/20030624 MSIE X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Feasibility of using Ada in new development References: <8429999a.0408231027.2850e800@posting.google.com> In-Reply-To: <8429999a.0408231027.2850e800@posting.google.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Date: Mon, 23 Aug 2004 19:09:08 GMT NNTP-Posting-Host: 63.184.105.114 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.news.pas.earthlink.net 1093288148 63.184.105.114 (Mon, 23 Aug 2004 12:09:08 PDT) NNTP-Posting-Date: Mon, 23 Aug 2004 12:09:08 PDT Xref: g2news1.google.com comp.lang.ada:2941 Date: 2004-08-23T19:09:08+00:00 List-Id: Robert Law wrote: > I would like to start by saying my message is not an attempt to start > a flame war or anything like that. That generally doesn't prevent a message from doing so :) > I want to use a language that meets the following criteria: > > 1. It must be reliable. Ada is the language of choice for safety-critical systems. All modern airliners have Ada avionics SW. Air traffic control systems around the world, including the US, are in Ada. Passenger train control systems, including the New York City subway, are in Ada. The list goes on ... > 2. It must be supported. Ada is supported. The vendors report growth in demand for Ada. If all else fails, GNAT is open source, so you can support it yourself. > 3. It must be usuable to develop applications in a graphical > environment. Basically Motif, GTK, or KDE. GtkAda is a nice, portable, cross-platform GUI for Ada. > 4. It must be usuable to develop programs used via a browser. See AWS. > 5. It must be able to interface with relational databases either > through a standard interface or ODBC. See GNADE. > 6. It would be nice if it was somewhat object oriented. I'm not an > object oriented purist, but it does have some nice features. I > especially like its automatic garbage collection of no lonter used > variable. Ada was the first internationally standardized object-oriented language. Unlike many OOPLs, OOP in Ada doesn't require pointers. The language specification doesn't mandate garbage collection. It doesn't prohibit GC, either, but no vendors provide versions with GC. This is due to a number of things, such as Ada's use in embedded systems, where general GC is unacceptable, but a major factor is that manual heap allocation and deallocation are rarely needed in Ada unless you're building dynamic data structures. In such cases, encapsulation combined with finalization allow for local garbage collection that is easily implemented and automatic once created. This targetted GC is often more attractive than having a garbage collector running periodically, looking at things that can't be or don't need to be collected. Since you seem to be interested in business software, Ada provides decimal fixed-point types that allow exact calculations on large monetary values, with output formatting similar to COBOL's. > I do want it to be a language that is efficient yet doesn't give you a > rope with a noose or a loaded, cocked, gun when you use it. In Ada, safety is the default, but unsafe alternatives can be invoked when required and the developer is sure won't cause problems. Ada is generally more effective than, say, C, if the C developer manually includes all the checks that Ada performs automatically, since the compiler can optimize away checks that it can determine will never fail, but a C compiler cannot do the same for manual checks. If you leave the checks out of C, and turn them off in Ada, the results are usually equivalent. Of course, a program with a GUI will spend most of its time doing I/O, and the difference between doing the checks and not doing them will not be of concern. In 20 years of using Ada, I have yet to see a case where turning off checks was required to meet timing requirements. It's rare for checks to amount for as much as 10% of the execution time. There is also SPARK, an annotated subset of Ada and a set of tools. The tools prove that the code will never raise an exception; the checks can then safely be turned off. -- Jeff Carter "When Roman engineers built a bridge, they had to stand under it while the first legion marched across. If programmers today worked under similar ground rules, they might well find themselves getting much more interested in Ada!" Robert Dewar 62