comp.lang.ada
 help / color / mirror / Atom feed
From: rentmei@asterix.uni-muenster.de (Jahn Rentmeister)
Subject: Re: "Subtract C, add Ada"
Date: 6 Jan 1995 13:06:51 GMT
Date: 1995-01-06T13:06:51+00:00	[thread overview]
Message-ID: <3ejf9b$hbg@majestix.uni-muenster.de> (raw)
In-Reply-To: 862035D1F1C@annwfn.com

Fred McCall (merlin@annwfn.com) wrote:
: In <D1Msq8.4Hs@inmet.camb.inmet.com> mg@asp.camb.inmet.com Mitch Gart writes:

: >Ada leaves less room for single-keystroke
: >errors, such as the common C error of using = (assignment) instead of
: >== (comparison); 

: I've always been curious.  Just *where* is this a "common C error"?
: I've seen lots of beginners and non-C programmers claim it is, but I
: don't recall ever hearing of anyone who knew what they were doing (and
: who was using a real tool -- say, lint -- to check their code) making
: it. 

But you surely know about people who - at one time - wrote things like

   for (i=0; i < MAX_LOOP; i++);
      field[i]=GetFieldValue(i);

The original statement you were criticizing says "single-keystroke errors,
such as...". There are more of them than just assignment and empty loops.
My golden C rule says "any sufficiently obscure error is due to a missing or
superfluos semicolon".

: >its type-abstraction facilities reduce the need for
: >error-prone pointer manipulation; 

: Afraid this one doesn't seem to make sense.  How does being able to
: define a dozen incompatible types of integer "reduce the need for
: error-prone pointer manipulation"?  

Afraid your answer doesn't seem to make sense.
Read it again: He is talking about type-abstraction, i.e. abstract Data
Types such as bags, stacks, linked lists, Bayer-Trees etc.
In C, people do this using void pointers - this means no type checking at
all. Even lint can't check anything there. This _is_ error-prone.

In Ada, you may encapsulate a pointer (or whatever) into a limited private
type, only allowing very few things to be done with the
pointer/file/whatever. In C, this is not possible. (We're not talking about
C++ right now.)

: >and its modular facilities improve
: >teams' coordination of effort.

: Both languages are modular.  I'm not sure how this is a 'win' unless
: we're talking about totally inexperienced teams.

We are talking about totally inexperienced teams here.
And - again - read carefully: "Modular facilities", not "modularity" as
such. The statement is that Ada provides some modular facilities that C does
not provide, not that C isn't modular. Just two examples:

In Ada, you can't use an obsolete package, because the compiler knows from
the library it's obsolete. In C, it can become quite tricky to ensure this
via make. Of course, you can do it, but you can't force people to use make
neither to only produce correct makefiles.

Private and limited private types are a "modular facility", too. With them,
you know you don't rely upon internals of a module, because you know you
can't even access them.

: Well, Ada is certainly a better choice than C for a beginning language
: to teach design concepts, etc. However, that isn't necessarily saying a
: whole lot, since that wasn't what C was intended for. 

No one claimed that it is saying a lot. The statement was "look, Ada makes
a success of a course where C failed. Let us teach Ada in beginning
courses." 

: I'm also not sure
: why that would be considered a 'plus', 

I'm sure it is a 'plus' for the students, for the teachers and for the
university. Well-trained personnel is a 'plus' for the companies that hire
them. That's why.

: unless the idea behind Ada was to
: come up with a good language for beginners; that wasn't the idea behind
: it.

The idea behind Ada was to come up with a perfect language, which did not
at all work. (Nevertheless, it's the best try I've seen so far.)

