comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <spam@spam.com>
Subject: Re: Feasibility of using Ada in new development
Date: Mon, 23 Aug 2004 19:09:08 GMT
Date: 2004-08-23T19:09:08+00:00	[thread overview]
Message-ID: <ohrWc.31469$9Y6.28047@newsread1.news.pas.earthlink.net> (raw)
In-Reply-To: <8429999a.0408231027.2850e800@posting.google.com>

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




  parent reply	other threads:[~2004-08-23 19:09 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-23 18:27 Feasibility of using Ada in new development Robert Law
2004-08-23 19:05 ` Martin Dowie
2004-08-23 19:09 ` Jeffrey Carter [this message]
2004-08-24  0:06 ` Florian Weimer
2004-08-24  1:31 ` Stephen Leake
2004-08-24  3:59 ` Adrian Hoe
2004-08-24  4:13 ` Steve
2004-08-24 11:09   ` Phong Ho
2004-08-24 11:40     ` Jeff C,
2004-08-24 20:25       ` Robert Law
2004-08-25 21:05         ` Dan McLeran
2004-08-26  2:42           ` John B. Matthews
2004-08-26 11:49           ` Georg Bauhaus
2004-08-26 19:31             ` Dan McLeran
2004-08-26 20:04               ` Simon Wright
2004-08-27 12:47               ` Georg Bauhaus
2004-08-27 21:08                 ` Dan McLeran
2004-08-28  0:28                   ` Stephen Leake
2004-09-01  4:09                     ` Adrian Hoe
2004-09-01  4:07                   ` Adrian Hoe
2004-09-01 14:14                     ` Hyman Rosen
2004-09-01 15:30                       ` Ed Falis
2004-09-05 20:50                         ` Florian Weimer
2004-09-05 21:27                           ` Ed Falis
2004-08-26 18:15           ` Ludovic Brenta
2004-08-28 17:57             ` Dan McLeran
2004-08-28 18:37               ` Ludovic Brenta
2004-08-30 17:06                 ` Dan McLeran
2004-08-30 18:00                   ` Georg Bauhaus
2004-08-30 18:55                   ` Jeffrey Carter
2004-08-31 17:11                     ` Dan McLeran
2004-08-31 17:46                       ` stephane richard
2004-08-31 19:19                         ` Björn Persson
2004-09-01 12:32                           ` Georg Bauhaus
2004-09-01 14:35                             ` Björn Persson
2004-09-02 15:18                         ` Dan McLeran
2004-09-02 22:03                           ` Randy Brukardt
2004-09-03 14:56                             ` Dan McLeran
2004-09-03 18:09                               ` Jeffrey Carter
2004-09-03 23:42                               ` Randy Brukardt
2004-09-04 15:06                                 ` Stephen Leake
2004-09-04 18:31                                   ` Georg Bauhaus
2004-09-05  8:18                                   ` Pascal Obry
2004-09-07  8:32                                   ` Jacob Sparre Andersen
2004-09-07  8:57                                     ` Georg Bauhaus
2004-09-08 12:26                                       ` Stephen Leake
2004-09-08 13:07                                         ` Georg Bauhaus
2004-08-31 18:12                       ` Jeffrey Carter
2004-08-31 18:14                         ` stephane richard
2004-08-31 20:09                           ` Hyman Rosen
2004-09-02  8:56                             ` Martin Dowie
2004-09-02 16:23                               ` Martin Krischik
2004-09-03  8:30                                 ` Martin Dowie
2004-09-03 18:04                                   ` Jeffrey Carter
2004-09-02 15:11                             ` Dan McLeran
2004-09-02 16:17                               ` Code completion Björn Persson
2004-09-02 17:42                                 ` Georg Bauhaus
2004-09-02 19:29                               ` Feasibility of using Ada in new development Simon Wright
2004-09-03 14:57                                 ` Dan McLeran
2004-08-26  9:52         ` Pascal Obry
2004-09-03  7:14         ` Case Crab
2004-09-03 12:21           ` Georg Bauhaus
2004-08-25  1:08     ` Puckdropper
2004-08-25  6:02       ` Adrian Hoe
2004-08-25  8:12         ` Martin Dowie
2004-08-25 12:54         ` Florian Weimer
2004-08-24 23:01 ` Luke A. Guest
2004-08-26 17:17   ` Warren W. Gay VE3WWG
2004-08-31  6:22 ` Wojtek Narczynski
2004-09-01  4:04   ` Adrian Hoe
2004-09-04 15:38     ` Wojtek Narczynski
2004-09-05  8:27       ` Pascal Obry
2004-09-05 11:54         ` Marius Amado Alves
2004-09-05 12:18           ` State Threads (was: Feasibility of using Ada in new development) Björn Persson
2004-09-05 13:13             ` State Threads Marius Amado Alves
2004-09-06 13:15               ` Wojtek Narczynski
2004-09-06 14:28                 ` Marius Amado Alves
2004-09-06 18:24                   ` Wojtek Narczynski
2004-09-07  0:23                     ` Marius Amado Alves
2004-09-07  8:13                       ` Wojtek Narczynski
2004-09-07 10:03                         ` Marius Amado Alves
2004-09-07 10:08                     ` Ole-Hjalmar Kristensen
2004-09-07 15:20                       ` Wojtek Narczynski
2004-09-06 16:23                 ` Georg Bauhaus
2004-09-07  8:01                   ` Wojtek Narczynski
2004-09-07  9:16                     ` Georg Bauhaus
2004-09-08 12:38                       ` Wojtek Narczynski
2004-09-08 13:26                         ` Georg Bauhaus
2004-09-06 12:19           ` Feasibility of using Ada in new development Wojtek Narczynski
2004-09-06 17:56         ` Wojtek Narczynski
2004-09-06 20:52           ` Pascal Obry
2004-09-07  8:40             ` Wojtek Narczynski
2004-09-07 23:59           ` Randy Brukardt
2004-09-08  9:10             ` Wojtek Narczynski
2004-09-09  1:12               ` Randy Brukardt
2004-09-09 10:26                 ` Wojtek Narczynski
2004-09-09 21:46                   ` Randy Brukardt
2004-09-06  3:11       ` Adrian Hoe
2004-09-06  8:17         ` Mark Lorenzen
2004-09-06 12:31         ` Wojtek Narczynski
2004-09-06  7:36       ` Ole-Hjalmar Kristensen
2004-09-06 15:32         ` Wojtek Narczynski
2004-09-07 23:51       ` Randy Brukardt
     [not found] <20040903083525.4DDF94C4137@lovelace.ada-france.org>
2004-09-03 10:17 ` Andrew Carroll
  -- strict thread matches above, loose matches on Subject: below --
2004-09-07  7:27 Robert C. Leif
2004-09-07 12:51 ` Ed Falis
     [not found] <200409070727.i877Rn69015076@mail710.megamailservers.com>
2004-09-08 12:24 ` Stephen Leake
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox