TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

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

Print Reply
Sender:
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
X-To:
"Alexandre E. Kopilovitch" <[log in to unmask]>
Date:
Sat, 7 Dec 2002 00:16:02 -0500
Reply-To:
David Botton <[log in to unmask]>
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
7bit
Content-Type:
text/plain; charset="iso-8859-1"
From:
David Botton <[log in to unmask]>
Parts/Attachments:
text/plain (114 lines)
I use Ada for the same purposes as you use C++. Being fluent in both
dialects, I find that use of Ada is a superior choice for prototyping and
early design thanks to (but not only thanks to) its higher level language
support for tasking, flexible partitioning both with in and out of the OO
paradigm of code and exception handling (of course C++ does support this
particular feature). Even when required to develop a project in C++, I
usually write the prototypes in Ada and all the test code in Ada. This way
when I write the C++ version it looks like Ada code, designed not hacked :-)

The strong typing not only doesn't prevent me from moving making progress,
but it insures that when I make a change to the class/type it doesn't slip
by the compiler.

While true, C++ was designed for fun (so says its creator) and Ada for
engineering, I find that Ada works equally well for "playing around" or XP
(as in Extreme, not the broken OS) style development.

David Botton



----- Original Message -----
From: "Alexandre E. Kopilovitch" <[log in to unmask]>


> >>... 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
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