TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Monospaced Font
Show HTML 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:
Dale Stanbrough <[log in to unmask]>
Date:
Thu, 8 Oct 1998 21:31:49 -0700
Reply-To:
Subject:
From:
Gene Ouye <[log in to unmask]>
Content-Transfer-Encoding:
7bit
In-Reply-To:
<l03130302b242ecfbc504@[131.170.27.23]>
Content-Type:
text/plain; charset="iso-8859-1"
MIME-Version:
1.0
Parts/Attachments:
text/plain (92 lines)
Good list Dale!

but just one nit:
>  (do you know the syntax for an array of entries to a task?).

Several years ago I learned the hard way that it's really a "family of
entries" not "array of entries" when I publicly described the use of "an
array of task entries" in something I wrote.  It looks like an duck, and it
quacks like a duck, but it's not a duck.

So the name of the construct is probably just as likely to be unknown as its
syntax.  ;-)

GeneO.

-----Original Message-----
From: Team Ada: Ada Advocacy Issues (83 & 95)
[mailto:[log in to unmask]]On Behalf Of Dale Stanbrough
Sent: Thursday, October 08, 1998 3:47 PM
To: [log in to unmask]
Subject: Re: Ada Pros and Cons


Some disadvantages of Ada are...


* Lack of recursive types across packages. This means that you have to
  package things in the same package, or resort to unchecked_conversion,
  (which works, but is fighting the type system, rather than it helping
   you).

* Privacy is based on the location of an item in a package, rather than
  on a per item basis, which results in contortions to achieve various
  coding styles.

* Lack of freely available garbage collector for implementations.
  This really restricts the coding style to assuming that there is no
  garbage collector.

* No easy to use multiple inheritance/interfaces. Yes I know you can use
  generic mixins, but I've always found the results more indirect than
  using solutions in other languages.

* Stream stuff seems rather obscure. Teaching this to students is a matter
  of constantly introducing new, strange syntax.

        (for X'Write use Procedure_Name);
        (X'Write (Stream, item);

* Exception handling is rather schizophrenic. You can use the standard
stuff,
  or you can use the Ada.Exceptions package.
  Also exceptions seem rather limited compared to Java & C++, where you can
  throw arbitrary objects. I know Tucker Taft says this is possible in Ada
  for an implementation can provide a root object which can be derived from,
  but no one has yet).

* Lack of clearly defined constructors that don't perform copying (you can
  use functions, but I think they copy the newly created value, which seems
  rather pointless to me).

* Weird syntax to enforce initialisation

        (type must_initialize (<>) is private; !!!)

* There is a _lot_ of syntax, which makes writing tools difficult.
  ASIS should help this, but one project using it reported a _large_
learning
  curve in using it. This puts it out of scope for a tools company that
could
  consider porting their Java/C++ tools to Ada.
  (do you know the syntax for an array of entries to a task?).



Not specifically Ada language...

* Lack of bindings

* Lack of interest by students.
  Curiously many students quite like Ada, and find it easy to get things
done
  in it, but still see no future in it.

* I still quite like object.action notation. I think it reads better.



"All languages suck. Some just suck less than others".

Dale

ATOM RSS1 RSS2