Version 1.1 of acs/ac-00221.txt

Unformatted version of acs/ac-00221.txt version 1.1
Other versions for file acs/ac-00221.txt

!standard 2.9(2/3)          12-01-06 AC95-00221/00
!class confirmation 11-06-17
!status received no action 11-06-17
!status received 11-05-04
!subject "Some" should not be reserved
!summary
!appendix

From: Robert Dewar
Sent: Wednesday, May  4, 2011  3:25 PM

> Dear members of the U.S. Delegation to WG9,
>
> This message is mainly for the U.S. Delegation to WG9, but ARG members
> from other countries can feel free to follow suit.  I would like to
> send the following message to WG9, as an official communication from
> the U.S. Delegation.

Could members of the US delegation indicate whether they agree with this
message.

> ----------------
>
> To WG9:
>
> We wish to reconsider the decision to make "some" a reserved word in
> Ada 2012.  It should be a non-reserved keyword instead.
> Of course, compilers could issue a warning if "some" is used as an
> identifier.
>
> We understand that some people find non-reserved keywords distasteful,
> and this new concept does indeed complicate the language (very
> slightly!).  However, we believe that compatibility concerns should
> trump such matters of taste.
>
> We have found several occurrences of "some" as an identifier in
> existing Ada code.  In some environments, changing things like that
> (indeed, making ANY change) is a serious problem.

***************************************************************

From: Bob Duff
Sent: Wednesday, May  4, 2011  3:29 PM

> Could members of the US delegation indicate whether they agree with
> this message.

