comp.lang.ada
 help / color / mirror / Atom feed
From: dvdeug@x8b4e53cd. (David Starner)
Subject: Re: Ada95 Strengths/Weaknesses.
Date: 1999/09/28
Date: 1999-09-28T00:00:00+00:00	[thread overview]
Message-ID: <7spd4c$9ic2@news.cis.okstate.edu> (raw)
In-Reply-To: 7sp914$ago$1@nnrp1.deja.com

In article <7sp914$ago$1@nnrp1.deja.com>, Robert Dewar wrote:
>In article <7smp30$9aa1@news.cis.okstate.edu>,
>  dstarner98@aasaa.ofe.org wrote:
>> * Type safety makes it harder for some stuff to get done -
>> i.e. it's impossible to make a type look exactly like a number
>> in Ada,
>
>That is just a false statement. Unchecked conversion allows you
>to do anything in this area you can do in C++. Yes, some uses
>of unchecked conversion in Ada are implementation dependent,
>but no more so or less so than the corresponding casts in C++.

This has nothing to do with what I was talking about. In C++, I
can write class BigInt, assign integers to it and pass it to templates
expecting numbers. In fact, I can sed s/int/BigInt/g and add include "bigint.h"
to the top of all the files, and the programs will run the same (provided,
of course, that BigInt follows the same semantics as int.) In Ada, I can't
write a template that expects a integer type and pass a BigInt to it. I
can't assign to it from universal integer. In Ada, BigInt can't masquarade
as a number.

>> but trivial in C++.
>
>Two comments: one, yes the syntax is trivial in C++, and this
>is something I would list as a disadvantage of C++, not an
>advantage. It is far too easy to break the type model in C++.

It can be a disadvantage (which I discussed above, which above, which
you snipped), but it can also be an advantage.
>
>> * C++ includes several somewhat experimental features
>> (template specilization,
>> multiple inheritance) that Ada designers considered too
>> experimental or
>> specialized to add.
>
>Well I think you need to give examples here. Many people would
>regard the multiple inheritance in C++ to be a disadvantage for
>three reasons:

>1. The OO model is much cleaner if only single inheritance is
>used, so the semantics is much simpler. This is why many OO
>languages deliberately avoid supporting MI.
>
>2. The MI model in C++ is one of several. Having a specific
>model built into the language is unhelpful if your problem is
>best handled by some different model.
>
>3. In most C++ compilers, you pay a price in distributed
>overhead for this feature, even if you do not use multiple
>inheritance.

