comp.lang.ada
 help / color / mirror / Atom feed
From: dweller@Starbase.NeoSoft.COM (David Weller)
Subject: Re: Is Ada the future? [was: Is C++ the future?]
Date: 3 Oct 1994 19:29:57 -0500
Date: 1994-10-03T19:29:57-05:00	[thread overview]
Message-ID: <36q7m5$4ef@Starbase.NeoSoft.COM> (raw)
In-Reply-To: milodCx47ys.HxB@netcom.com

In article <milodCx47ys.HxB@netcom.com>,
John DiCamillo <milod@netcom.com> wrote:
>dweller@Starbase.NeoSoft.COM (David Weller) writes:
>>In article <cppCx20IA.Anx@netcom.com>, Robin Rowe <cpp@netcom.com> wrote:
>>><< In the meantime, I have a responsibility to write reliable software.  
>>>Ada 9X does that for me in ways that C++ folks are now only dreaming 
>>>about. >>
>>>What Ada 9X dreams am I supposed to be having? How about a 
>>>list of ways that Ada 9X can make more reliable software 
>>>than C++?
>>Is this a serious question?
>
>If it wasn't I'll second it and make it one.
>
>>	Range checking,
>Trivially provided in C++ classes that need it.
>
We must have wildly different opinions of "trivial" then.  The
problem with C++ is that it requires the programmer to write
defensively.  "Caveat hackus", if you will.  Type checking, for
instance, is provided only at the class level.  It's not possible to
create an integer of type Oranges and one of Apples without artificially
mashing them into classes and then going through an array of gyrations 
to overload all operations.  The typedef is merely a synonym, 
not a new type.  This is so fundamental to the difference 
between Ada and C++ that I dare say it's the root
of misunderstanding between the two "camps" (if one feels compelled
to segregate the two -- I write in both languages, so I guess I'm a
pariah :-).  The fundamental issue is this: Ada starts from the side
of reliability and requires the programmer to unravel the safety
where needed.  C++ starts from the side of "flexibility" (lack of
safety, depending on your perspective :-) and forces the programmer
to wrap up their nugget of data (members) with a layer of protection
(classes). 

>>	Type checking within generics,
>C++ provides this for every definition of that
>phrase that I can think of.  I can only assume
>that you mean something else.  Please elaborate.
>
Templates:   Grrrrr.   Write a class template.  Then repeat the
template parameters _everywhere_.  Repeat them in your parameter
lists, repeat them in your member functions, repeat them in your
declarations.  "Ad naseum" is an understatement.  What's that got to
do with reliability?  Not a damn thing, but it makes a BIG difference
in readability.

Again, type checking is loose, both in creation and elaboration of
templates.  I owe you a better explanation on this one, but I'm short
on time right now (should be doing my work on the Booch Component
translation).

>>	safe pointers
>Can be provided, but not legislated.  In any
>case, for programs of more than trivial com-
>plexity, raw pointers are generally wrapped
>in safe classes.  The real problem is refer-
>ences to temporaries.
>
No.  As an Ada person, I see "The Real Problem" as being that C++ is
horribly unsafe.  Wrap a pointer in a class and protect it?  Well, so
much for simplicity....

As for references to temps...well, I'm just happy I'm working with a
language that has a little better definition of "closure" :-)