I agree with it (which shouldn't surprise you!).

***************************************************************

From: Tucker Taft
Sent: Wednesday, May  4, 2011  3:37 PM

I am neutral, so I guess I will abstain.

This feels like it was argued and settled, and I thought you couldn't reopen
things like this unless you originally voted with the majority.  My sense is
that the US delegation wanted "some" to be an unreserved keyword from the
beginning, and got outvoted.

***************************************************************

From: Edmond Schonberg
Sent: Wednesday, May  4, 2011  3:37 PM

> Could members of the US delegation indicate whether they agree with
> this message.

I certainly agree.

***************************************************************

From: Randy Brukardt
Sent: Wednesday, May  4, 2011  3:42 PM

...
> Could members of the US delegation indicate whether they agree with
> this message.

Yes, I agree with the message. I'm not sure I agree with sending it, though.
(More below.)

...

Data point: "Some" is used extensively as a parameter name in the Janus/Ada
compiler.

The problem I have with this is that the US made exactly this argument when this
topic came up the last time. (Not just that, but the AI was written up that way,
with this justification.) And a formal WG 9 vote was taken (a rarity at WG 9),
and only the US supposed the proposition. I can't quite imagine what has changed
in the interim that would change the results.

***************************************************************

From: Bob Duff
Sent: Wednesday, May  4, 2011  4:37 PM

> The problem I have with this is that the US made exactly this argument
> when this topic came up the last time. (Not just that, but the AI was
> written up that way, with this justification.)

I've no opinion on that point.

>...And a formal WG 9 vote was taken (a
> rarity at WG 9), and only the US supposed the proposition.

I'm amazed.  It seems completely irresponsible to put a completely gratuitous
incompatibility in the standard.  So all countries but one are completely
irresponsible?!

>...I can't quite
> imagine what has changed in the interim that would change the results.

Nothing, other than people might change their minds.  Maybe somebody worried
that non-reserved keyword are hard to implement.  As a compiler writer, I know
that's not true.

***************************************************************

From: Tucker Taft
Sent: Wednesday, May  4, 2011  4:50 PM

>> ...And a formal WG 9 vote was taken (a rarity at WG 9), and only the
>> US supported the proposition.
>
> I'm amazed.  It seems completely irresponsible to put a completely
> gratuitous incompatibility in the standard.  So all countries but one
> are completely irresponsible?!

It wasn't considered "gratuitous."  The idea of an "unreserved keyword" was
considered "unpleasant" in various ways, and not something that should be added
to Ada.

>> ...I can't quite
>> imagine what has changed in the interim that would change the results.
>
> Nothing, other than people might change their minds.  Maybe somebody
> worried that non-reserved keyword are hard to implement.  As a
> compiler writer, I know that's not true.

It wasn't a question of implementability.  It was a question of long-term
understandability, I believe.  I think the PL/I disaster with unreserved
keywords probably still weighs a bit on people's minds.

I would have been happy with either decision, but since WG-9 has already weighed
in, I really don't see the point of reopening the discussion.  And I think good
old Roberts' Rules really requires that someone who originally opposed
unreserved keywords be the one who re-opens such a discussion.

***************************************************************

From: Randy Brukardt
Sent: Wednesday, May  4, 2011  4:54 PM

> >...And a formal WG 9 vote was taken (a  rarity at WG 9), and only the
> >US supported the proposition.
>
> I'm amazed.  It seems completely irresponsible to put a completely
> gratuitous incompatibility in the standard.  So all countries but one
> are completely irresponsible?!

I'm not going to touch that with a ten-foot pole. :-)

The minutes of the June 2010 WG 9 meeting says on this topic:

Canada and France have asked for reconsideration of this AIs. The concern here
is adding a non-reserved keyword (some) that appears to go against the basic
principles of Ada.  This makes a special case for a single unreserved keyword.
What makes this different from 'delay until' that we introduced in the past.
Similarly, with 'protected'.  Do not think that this will be popular with the
user community.

UK - a number of attendees at the conference this week have indicated that it
seems strange. They would prefer this to be a reserved word and allow the user
community to make the changes as necessary.

Another issue is the identification of the special unreserved word in tools.

Germany - the need to make all of the tool vendors to be able to identify the
single unreserved keyword in code is exceptional. A user can do a global edit to
address the use of `some' within existing code.

Belgium - the entire community has been through this exercise with `protected'
and `until'.

US - you would be surprised.  The user community is very slow to make the change
to existing code.  The issue is really between tool writers vs users.

-------------------

> >...I can't quite
> > imagine what has changed in the interim that would change the results.
>
> Nothing, other than people might change their minds.  Maybe somebody
> worried that non-reserved keyword are hard to implement.  As a
> compiler writer, I know that's not true.

I don't see anything about implementation costs in the above, other than in
tools (not in compilers).

I would guess the likelihood on anyone changing their minds is about 0.001%. We
tried to add unreserved keywords in Ada 2005 (and got this rejection from WG 9)
and I recall that you guys did the same in Ada 95 (with the same result). You'd
think we'd eventually learn that this particular wall is not falling down...

***************************************************************

From: Robert Dewar
Sent: Wednesday, May  4, 2011  6:11 PM

> This feels like it was argued and settled, and I thought you couldn't
> reopen things like this unless you originally voted with the majority.
> My sense is that the US delegation wanted "some" to be an unreserved
> keyword from the beginning, and got outvoted.

Let's see if we can get some other delegation to move for a reconsideration.
France perhaps? JPR, what's your view on this?

***************************************************************

From: Robert Dewar
Sent: Wednesday, May  4, 2011  6:13 PM

> It wasn't considered "gratuitous."  The idea of an "unreserved
> keyword" was considered "unpleasant" in various ways, and not
> something that should be added to Ada.

Putting unpleasant ahead of incompatible, is a huge mistake, and the resulting
incoimpatibility would indeed be gratuitous.

> It wasn't a question of implementability.  It was a question of
> long-term understandability, I believe.  I think the PL/I disaster
> with unreserved keywords probably still weighs a bit on people's minds.

First of all, who says it was a disaster, I don't know PL/I programmers who
found it a disaster, I certainly did not when I wrote in PL/I. Yes language
theoreticians could exhibit nasty cases, but so what, in practice this worked
fine.

***************************************************************

From: Jean-Pierre Rosen
Sent: Thursday, May  5, 2011  12:39 AM

> Let's see if we can get some other delegation to move for a
> reconsideration. France perhaps? JPR, what's your view on this?

Personnally, I don't like unreserved keywords, although I could live with them.
Formally, this has to be discussed by AFNOR.

I certainly would object to the US delegation submitting this proposal. The rule
that only the winner can ask to reconsider is a very good one, and one that has
been objected to me in several occasions. Breaking the rule just because it
comes from the US would be a political hazard...

Now, to elaborate on my personal feeling:
I don't think Ada needs more features. Ada needs more popularity. The new bells
and whistles (like iterators) may please some existing users, I don't think they
will attract a single new user. One feature that does attract people is the
cleanliness of the definition (ARG members, please stop laughing); for the
casual user, Ada appears as a well engineered language, made for people who want
to make well engineered software. I'm afraid that a single non-reserved keyword
might have a negative effect on that perception, and it will certainly be felt
as an unpleasant kludge in the community.

I am well aware how difficult it is to change anything in the code for some
users; I've seen a client writing /thousands/ of justifications that the
breaking of coding rules was not affecting safety, rather than fixing keywords
to lowercase! But such people are /not/ looking forward to the new Ada features
- they can compile with the -Ada2005 switch (I'm being quite optimistic here,
they are more likely to use -Ada95 or even -ada83 ;-) ). If they bite the bullet
and decide to switch, they can change their variable names as well, and adasubst
can do the fixing automatically.

***************************************************************

From: Robert Dewar
Sent: Thursday, May  5, 2011  3:34 PM

Let me say it again, if you are diligent in maintaining upwards compatibility,
then no bullet-biting is required to move to Ada 2012, you just change your
switches, and then gradually use Ada 2012 features as they become useful to you.

***************************************************************

Questions? Ask the ACAA Technical Agent