-Jahn
--
## PsionCrosspoint 3a Series V 0.99 B ##



  parent reply	other threads:[~1995-01-06 13:06 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-12-30 16:06 "Subtract C, add Ada" Mitch Gart
1995-01-03 19:04 ` whiting_ms@corning.com (Matt Whiting)
1995-01-05  4:31   ` Michael Feldman
1995-01-04 21:40 ` Fred McCall
1995-01-05  4:30   ` Richard Pattis
1995-01-05 16:07   ` Kevin Weise
1995-01-06 13:06   ` Jahn Rentmeister [this message]
1995-01-06 16:47     ` Laurent Gasser
1995-01-06 17:29       ` David Weller
1995-01-06 17:30         ` David Weller
1995-01-10 18:28       ` Bob Kitzberger
1995-01-06 23:36   ` Kenneth Almquist
1995-01-04 22:45 ` Jay M. Martin
1995-01-05  4:37   ` Michael Feldman
1995-01-05 18:08     ` Jay Martin
1995-01-05 23:56       ` Robert Dewar
1995-01-08  8:04         ` Jay Martin
1995-01-06  0:07       ` Michael M. Bishop
1995-01-10 21:30         ` Jay Martin
     [not found] <3etund$hnr@miranda.gmrc.gecm.com>
1995-01-12  9:56 ` Erik Svensson
1995-01-12 14:44 ` Norman H. Cohen
1995-01-13  1:51 ` David O'Brien
1995-01-13 12:38   ` Laurent Gasser
1995-01-13 20:53     ` John DiCamillo
     [not found]       ` <3f8fnf$c8p@gamma.ois.com>
1995-01-16 11:02         ` Matt Kennel
     [not found]         ` <milodD2IFpG.329@netcom.com>
1995-01-17 21:39           ` R. William Beckwith
     [not found]       ` <3fa11q$sdh@gnat.cs.nyu.edu>
1995-01-16 20:20         ` David Moore
1995-01-14  0:24     ` David O'Brien
1995-01-20  4:43     ` Samuel Mize
1995-01-21 20:28       ` David O'Brien
1995-01-22 21:12         ` Robert Dewar
1995-01-23 18:35         ` Norman H. Cohen
1995-01-23 19:18         ` John Cosby - The Coz
1995-01-24 14:11         ` Samuel Mize
1995-01-14 10:37   ` Keith Thompson
     [not found]     ` <3fcjgt$b0v@cronkite.seas.gwu.edu>
1995-01-16 18:47       ` Robert Dewar
     [not found]   ` <D2It0r.4rp@inmet.camb.inmet.com>
1995-01-17 14:11     ` Norman H. Cohen
     [not found] <3fdcoi$chn@miranda.gmrc.gecm.com>
1995-01-20  5:01 ` Samuel Mize
1995-01-20 22:07   ` Garlington KE
1995-01-24  5:02     ` R_Tim_Coslet
     [not found] <3fgphd$sc3@rational.rational.com>
1995-01-20  5:51 ` RonaldS60
1995-02-07 13:55   ` Robert C. Soong
  -- strict thread matches above, loose matches on Subject: below --
1995-01-20  9:33 R.A.L Williams
1995-01-20 10:20 R.A.L Williams
1995-01-20 13:22 ` Renaud HEBERT
1995-01-24  3:35   ` David Moore
1995-01-25  5:38     ` Robert Dewar
1995-01-28 16:35     ` Jules
1995-01-29  8:06       ` Matt Kennel
1995-01-30  5:31       ` Michael Feldman
1995-01-31 22:22         ` David O'Brien
1995-01-24 20:23   ` N. Mellor
1995-01-25  8:50     ` Robb Nebbe
1995-01-25 14:19     ` John Volan
1995-01-26  5:07     ` Samuel Mize
1995-01-26 18:51       ` Mark A Biggar
1995-01-21 15:18 ` Robert Dewar
1995-01-21 21:03 ` David O'Brien
1995-01-23  3:09   ` Jay Martin
1995-01-23 12:50     ` Andrew McConnell
1995-01-24  0:54     ` Matt Kennel
1995-01-25 17:03       ` Norman H. Cohen
1995-01-26  1:13         ` Dr. Richard Botting
1995-01-26 14:32         ` Anders Juul Munch
1995-01-24  0:17   ` Bob Kitzberger
1995-01-23 20:46 ` Robert Firth
1995-01-24 14:25   ` Samuel Mize
1995-01-25  7:27     ` David O'Brien
1995-01-25 12:14     ` Robert A Duff
1995-01-25  5:57   ` David O'Brien
     [not found]     ` <3g9rf0$71k@Starbase.NeoSoft.COM>
1995-01-28 21:08       ` David O'Brien
1995-01-31 18:07         ` Samuel Mize
1995-02-01 10:23         ` Samuel Mize
1995-01-30  0:24     ` Mark S. Hathaway
1995-01-31  3:30       ` Jay Martin
1995-02-01 13:25         ` Jesper Kaagaard
1995-01-23  8:49 R.A.L Williams
1995-01-25 23:18 ` Charles H. Sampson
1995-01-31  9:34 R.A.L Williams
1995-02-01 16:45 ` Charles H. Sampson
     [not found] <3gsr0e$oin@miranda.gmrc.gecm.com>
1995-02-07 16:58 ` Mark S. Hathaway
1995-02-08  7:39   ` Travis C. Porco
1995-02-08 16:07     ` Fred J. McCall
1995-02-08 21:30       ` Garlington KE
1995-02-10 13:49 R.A.L Williams
replies disabled

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