#2 is the reason RMS doesn't like OO languages, because the inheritance
model is only one of many, and he prefers to write his own. This could
be extended to many of Ada's features (tasking, templates, exceptions,
functions (why carry around all the extra baggage for recursion if you
don't need it?)).

Frankly, for all your scoffing at it, many people like and use MI. From
a programmer's prospective, not having MI may be a big disadvantage. 

I did point this features out as experimental.

>> Disadvantages vs. C & C++
>> * Large base of installed libraries. If you can find a Ada
>library that does
>> what you need to do (not unlikely, but not as likely as for C
>or C++ - and it's
>> probably a wrapper around a C library), it probably won't come
>precompiled and
>> set up for your system
>
>It seems far preferable to find libraries in source form, for
>many reasons!

Almost anything I download precompiled from Debian just works. If it 
doesn't, I've got someone to complain to. Frequently, I've downloaded
programs and libraries, and deleted them after spending a few hours 
trying to get them to build. If I had to build many of the libraries on
my system, many of them wouldn't be there.

Secondly, my distribution of the C++ game (mentioned in my email about
binary sizes) is 11K. My Ada distribution is 227K. This is because it uses
the MW Components, and I prefer to say "just type make" than "go to http...
and download this and install it here and do this ..." The only Ada library 
I would not ship with my program (and let the end user install it) is gtkada
because I can hopefully rely on an rpm or deb being available. 

David Starner - dstarner98@aasaa.ofe.org




  reply	other threads:[~1999-09-28  0:00 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-27  0:00 Ada95 Strengths/Weaknesses the middleman
1999-09-27  0:00 ` J. David Bryan
1999-09-27  0:00 ` Steve Doiel
1999-09-27  0:00 ` Marin David Condic
1999-09-27  0:00   ` Hyman Rosen
1999-09-28  0:00     ` Robert Dewar
1999-09-28  0:00       ` Preben Randhol
1999-09-28  0:00         ` bill
1999-09-27  0:00           ` Aidan Skinner
1999-09-28  0:00           ` Steve Doiel
1999-09-28  0:00           ` Larry Kilgallen
1999-09-28  0:00           ` Preben Randhol
1999-09-28  0:00     ` Ed Falis
1999-09-28  0:00       ` Hyman Rosen
1999-09-28  0:00         ` Ed Falis
1999-09-28  0:00   ` Preben Randhol
1999-09-27  0:00 ` David Starner
1999-09-28  0:00   ` Robert Dewar
1999-09-28  0:00     ` David Starner [this message]
1999-09-28  0:00       ` Robert Dewar
1999-09-28  0:00         ` Ray Blaak
1999-09-28  0:00     ` David Starner
1999-09-29  0:00       ` Robert A Duff
1999-09-28  0:00   ` Robert Dewar
1999-09-28  0:00     ` Code size of Ada ? was " Alfred Hilscher
1999-09-28  0:00       ` Gautier
1999-09-28  0:00       ` David Botton
1999-09-29  0:00       ` Robert Dewar
1999-09-29  0:00         ` Alfred Hilscher
1999-09-29  0:00           ` Robert Dewar
1999-09-30  0:00             ` Alfred Hilscher
1999-09-30  0:00               ` Robert Dewar
1999-09-30  0:00               ` Gautier
1999-09-29  0:00         ` Larry Kilgallen
1999-09-29  0:00           ` Robert Dewar
1999-09-29  0:00           ` Robert Dewar
1999-09-29  0:00           ` Alfred Hilscher
1999-09-29  0:00             ` Robert Dewar
1999-09-30  0:00               ` Alfred Hilscher
1999-09-30  0:00                 ` Gautier
1999-09-30  0:00                   ` Robert Dewar
1999-09-30  0:00                   ` Robert Dewar
1999-09-30  0:00                   ` Robert Dewar
1999-09-30  0:00                 ` Robert Dewar
1999-09-30  0:00                   ` tmoran
1999-09-30  0:00                   ` Ehud Lamm
1999-09-30  0:00                     ` Robert Dewar
     [not found]                       ` <7t2e1l$lqt2@ftp.kvaerner.com>
     [not found]                         ` <37F91D6E.58685CFE@mitre.org>
     [not found]                           ` <7tf7uo$h2b$1@nnrp1.deja.com>
     [not found]                             ` <37FBA978.A86762F1@mitre.org>
1999-10-18  0:00                               ` Robert Dewar
1999-10-19  0:00                                 ` Code size of Ada ? Robert I. Eachus
     [not found]                           ` <7tf7uo <37FBA978.A86762F1@mitre.org>
     [not found]                             ` <5OkO3.2$1e.659@typhoon.nyu.edu>
1999-10-19  0:00                               ` Code size of Ada ? was Re: Ada95 Strengths/Weaknesses Robert I. Eachus
1999-09-29  0:00             ` Gautier
1999-09-29  0:00               ` Ed Falis
1999-09-29  0:00                 ` tmoran
1999-09-29  0:00                 ` Gautier
1999-09-30  0:00               ` Robert Dewar
1999-09-29  0:00             ` Ted Dennison
1999-09-28  0:00     ` GNAT listing file default names (was: Ada95 Strengths/Weaknesses) Larry Kilgallen
1999-09-28  0:00       ` Gautier
1999-09-29  0:00         ` Robert Dewar
1999-09-29  0:00       ` Robert Dewar
1999-09-29  0:00         ` Larry Kilgallen
1999-09-29  0:00           ` Robert Dewar
1999-09-29  0:00             ` Larry Kilgallen
1999-09-30  0:00               ` Robert Dewar
1999-09-28  0:00     ` Ada95 Strengths/Weaknesses David Starner
1999-09-28  0:00       ` Gautier
1999-09-28  0:00         ` David Starner
1999-09-29  0:00           ` Robert Dewar
1999-09-28  0:00         ` Ed Falis
1999-09-28  0:00           ` David Starner
1999-09-29  0:00           ` Robert Dewar
1999-09-28  0:00       ` p.obry
1999-09-28  0:00         ` David Starner
1999-09-28  0:00           ` Richard D Riehle
1999-09-28  0:00       ` Robert Dewar
1999-09-28  0:00       ` Robert Dewar
1999-09-28  0:00         ` David Starner
1999-09-29  0:00           ` Robert Dewar
1999-09-30  0:00         ` Pragma (was Re: Ada95 Strengths/Weaknesses.) Preben Randhol
1999-09-30  0:00           ` Preben Randhol
1999-09-28  0:00       ` Ada95 Strengths/Weaknesses Ted Dennison
1999-09-28  0:00         ` Simon Wright
1999-09-28  0:00   ` the middleman
1999-09-28  0:00 ` Geoff Bull
1999-09-28  0:00 ` Geoff Bull
1999-09-29  0:00   ` the middleman
1999-09-29  0:00     ` Robert A Duff
replies disabled

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