<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ada83.org/wiki/index.php?action=history&amp;feed=atom&amp;title=J_Ichbiah_mail_20_nov_1992</id>
	<title>J Ichbiah mail 20 nov 1992 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ada83.org/wiki/index.php?action=history&amp;feed=atom&amp;title=J_Ichbiah_mail_20_nov_1992"/>
	<link rel="alternate" type="text/html" href="https://ada83.org/wiki/index.php?title=J_Ichbiah_mail_20_nov_1992&amp;action=history"/>
	<updated>2026-07-26T09:08:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://ada83.org/wiki/index.php?title=J_Ichbiah_mail_20_nov_1992&amp;diff=159&amp;oldid=prev</id>
		<title>Vmo at 12:28, 29 April 2025</title>
		<link rel="alternate" type="text/html" href="https://ada83.org/wiki/index.php?title=J_Ichbiah_mail_20_nov_1992&amp;diff=159&amp;oldid=prev"/>
		<updated>2025-04-29T12:28:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:28, 29 April 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From comp.lang.ada Tue Apr  6 11:03:18 1993&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From comp.lang.ada Tue Apr  6 11:03:18 1993&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l423&quot;&gt;Line 423:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 423:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;P.O. Box 404, Belmont, MA 02178&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;P.O. Box 404, Belmont, MA 02178&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key ada83o_db-wiki:diff:1.41:old-158:rev-159:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Vmo</name></author>
	</entry>
	<entry>
		<id>https://ada83.org/wiki/index.php?title=J_Ichbiah_mail_20_nov_1992&amp;diff=158&amp;oldid=prev</id>
		<title>Vmo: Created page with &quot;&lt;nowiki&gt;  From comp.lang.ada Tue Apr  6 11:03:18 1993 Newsgroups: comp.lang.ada Path: utcsri!newsflash.concordia.ca!uunet!world!srctran From: srctran@world.std.com (Gregory Aharonian) Subject: Ichbiah&#039;s letter to Anderson: Here it is Message-ID: &lt;SRCTRAN.93Apr6103639@world.std.com&gt; Sender: srctran@world.std.com (Gregory Aharonian) Organization: The World Distribution: comp.lang.ada Date: Tue, 6 Apr 1993 15:36:39 GMT Lines: 406      By contacting Dr. Ichbiah, I have recei...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ada83.org/wiki/index.php?title=J_Ichbiah_mail_20_nov_1992&amp;diff=158&amp;oldid=prev"/>
		<updated>2025-04-29T12:28:06Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;nowiki&amp;gt;  From comp.lang.ada Tue Apr  6 11:03:18 1993 Newsgroups: comp.lang.ada Path: utcsri!newsflash.concordia.ca!uunet!world!srctran From: srctran@world.std.com (Gregory Aharonian) Subject: Ichbiah&amp;#039;s letter to Anderson: Here it is Message-ID: &amp;lt;SRCTRAN.93Apr6103639@world.std.com&amp;gt; Sender: srctran@world.std.com (Gregory Aharonian) Organization: The World Distribution: comp.lang.ada Date: Tue, 6 Apr 1993 15:36:39 GMT Lines: 406      By contacting Dr. Ichbiah, I have recei...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From comp.lang.ada Tue Apr  6 11:03:18 1993&lt;br /&gt;
Newsgroups: comp.lang.ada&lt;br /&gt;
Path: utcsri!newsflash.concordia.ca!uunet!world!srctran&lt;br /&gt;
From: srctran@world.std.com (Gregory Aharonian)&lt;br /&gt;
Subject: Ichbiah&amp;#039;s letter to Anderson: Here it is&lt;br /&gt;
Message-ID: &amp;lt;SRCTRAN.93Apr6103639@world.std.com&amp;gt;&lt;br /&gt;
Sender: srctran@world.std.com (Gregory Aharonian)&lt;br /&gt;
Organization: The World&lt;br /&gt;
Distribution: comp.lang.ada&lt;br /&gt;
Date: Tue, 6 Apr 1993 15:36:39 GMT&lt;br /&gt;
Lines: 406&lt;br /&gt;
&lt;br /&gt;
    By contacting Dr. Ichbiah, I have received permission to post his letter&lt;br /&gt;
