TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Classic View

Use Monospaced Font
Show HTML Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Carlisle Martin C Dr USAFA/DFCS <[log in to unmask]>
Fri, 6 Dec 2002 07:36:33 -0700
text/plain (83 lines)
I don't understand this claim at all.  Ada 95 can do object oriented
programming just as well as C++, with perhaps the exception of multiple
inheritance, for which I've never found a true need.

----------------------------------------------------------------------------
------
Martin C. Carlisle, PhD
Associate Professor and Advisor-in-Charge
Department of Computer Science
United States Air Force Academy


-----Original Message-----
From: Alexandre E. Kopilovitch [mailto:[log in to unmask]]
Sent: Thursday, December 05, 2002 7:49 PM
To: [log in to unmask]
Subject: Re: Future of Ada


>>... Ada insists that domain expertise must be at hand from the very
>>beginning of a project, as a prerequisite - that is, Ada do not
>>forgive those who need a learning curve in the domain area during the
>>program development. With C/C++ the situation is different - without
>>prior domain expertise (but with generally good programmers) you are
>>likely get significant delay of the project and uncertain quality of
>>the code, but not an inevitable crash as it probably would be with
>>Ada.
>>   So for those who fear that they can't support the project from its
>>very beginning with good domain expertise, the choice in favour of C++
>>may be indeed justified.
>
>I find it very difficult to understand what you could possibly be
>talking about here.  I have never heard of any way in which there is
>less risk with
>C++ than with Ada.  In all the programs I know about the risk is
>C++ typically
>an order of magnitude higher with C++ than with Ada.
>
>...
>
>Would you care to explain your point?

Well, I'll try. The difficulty is that I can't, in principle, present a
concrete example. If a problem has good description then of course, Ada is
better, safer etc. language for it then C++. And if you believe that
programming always follows satisfactory description of the problem then you
surely will not see my point. But in my experience, in many real cases
programmers aren't provided with such a description, and are forced to
explore the domain area themselves, and at the same time they must
demonstrate their progress in coding.
  In that situation, C++ is better both pragmatically and theoretically. The
pragmatic benefits are, I think, quite obvious; but the theoretical
difference needs an explanation, I agree. In my opinion, the difference is
in that C++'s basic paradigm is class/object, which is an adequate notion
for direct simulation. We can simply model every visible real entity kind
with a class, and then play with those classes/objects. It is important that
we may freely add new classes to our pyramid, inherit from them, make
"friends", etc. In other words, we can go ahead, "make progress". As partial
description of the problem becomes available, we may (and usually do)
reflect our acquired knowledge in some "design", but anyway we may go ahead.
  But with Ada the picture is rather different. The strength of Ada typing
system is useless because we know too little about the types we need in near
future. And what is Ada package - which real thing it corresponds? So, if we
don't know enough about the problem then all Ada's major tools become
useless. Ada facilitates stratification of the "problem space"; that is
strategic advantage when we have enough (perhaps, informal) knowledge about
the problem, but if not - then we are forced to model/simulate the reality
directly, and Ada do not facilitate that as conveniently as C++.

>I know of one program that was scrapped several times because they
>insisted (each time) on doing it with C/C++.  I have never heard of a
>program that failed because it was being done in Ada.

I think that most people (concerned with the choice) intuitively feel that
Ada isn't a proper tool for programming in high uncertainity within a
problem statement, and do not even try - so there should not be failures
caused by Ada.


Alexander Kopilovitch                      [log in to unmask]
Saint-Petersburg
Russia

ATOM RSS1 RSS2