From: stef@cfmu.eurocontrol.be (Stef Van Vlierberghe)
Subject: User-defined assignment
Summary: If you don't ask, you probably don't get it
Originator: stef@heron
Date: Fri, 16 Oct 92 11:58:05 GMT
Organization: Eurocontrol - Central Flow Management Unit
Keywords: User-defined assignment, ":=", finalization, data abstraction

A personal opinion on the status of user-defined assignment and Ada9X.

In April ISO-WG9 decided that  user-defined  assignment is too costly,
without having a "reasonable" technical proposal.

To my knowledge, the most important technical proposal previously made
was the one by B.  Brosgol  and J-L  Gailly, 20  December  1989.  This
went as far as supporting  user-defined assignment on scalar types and
the use of this feature to get "automatic" type conversion whenever an
assignment  exists that can copy one type to another (as  requested by
the recent  post 'can I overload  ":="').  Needless  to point out that
this is not technically "reasonable".

In June I submitted a proposal for  user-defined  equality,  finalize,
assignment to the Mapping Revision Team (comment 92-1165.a).

Since then I have been adapting this proposal to the various  comments
I got, and most of the  technical  reactions  can be  summarized  to a
recent comment I got from the Mapping Revision Team (Bob Duff) :

: No, I didn't find any "serious"  problems  with your  proposal.  Maybe
: some minor  ones, but  that's  not  important.  What IS  important  is
: whether  we  spend  time  defining  a  user-defined   assignment   and
: finalization.  You think  it's very  important  that we do.  I think I
: agree.  But  most  others,  including  the  majority  of WG9  and  the
: majority of the DRs, think it's a waste of time.

In my humble opinion, WG9 is (too?)  biased towards the hard real time
market  needs.  The  majority  doesn't  care  about how  happy the C++
community is with their  user-defined  assignment, just as they didn't
care about OO programming some years ago.

A quote from a C++ user (Bob Martin) :

: If you ask my  opinion,  the  ability to  redefine  assignment  for an
: abstract  data type is critical to defining a usable  interface.  Copy
: semantics  are almost never trivial for complex  classes.  Some method
: needs to be specified  for  allowing  users to make copies of objects,
: and to assign objects.

With the variable sized data in mind, I find it hard to disagree.

Now the matter was recently re-raised by LSN-1046 (on Finalization) :

: All of this means that any finalization proposal must either prevent
: copies (i.e. limited type), or must allow the user to define the
: semantics of the copy (i.e. user-defined assignment).

I am seriously  concerned  about Ada's future if it fails to appeal to
the  scientific  information  systems and soft real time market.  Some
people may believe this is a lost cause, but I am convinced that Ada's
security would become *very* attractive if it could compete with C++'s
programmer support.

Perhaps  things  might  improve if those of you that really care about
this issue would voice explicit support for user-defined assignment.  

Ideally you would submit a comment to ada9x-mrt@inmet.com, then it will
get filed in their database, and forwarded to DRs and ISO delegates. As
these comments are processed automatically, they have to start with the
following header :

!topic User defined assignment
!reference MS-5.2,7.4.1,7.4.5;4.0
!discussion
-- 
Stef VAN VLIERBERGHE            Eurocontrol - Central Flow Management Unit
stef@cfmu.eurocontrol.be        Avenue des Arts 19H
Tel: +32 2 729 33 42            B-1040 BRUSSELS
Fax: +32 2 729 32 16            Belgium
Newsgroups: comp.lang.ada