to Christine Anderson to comp.lang.ada.  Here it is.  While I can&amp;#039;t comment&lt;br /&gt;
on the technical aspects of his letter, from a marketing point of view, Ada9X&lt;br /&gt;
sounds like a disaster.  It may be a great, fantastic language that is under&lt;br /&gt;
development, but if Dr. Ichbiah&amp;#039;s concerns are even partially valid, than&lt;br /&gt;
Ada9X will win even less market share than Ada83.  Upward incompatibility,&lt;br /&gt;
complexity of features, usurping of roles provided by third party packages,&lt;br /&gt;
and stretched out timetables for approval, development and release of new&lt;br /&gt;
compilers?  This is every marketing manager&amp;#039;s nightmare.  And given Jean&amp;#039;s&lt;br /&gt;
involvement with a commercial product oriented company, I would give much&lt;br /&gt;
signifigance to his market impact comments.   Forget about windows of&lt;br /&gt;
opportunity being shut.  They will be shut, boarded up, and wired with&lt;br /&gt;
explosives.&lt;br /&gt;
&lt;br /&gt;
    By the way, does anyone know if the Ada9X effort has a marketing&lt;br /&gt;
subcommittee, a group to look into how Ada is going to survive in the&lt;br /&gt;
non-Mandated world.  I would love to serve on such a committee, but have&lt;br /&gt;
not noticed anything.&lt;br /&gt;
&lt;br /&gt;
Greg Aharonian&lt;br /&gt;
Source Translation &amp;amp; Optimization&lt;br /&gt;
==============================================================================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
~Subject: A Farewell to Ada with null&lt;br /&gt;
~Date: Fri, 20 Nov 92 00:51:25 EST&lt;br /&gt;
~From: Jean D Ichbiah &amp;lt;ichbiah@ajpo.sei.cmu.edu&amp;gt;&lt;br /&gt;
&lt;br /&gt;
~From:       Jean D Ichbiah&lt;br /&gt;
To:         Chris Anderson&lt;br /&gt;
cc:         DRs, VRs, Iso [other Adaphiles]&lt;br /&gt;
&lt;br /&gt;
~subject:    A Farewell to Ada with null&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dear Chris,&lt;br /&gt;
&lt;br /&gt;
For now almost one year, I have tried very hard to work for the&lt;br /&gt;
simplification of Ada 9X.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;From the start, I have been very worried by the massive complexity of the&lt;br /&gt;
9X proposals. As you certainly remember, this is a concern that I have&lt;br /&gt;
expressed to you in earlier correspondance: I was concerned that the&lt;br /&gt;
resulting complexity would lose some users as well as some implementers.&lt;br /&gt;
I was also seeing a risk that the Ada community would not follow if the&lt;br /&gt;
intellectual &amp;quot;distance&amp;quot; and the upward incompatibility were too high.&lt;br /&gt;
&lt;br /&gt;
At the same time I was intrigued by the quality of the individual features&lt;br /&gt;
that were proposed - you indeed selected one of the best feature designers&lt;br /&gt;
and it is unclear that, on a feature-by-feature basis, better could have&lt;br /&gt;
been accomplished.  And I was hoping that the DRs and Iso processes would&lt;br /&gt;
bring a reduction to an acceptable size, to something that is intellectually&lt;br /&gt;
manageable. I was also hoping that it would be ultimately possible to dress&lt;br /&gt;
the new concepts in a simpler, more regular, more attractive, more beautiful&lt;br /&gt;
syntax, which could redeem some of the complexity. And it is fair to say&lt;br /&gt;
that I was encouraged in that hope by a very favorable mail response on the&lt;br /&gt;
network.&lt;br /&gt;
&lt;br /&gt;
It is now time for me to acknowledge that my efforts have failed.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, I have encountered an unusual degree of intolerance to&lt;br /&gt;
outside contributions which meant that more time was spent fighting my&lt;br /&gt;
attempts to improve than analyzing their merits. This was clearly becoming&lt;br /&gt;
counterproductive and at the Iso meeting in Salem, my attempts to simplify,&lt;br /&gt;
supported by 2 and opposed by 2, ultimately lost to 6 courageous abstentions.&lt;br /&gt;
This happened according to the rules and the outcome is not one that can be&lt;br /&gt;
disputed.&lt;br /&gt;
&lt;br /&gt;
Nevertheless, I do not like the current proposal. (Of course, in all&lt;br /&gt;
fairness, I will withhold final judgment until the proposal is final - my&lt;br /&gt;
inveterate, irrational optimism again.)  More than most people, I am driven&lt;br /&gt;
by aesthetic considerations and the strong belief that only beautiful shape&lt;br /&gt;
can be correct shape.  And for me, a striking symbol of the lack of&lt;br /&gt;
aesthetic considerations in the new proposals are contained in the construct&lt;br /&gt;
&lt;br /&gt;
          with null&lt;br /&gt;
