The environment that you mention (uncertain and/or changing requirements)
is one that I work in every day. I have successfully and productively
used Ada in that environment and find it much superior to C++, which I
have also used. It sounds like there may be a misunderstanding of OO
Sandia National Labs
These are my opinions only and do not reflect the opinion or position
of my employer.
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
>>those who need a learning curve in the domain area during the program
>>With C/C++ the situation is different - without prior domain expertise
>>with generally good programmers) you are likely get significant delay of
>>project and uncertain quality of the code, but not an inevitable crash as
>>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
>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 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
example. If a problem has good description then of course, Ada is better,
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
with such a description, and are forced to explore the domain area
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
needs an explanation, I agree. In my opinion, the difference is in that
basic paradigm is class/object, which is an adequate notion for direct
We can simply model every visible real entity kind with a class, and then
with those classes/objects. It is important that we may freely add new
to our pyramid, inherit from them, make "friends", etc. In other words, we
go ahead, "make progress". As partial description of the problem becomes
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
Ada facilitates stratification of the "problem space"; that is strategic
advantage when we have enough (perhaps, informal) knowledge about the
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
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
Alexander Kopilovitch [log in to unmask]