>>	etc.
>Oh, now *this* one is *definately* provided
>by C++.  In spades! ;->  More seriously,
>have ya got anything else?
>
Yes, but out of time (as mentioned before).  I _do_ owe you a better
explanation (I sure wouldn't be convinced by my reply here alone).
Maybe others can chime in without letting this turn into a language
flamewar (I know, I'm probably asking too much :-)

Before you think I'm a rabid C++ hater -- I sometimes find the
"flexibility" of C++ liberating.  I don't, however, recommend it over
Ada 9X.


-- 
Proud (and vocal) member of Team Ada! (and Team OS/2)        ||This is not your
   	      Ada -- Very Cool.  Doesn't Suck.               ||  father's Ada 
For all sorts of interesting Ada tidbits, run the command:   ||________________
"finger dweller@starbase.neosoft.com | more" (or e-mail with "finger" as subj.)
   ObNitPick: Spelling Ada as ADA is like spelling C++ as CPLUSPLUS. :-) 



  reply	other threads:[~1994-10-04  0:29 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-09-29 20:08 Is Ada the future? [was: Is C++ the future?] John DiCamillo
1994-09-30 13:45 ` David Weller
1994-10-01 21:40   ` John DiCamillo
1994-10-03  9:53     ` Robert I. Eachus
1994-10-03 20:41       ` John DiCamillo
1994-10-04  8:41         ` Robb Nebbe
     [not found]           ` <85C825A689A@annwfn.com>
1994-10-13 14:40             ` John Volan
1994-10-13 21:14               ` Matt Kennel
1994-10-14  0:37                 ` Robert Dewar
1994-10-14 10:16                 ` Robb Nebbe
1994-10-14 20:43                   ` Bob Duff
1994-10-13 22:01           ` Val Kartchner
1994-10-14  1:38             ` Robert Dewar
1994-10-14  9:31             ` Robb Nebbe
1994-10-14 16:16               ` Child packages [nn,pedo,incest,cons] Robert Firth
1994-10-14 17:13                 ` Robert I. Eachus
1994-10-17  8:18                   ` Robb Nebbe
1994-10-17 11:52                     ` Robert I. Eachus
1994-10-17 21:54                       ` Bob Duff
1994-10-18 10:30                       ` Child packages Robb Nebbe
1994-10-18  9:37                         ` Robert I. Eachus
1994-10-18 19:09                           ` Robert Dewar
1994-10-19 11:03                             ` Robert I. Eachus
1994-10-19 16:24                               ` Norman H. Cohen
1994-10-19 23:13                                 ` Robert Dewar
1994-10-20 14:06                                   ` Norman H. Cohen
1994-10-20 11:09                                     ` Robert I. Eachus
1994-10-20 19:02                                       ` Benjamin Ketcham
1994-10-20 17:08                                         ` Robert I. Eachus
1994-10-20 16:37                                     ` Bob Duff
1994-10-20 16:40                                       ` Bob Duff
1994-10-21 14:02                                       ` Mark Biggar, 5172
1994-10-21  8:48                                     ` Robb Nebbe
1994-10-19 18:54                               ` Robert Dewar
1994-10-20  0:27                               ` Matt Kennel
1994-10-20  8:21                                 ` Magnus Kempe
1994-10-20 13:52                                 ` John Volan
1994-10-19 16:19                             ` Norman H. Cohen
1994-10-04 14:44         ` Is Ada the future? [was: Is C++ the future?] Robert Dewar
1994-10-04 15:53           ` Richard Kenner
     [not found] ` <36h4pc$9dd@starbase.neosoft.com>
1994-09-30 20:15   ` Benjamin Ketcham
1994-10-02 16:30   ` Robin Rowe
1994-10-02 18:00     ` David Weller
1994-10-03 15:55       ` Netspeak: What is "trolling"? Norman H. Cohen
1994-10-03 17:04         ` Kenneth Aubey 913-4481
1994-10-03 21:06       ` Is Ada the future? [was: Is C++ the future?] John DiCamillo
1994-10-04  0:29         ` David Weller [this message]
1994-10-04 17:42           ` John DiCamillo
1994-10-05  8:18             ` Magnus Kempe
1994-10-05 13:49             ` Tucker Taft
     [not found]         ` <36q7m5$4ef@starbase.neosoft.com>
1994-10-04 17:55           ` Robin Rowe
1994-10-04 22:42         ` Tucker Taft
1994-10-03  9:22     ` Andrew Lees
1994-10-03 21:31       ` John DiCamillo
1994-10-04 23:29         ` John DiCamillo
1994-10-05  3:52           ` Robin Rowe
1994-10-05 13:15             ` Robert Dewar
1994-10-05 13:54           ` David Weller
     [not found]             ` <36uhnl$4c1@gnat.cs.nyu.edu>
     [not found]               ` <37dp17$gp6@goanna.cs.rmit.oz.au>
1994-10-11 13:37                 ` Robert Dewar
1994-10-19 11:24               ` Stephen J Bevan
1994-10-19 15:51                 ` Robert Dewar
1994-10-25 12:21                   ` Stephen J Bevan
1994-10-05 17:08           ` Ted Dennison
     [not found]     ` <36msgr$qq2@starbase.neosoft.com>
1994-10-04  7:21       ` Ada compared to C++ Robin Rowe
1994-10-05  6:44         ` Bob Kitzberger
1994-10-05 12:02           ` Robert Dewar
1994-10-05 18:20           ` Bob Kitzberger
1994-10-05  8:44         ` Magnus Kempe
1994-10-05 19:55           ` David Weller
     [not found]   ` <1994Oct6.133002.1@rapnet.sanders.lockheed.com>
1994-10-16  3:30     ` Mark S. Hathaway
replies disabled

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