&lt;br /&gt;
coldly logic, ultimately ugly - the engineers had it their way and had Ada&lt;br /&gt;
9X become Ada with null.&lt;br /&gt;
&lt;br /&gt;
Alltogether, my impression of the present proposal reminds me of my awe when&lt;br /&gt;
first crossing this bridge in Boston: the Mystic River Bridge. It certainly&lt;br /&gt;
met the requirements but the accumulation and clutter of metal was&lt;br /&gt;
oppressive and threatening and ... my preference will always go to the&lt;br /&gt;
Golden Gate Bridge. The first had engineered features, the second had an&lt;br /&gt;
Architect and a prodigious Architecture with charm.&lt;br /&gt;
&lt;br /&gt;
But my discomfort with the course in which 9X appears to be irreparably&lt;br /&gt;
engaged goes well beyond the aesthetics. I will review the main ones in what&lt;br /&gt;
follows.&lt;br /&gt;
&lt;br /&gt;
THE EXPLOSION OF COMPLEXITY&lt;br /&gt;
&lt;br /&gt;
A massive increase in complexity, will result from 9X adding one or more&lt;br /&gt;
additional possibilities where Ada now offers two. For example, 9X adds:&lt;br /&gt;
&lt;br /&gt;
  *  root types, to types and universal types&lt;br /&gt;
&lt;br /&gt;
  *  aliased, to constant and variable&lt;br /&gt;
&lt;br /&gt;
  *  inherently limited, to limited and not limited&lt;br /&gt;
&lt;br /&gt;
  *  protected types, to subprograms, packages, and tasks&lt;br /&gt;
&lt;br /&gt;
  *  decimal and unsigned types, to integer and real types&lt;br /&gt;
&lt;br /&gt;
  *  access parameters, to in, out, and in out&lt;br /&gt;
&lt;br /&gt;
  *  accessibility and dynamic accessibility, to scope and visibility&lt;br /&gt;
&lt;br /&gt;
  *  accessibility checks, to constraint checks&lt;br /&gt;
&lt;br /&gt;
  *  tagged types, to normal types&lt;br /&gt;
&lt;br /&gt;
  *  dispatched subprogram calls, to normal subprogram calls&lt;br /&gt;
&lt;br /&gt;
  *  use type clause, to use package clauses&lt;br /&gt;
&lt;br /&gt;
  *  barriers, to conditions  ...&lt;br /&gt;
