From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,1a6ba5211db88937 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII Path: g2news2.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed01.chello.at!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Thu, 04 Jun 2009 22:14:52 +0200 From: Georg Bauhaus Reply-To: rm.tsoh+bauhaus@maps.futureapps.de User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Ada 12 times more popular than Eiffel References: <7bd1fd9d-6040-4f20-8e06-7ba41ca64db8@f19g2000yqh.googlegroups.com> <4A27FED7.1070404@obry.net> <4A2806A9.3050600@obry.net> In-Reply-To: <4A2806A9.3050600@obry.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <4a282b3c$0$31872$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 04 Jun 2009 22:14:52 CEST NNTP-Posting-Host: de2434a6.newsspool3.arcor-online.net X-Trace: DXC=oEcC^1h1bk6kUFX=Y?aLP;McF=Q^Z^V384Fo<]lROoR1^YC2XCjHcb9VFX03I1?Jb0A:ho7QcPOV3:f_3gOT2[L:iE^OcSNYbh2 X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:6276 Date: 2009-06-04T22:14:52+02:00 List-Id: Pascal Obry wrote: > Hibou57 (Yannick Duch�ne) a �crit : >> Are you talking about Bertrand Meyer ? > > Yes. > >>> Except from the Eiffel inventor, sad but true! >> What do you mean ? >> >> How could he be inspired from a language he hated ? > > Not sure he has said that Eiffel was inspired from Ada, maybe on the > early days... IIRC, in his book Object-Oriented Software Construction > there is very few (if any) references to Ada. The second edition is more eloquently discussing Ada 95. Ada 83 is characterized "sophisticated", Ada 95 is blamed for being overly complex, with examples, including LRM nomenclature. Similar comments can be found in the SPARK book, BTW. OOSC2 is the only reference I could find to Jean Ichbiah's resignation letter, sent to the Ada 9X reviewing group "after trying in vain for several years to keep the extensions simple". (p.1095) Meyer quotes from Ichbiah's letter: "A massive increase in complexity will result from 9X adding one or more additional possibilites where Ada now offers two. For example, 9X adds: [...] access parameters to in, out, and in out; tagged types, to normal types; dispatched subprogram calls, to normal subprogram calls; use type clause, to use package clause; [Other examples skipped; overall 12 were included.] With 9X, the number of interactions to consider is close to 60,000 since we have 3 more possiblitities in each case (that is, 3**10)." By contrast, there were comments explaining that Taft's Ada 95 is more of a compiler writer's language than Ichbiah's Ada 83. The number of occurrences of the word "simple" in OOSC2 is suspiciously high. Most of them refer to concepts embedded in Eiffel being simple. I find this a bit suspicious because complex problems cannot become simple problems just because language concepts are simple. We would be writing assembly language, then. For example, Ada has both variant records and variant tagged records, both explicit discriminants and implicit discriminants. A tag can be seen as an implicit discriminant. The tag as a discriminant seems to be an obvious choice when you implement OO starting from Ada 83, doesn't it? The tag discrimminates types. But then, we still have discriminated records. Why? This question is answered negatively in Meyer's OOSC2. Use different types (or program logic) but not also variant records. Stroustrup says, we should see wheter a minor distinction warrants different types. And there still are reasons for tagless small records, as Randy Brukardt has explained a few days ago. So what is the right choice in language design? Meyer favors simplicity---presuming, I guess, that, without exception, managing polymorphic types, relying on garbage collection, substituting many types for richer language rules is better than using variant records, their rules, case distinction, and struggling compilers. The latest issue with GNAT's discriminant handling, reported here today by Alex Mosteo (base type is interface, derived type has a discriminant) is yet another case of GNAT crashing into the discriminating knife. Does this prove that Meyer has a point?