&lt;br /&gt;
Now, if 10 of these interact and with an average 2 possibilities in each&lt;br /&gt;
case, we roughly have 1000 possible interactions in current Ada (that is,&lt;br /&gt;
2**10).  But with 9X, the number of interactions to consider is close to&lt;br /&gt;
60,000 since we have 3 or more possibilities in each case (that is, 3**10).&lt;br /&gt;
As you see, it is very legitimate to talk of an EXPLOSION in complexity if&lt;br /&gt;
it has been multiplied by 60!  Some will argue that an interaction on 10&lt;br /&gt;
planes is unusual.  But even with 5 planes, we get a very significant&lt;br /&gt;
increase by a factor of 8 (since 2**5 is 32, and 3**5 is 243).&lt;br /&gt;
&lt;br /&gt;
Clearly, some of the above extensions are desirable.  But taken altogether&lt;br /&gt;
they result in an undesirable complexity.&lt;br /&gt;
&lt;br /&gt;
EXTRA COMPLEXITY IS OBJECTIONABLE&lt;br /&gt;
&lt;br /&gt;
Extra complexity, to this degree, is very objectionable for implementers and&lt;br /&gt;
the Ada industry.  &lt;br /&gt;
&lt;br /&gt;
On one hand, it will delay and significantly increase the effort of building&lt;br /&gt;
compilers, with the risk that some vendors will drop out of the market.&lt;br /&gt;
(I understand that you intend to relax the validation requirements in the&lt;br /&gt;
short term. But this abandon of the no-subset rule will have Ada lose one &lt;br /&gt;
of its major advantages over competing languages: the high degree of&lt;br /&gt;
compatibility between implementations.)  For the surviving vendors, the&lt;br /&gt;
scale of changes is likely to set them back by several years in terms of&lt;br /&gt;
reliability and performance of implementations.  (Whatever comfort would&lt;br /&gt;
come from the prototype implementations is illusory. They are test-tube&lt;br /&gt;
experiments that have concentrated on certain facets; they have not been&lt;br /&gt;
able to test the interactions of features.)&lt;br /&gt;
&lt;br /&gt;
Moreover, the additional effort required by this complexity will compete for&lt;br /&gt;
resources and thereby prevent the Ada Industry from investing sufficiently&lt;br /&gt;
in interfaces.  I have said it several times before, but it is worth&lt;br /&gt;
repeating:  I consider the lack of interfaces to be the most severe&lt;br /&gt;
impediment to increasing usage of Ada - witness the absence of a credible&lt;br /&gt;
Ada solution for Windows development - and this diversion of resources from&lt;br /&gt;
interfaces severely diminishes the chances for Ada&amp;#039;s long term success.&lt;br /&gt;
&lt;br /&gt;
The extra complexity is equally objectionable from a user&amp;#039;s point of view.&lt;br /&gt;
&lt;br /&gt;
Ada has provided so far an attractive base for software engineering and for&lt;br /&gt;
the development of large reliable programs.  Ada struck at the right level:&lt;br /&gt;
more complex than Pascal - since it offered facilities that the users needed&lt;br /&gt;
- - but not as complex as C++.  So it meant that average programmers could&lt;br /&gt;
develop a level of command of its concepts with which they could develop&lt;br /&gt;
programs whose structure, actions, and consequences they understood and&lt;br /&gt;
mastered - an absolute requirement for reliability.&lt;br /&gt;
&lt;br /&gt;
But this simplicity does not appear to be preserved with the 9X current&lt;br /&gt;
proposals, whose complexity are likely to be beyond that of C++.  And if we&lt;br /&gt;
were to lose the simplicity advantage over C++, what would remain of the&lt;br /&gt;
advantages of Ada?&lt;br /&gt;
&lt;br /&gt;
Finally, the extra complexity is very objectionable because the resulting&lt;br /&gt;
delays severely endanger the chances of positioning Ada in the main stream&lt;br /&gt;
of object-oriented programming.  We run the risk of missing the window of&lt;br /&gt;
opportunity.&lt;br /&gt;
&lt;br /&gt;
THE ILS APPROACH AND MORE DELAYS&lt;br /&gt;
&lt;br /&gt;
The current approach taken for specifying the language is based on the&lt;br /&gt;
so-called ILS (the Integrated Language Specification). The sheer size of the&lt;br /&gt;
document should be a severe warning about the complexity of the current&lt;br /&gt;
proposals:  It is larger than the Ada Reference Manual although it purports&lt;br /&gt;
to describe the changes with respect to this former manual.&lt;br /&gt;
&lt;br /&gt;
But the most striking aspect of the ILS (beyond the size) is the&lt;br /&gt;
uncontrolled proliferation of new jargon, replacing or adding a large number&lt;br /&gt;
of new technical terms.  The developers of the ILS have argued that this is&lt;br /&gt;
a temporary document whose purpose is to specify the changes and that their&lt;br /&gt;
intent is to develop a Revised Reference Manual in the style that has been&lt;br /&gt;
so successful for Ada (83).&lt;br /&gt;
&lt;br /&gt;
On one hand, the level of details covered in the ILS have certainly helped&lt;br /&gt;
in revealing the interactions of the new features and, thereby, their&lt;br /&gt;
complexity.&lt;br /&gt;
&lt;br /&gt;
However, the approach is unlikely to work:  In refining the language&lt;br /&gt;
proposals, the small local decisions are going to be very influenced by the&lt;br /&gt;
terms that are used.  The words we use influence the concepts:  they often&lt;br /&gt;
dictate technical choices that keep the description simple and&lt;br /&gt;
understandable. This has been my experience with the formulation of the&lt;br /&gt;
Green manual, and that of the Ada 80, and Ada 83 reference manuals. The ILS&lt;br /&gt;
approach tries to postpone the difficulty but it will mean that these local&lt;br /&gt;
trade-offs will be done in terms of the ILS jargon and will have to be&lt;br /&gt;
redone when you scale down the terminology to the style of the final&lt;br /&gt;
reference manual.&lt;br /&gt;
&lt;br /&gt;
As this will take a lot of time, the temptation will be to have the&lt;br /&gt;
standard be an ILS-style document.  If this were to happen, Ada would lose&lt;br /&gt;
another of its key advantages - that of having a standard that is readable&lt;br /&gt;
by most programmers, to the degree that compilers formulate error messages&lt;br /&gt;
in terms of sections of the reference manual.  This approach would also lose&lt;br /&gt;
the &amp;quot;intellectual capital&amp;quot; invested by the Ada community in the&lt;br /&gt;
understanding of the Ada definition.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;From where we are now, I regard the current goal of having a draft reference&lt;br /&gt;
manual in June 1993 as unrealistic by at least six to nine months. (Unlike&lt;br /&gt;
Cassandra, I speak here with experience. Like Cassandra, however, I may&lt;br /&gt;
share the dual attributes of being right and not believed.)  The ILS&lt;br /&gt;
approach is actually postponing the moment where the team will be in a&lt;br /&gt;
position to understand the complexity of what they are trying to do, as well&lt;br /&gt;
as the complexity of describing their proposals.  So it is postponing the&lt;br /&gt;
time when they will be able to give a reasonable estimate of completion&lt;br /&gt;
time.&lt;br /&gt;
&lt;br /&gt;
UPWARD INCOMPATIBILITY&lt;br /&gt;
&lt;br /&gt;
I am also worried at the growing level of upward incompatibility of 9X with&lt;br /&gt;
Ada. As a measure of this growing divergence, the list published in the&lt;br /&gt;
November 92 issue of Ada letters contained 12 categories of upward&lt;br /&gt;
incompatibilities.  A more recent list, compiled from the ILS now counts&lt;br /&gt;
some 30 different categories (and this is not just a different&lt;br /&gt;
categorization).  While a small number of them are language improvements&lt;br /&gt;
(for example, the better enforcement of a contract model for generic units)&lt;br /&gt;
many of them reflect an attitude that is too tolerant of upward&lt;br /&gt;
incompatibility (for example, the elimination of accuracy constraints in&lt;br /&gt;
subtypes and that of named notation for operators).&lt;br /&gt;
&lt;br /&gt;
Upward compatibility shoud be addressed much more strictly.  Success of 9X&lt;br /&gt;
will not happen unless it is a superset of current Ada:  Existing compilers&lt;br /&gt;
will have to be maintained for their current applications and the resources&lt;br /&gt;
do not exist to maintain two separate families of compilers.  Moreover, very&lt;br /&gt;
strict upward compatibility is a prerequisite for the strategy of gradual&lt;br /&gt;
introduction of 9X features in existing Ada compilers.&lt;br /&gt;
&lt;br /&gt;
WHAT WAS AND IS NEEDED&lt;br /&gt;
&lt;br /&gt;
What we have seen is a reflection of the inherent inability of committees to&lt;br /&gt;
make choices.  In this respect, it should be no surprise that the decision&lt;br /&gt;
process has led to this overweight since historical precedent of efforts to&lt;br /&gt;
achieve similar consensus have had similar results for other languages&lt;br /&gt;
(PL/I ...). Moreover, we have had to face the unusual situation of a team&lt;br /&gt;
who has been pushing for always more features. The combination has produced&lt;br /&gt;
the current inflation.&lt;br /&gt;
&lt;br /&gt;
With the 9X revision process, we were considering a language revision, as&lt;br /&gt;
opposed to the design of an entirely new language. It seemed therefore, that&lt;br /&gt;
the rules implied that improvements had to be sought within the frame of the&lt;br /&gt;
existing language and with a certain modesty that did not exclude an&lt;br /&gt;
occasional &amp;quot;cadenza&amp;quot; for the revision team.  &lt;br /&gt;
&lt;br /&gt;
In this spirit, the key decision was the choice of ONE major area where the&lt;br /&gt;
revision would decide to concentrate efforts to extend current Ada. The rest&lt;br /&gt;
being a collection of smaller scale - and nevertheless important - decisions&lt;br /&gt;
such as the international character set and various local improvements&lt;br /&gt;
(aggregates, preferences, ...).&lt;br /&gt;
&lt;br /&gt;
Along with many others, I have argued that this area of focus should be the&lt;br /&gt;
Object-Oriented Programming features (including the ability to pass&lt;br /&gt;
subprograms as parameters).  The semantics developed for these features is&lt;br /&gt;
indeed quite attractive (even if the syntax badly needs improvement).&lt;br /&gt;
The priority for OOP comes from a real market requirement - these features&lt;br /&gt;
will attract new users to Ada - and also from the ability to reuse the&lt;br /&gt;
significant work that was done in libraries of classes for C++ and Turbo&lt;br /&gt;
Pascal.  So it is part of the effort to interface Ada with the outside world&lt;br /&gt;
and to reuse software and methods that are developed outside Ada.&lt;br /&gt;
&lt;br /&gt;
If we limited the revision to this level, we could certainly have something&lt;br /&gt;
rather elegant, well in the spirit of Ada, which could be ready within the&lt;br /&gt;
original schedule, and for which implementations could be achieved rapidly&lt;br /&gt;
and in an upward compatible manner.&lt;br /&gt;
&lt;br /&gt;
The current trouble comes from having tried to achieve consensus by&lt;br /&gt;
satisfying all user communities and - in part - this is what has led to the&lt;br /&gt;
proposed plethora of new features and the ensuing complexity. I have argued&lt;br /&gt;
in other places that, since we had to choose, we had to be more modest in&lt;br /&gt;
the area of real-time, perhaps addressing only improvements in the area of&lt;br /&gt;
priority handling.  &lt;br /&gt;
&lt;br /&gt;
The logic behind this choice is that we are dealing with a community that is&lt;br /&gt;
already using Ada for moderately time-critical applications.  When they are&lt;br /&gt;
not using Ada tasking, they are working with some set of packaged real-time&lt;br /&gt;
primitives: Cifo, Extra, Posix, or some other proprietary kernel.  At the&lt;br /&gt;
other end of the spectrum, for extremely time-critical applications, they&lt;br /&gt;
are working with packages of even lower-level primitives.&lt;br /&gt;
&lt;br /&gt;
In most cases, these packaged solutions were adopted because it was&lt;br /&gt;
considered that they offered the best combination of advantages: the Ada&lt;br /&gt;
modularity and reliability, and the real-time primitives offered by the&lt;br /&gt;
package. Moreover, when outside interfacing reasons dictate the choice of&lt;br /&gt;
primitives, such as Posix, nothing that we do in Ada is likely to change the&lt;br /&gt;
approach. Given the level of consensus achieved for these packaged&lt;br /&gt;
approaches in their respective areas, and given the need fore interfacing&lt;br /&gt;
with other languages, it is very unlikely that the corresponding user&lt;br /&gt;
communities would switch to a different approach - even if they found new&lt;br /&gt;
Ada  features to meet their requirements.  Consequently, the Ada industry&lt;br /&gt;
will have to provide support for these packaged approaches regardless of&lt;br /&gt;
what is done by the language revision.&lt;br /&gt;
&lt;br /&gt;
Moreover, the choice of Ada over some competing language such as C or C++&lt;br /&gt;
is not going to depend on the presence of tasking features since these&lt;br /&gt;
competing alternatives do not have any.  On the contrary, the presence in&lt;br /&gt;
9X of features that they do not use could be an argument for not using the&lt;br /&gt;
language as people fear the distributed inefficiencies that are commonplace&lt;br /&gt;
for implementation of new languages (and with the level of change presently&lt;br /&gt;
contemplated, 9X would be a new language to which the fine-tuning that took&lt;br /&gt;
place for Ada in the past ten years would not apply).&lt;br /&gt;
&lt;br /&gt;
So the above considerations show that any effort that we expend on real-time&lt;br /&gt;
features has a low return on investment as far as attracting users to Ada.&lt;br /&gt;
Hence this is an obvious area for substantial reduction.&lt;br /&gt;
&lt;br /&gt;
Others depend more on containing the team&amp;#039;s natural inclination to add more&lt;br /&gt;
features.  I will limit myself to two significant examples.&lt;br /&gt;
&lt;br /&gt;
The first feature is the introduction of discriminant for classes.  This is&lt;br /&gt;
something that exists in no other language that has OOP features, and&lt;br /&gt;
apparently for good reasons when we see the complexity that the interaction&lt;br /&gt;
of classes and discriminants has induced in 9X. Besides complexity, the&lt;br /&gt;
other reason why other languages have avoided discriminants for classes is&lt;br /&gt;
that they are not that useful for the dynamic style of programming that is&lt;br /&gt;
customary for the applications contemplated.  Discriminants serve for static&lt;br /&gt;
parameterization, but the style of programming used for, say windows&lt;br /&gt;
applications, liberally uses dynamic creation and quite justifyably so when&lt;br /&gt;
you consider the decreasing costs of processors.  So this is the domain of&lt;br /&gt;
late binding, of dynamic dispatching, and if you need to have a string, you&lt;br /&gt;
naturally allocate it dynamically (where a static view would have used&lt;br /&gt;
discriminants).  So the inability to sort out objectives, and to choose,&lt;br /&gt;
results in significant complexity without real gain.&lt;br /&gt;
&lt;br /&gt;
The second example is in the area of separate compilation.  Early Ada&lt;br /&gt;
compilers were slow and the need to optimize compilations was very acute.&lt;br /&gt;
Fortunately,  you can now compile well over 100,000 lines in an hour on a&lt;br /&gt;
very low cost machine (a 486) so that this is now a problem of the past.&lt;br /&gt;
But this problem of the past has resulted in the 9X feature of hierarchical&lt;br /&gt;
libraries.&lt;br /&gt;
&lt;br /&gt;
I will argue that this is again unneeded complexity.  First, we have to&lt;br /&gt;
recognize that current Ada already goes much beyond other languages for&lt;br /&gt;
separate compilation of interfaces.  Other languages such as Turbo Pascal&lt;br /&gt;
for Windows do allow a form of package - the Pascal units - but the&lt;br /&gt;
interface and the body are one single text.  So you would expect Turbo&lt;br /&gt;
Pascal compilation to be slow ... except that the compiler is smart enough&lt;br /&gt;
to distinguish changes to the interface from changes to the implementation.&lt;br /&gt;
This shows the path: if you still think that the kind of compilation&lt;br /&gt;
optimization that motivates hierarchical libraries is relevant, you can&lt;br /&gt;
achieve it by a more sophisticated compiler without need to increase the&lt;br /&gt;
size of the language.  The feature may be well-designed, but it is&lt;br /&gt;
nevertheless dead weight.  In addition, it has been shown to undermine one&lt;br /&gt;
of the most valuable conceptual assets of Ada: the safety of packages (with&lt;br /&gt;
unwanted self-proclaimed children getting access to the private part).&lt;br /&gt;
&lt;br /&gt;
The fact that a feature is well designed does not mean that it has to be&lt;br /&gt;
part of the language: designing the architecture of a programming language&lt;br /&gt;
is about choice and responsible choice is always &amp;quot;either/or&amp;quot;, rarely &amp;quot;all&lt;br /&gt;
of&amp;quot;.  Failing to choose will mean more to learn, more to implement, less&lt;br /&gt;
efficiency, and less chances for Ada to succeed.&lt;br /&gt;
&lt;br /&gt;
CONCLUSION&lt;br /&gt;
&lt;br /&gt;
I have certainly hesitated before sending this open letter.  Some very good&lt;br /&gt;
friends have expressed concerns about possible negative impact on Ada.&lt;br /&gt;
Clearly, my present assessment of the situation is quite different and&lt;br /&gt;
I think that the 9X program requires a very substantial reorientation to&lt;br /&gt;
succeed: I see more risk in continuing in the present course than in&lt;br /&gt;
attempting a courageous reorientation.&lt;br /&gt;
&lt;br /&gt;
Others who share my concerns have reacted on the assumption that, anyway,&lt;br /&gt;
it is too late.  My hope is that this is not the case, and my belief is that&lt;br /&gt;
the current plans and schedules are unrealistic to the degree that a&lt;br /&gt;
reorientation is the only way to achieve something in a reasonable time.&lt;br /&gt;
In 1981, Larry Druffel sponsored a parallel group - Emilion - to study an&lt;br /&gt;
alternative.  This could be an example to follow.&lt;br /&gt;
&lt;br /&gt;
In acknowledgment of the fact that it has not been possible for me to make&lt;br /&gt;
an effective contribution, and also in view of my reluctance to be&lt;br /&gt;
associated with something whose complexity I disapprove and whose aesthetics&lt;br /&gt;
I can neither see nor share, I will no longer participate to Distinguished&lt;br /&gt;
Reviewers meetings and would like my name to be removed from the list. &lt;br /&gt;
I will see if I can be more effective from outside the group (for that matter,&lt;br /&gt;
I would like to be on the list of Volunteer Reviewers).&lt;br /&gt;
&lt;br /&gt;
I was looking forward to be one of those promoting 9X but this does not&lt;br /&gt;
appear to be possible at the present time.&lt;br /&gt;
&lt;br /&gt;
Sincerely,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jean D. Ichbiah&lt;br /&gt;
Architect of the Ada Language&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &lt;br /&gt;
**************************************************************************&lt;br /&gt;
Greg Aharonian&lt;br /&gt;
Source Translation &amp;amp; Optimiztion&lt;br /&gt;
P.O. Box 404, Belmont, MA 02178&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vmo</name></author>
	</entry>
</feed>