From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=0.0 required=3.0 tests=BAYES_40,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.5-pre1 X-Received: by 2002:ac8:5248:: with SMTP id y8mr13646148qtn.346.1623616185487; Sun, 13 Jun 2021 13:29:45 -0700 (PDT) X-Received: by 2002:a25:4009:: with SMTP id n9mr19536071yba.73.1623616185179; Sun, 13 Jun 2021 13:29:45 -0700 (PDT) Path: eternal-september.org!reader02.eternal-september.org!news.uzoreto.com!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sun, 13 Jun 2021 13:29:44 -0700 (PDT) In-Reply-To: <54c3041a-b68f-4719-88bc-d2a1587a2d2cn@googlegroups.com> Injection-Info: google-groups.googlegroups.com; posting-host=47.185.200.73; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.200.73 References: <87v96n2e2h.fsf@nightsong.com> <54c3041a-b68f-4719-88bc-d2a1587a2d2cn@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <12a77501-1187-4f83-a1ad-8bf7e95b1040n@googlegroups.com> Subject: Re: Adacore Blog - Going Beyond Ada 2022 From: Andreas ZEURCHER Injection-Date: Sun, 13 Jun 2021 20:29:45 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader02.eternal-september.org comp.lang.ada:62222 List-Id: On Thursday, June 10, 2021 at 6:13:27 AM UTC-5, briot wrote: > I must admit I do not see the grudge here. Complaint or concern (for the welfare of Ada) should be the word there. Gr= udge is a loaded term of long-term hatred, which by definition is absent in= this =E2=80=A2newly=E2=80=A2-arisen topic of 2 competing RFC-esque nonemai= l commentary/planning/consensus-building forums (ARG's versus AdaCore's). = By having 2 competing consensus-building forums, clearly not all the wood c= an ever truly be behind one arrow in the consensus building, to paraphrase = Scott McNealy. =20 > As I understand it, the goal is indeed to test proposals in practice, bef= ore they make it to the standard. Your wording implies the fundamental danger: If AdaCore productizes a part= icular design & implementation prior to even submitting an AI to ARG (as = =E2=80=9Cmaking it to the standard=E2=80=9Ds body), then the ARG is implici= tly compelled to accept or veto, at the wholesale level, the =E2=80=A2entir= ety=E2=80=A2 of AdaCore's work on this proposed feature 1) when a quite-different alternative might have been wiser and better for = Ada or 2) when course-correction at a key point of departure where AdaCore went of= f-course might have been wiser. > There has been a number of evolution to the language that are not so conv= enient to use, > for instance, or not flexible enough. Having a prototype implementation f= or people to play > with is a nice idea =E2=80=9CHaving a prototype implementation for people to play with is a nic= e idea=E2=80=9D =E2=80=A2=E2=80=A2only as long as it remains playing nice &= fairly=E2=80=A2=E2=80=A2 at the ARG. As soon as ARG effectively/practical= ly cannot veto & reject some prototype from AdaCore as a partially- or full= y-misguided rotten-egg brain-fart, then AdaCore could utilize this techniqu= e to try to occlude & preclude all dissenting views in ARG. > (and what most other languages do in practice). C++ for example rarely if ever has cases where some core-language feature a= ppeared in GCC or Clang prior to having at least one N-series proposal subm= itted to the ISO14889 committee (and indeed, not only submitted, but achiev= ing some degree of partial consensus, at least factionally). For example, = Clang has automated reference counting (ARC) only in Objective-C-based mode= s of operation (including in only certain Objective-C-centric situations of= Objective-C++), not in C++ proper. Likewise with Microsoft's C++/CLI and = C++/CX keeping evolution to the core language separate from the committee-d= raft-proposal-centric main language=E2=80=94a few nonstandard pragma-esque = attributes here & there notwithstanding. Comparing an ISO/IEC-standardized language's process to, say, Python's is d= isingenuous, because Python is a language historically with a benevolent di= ctator-individual and a normative reference-implementation interpreter as 1= st-class citizen from which all other Python interpreters or compilers are = expected to conform meticulously as 2nd-class citizens. Scala (versus Scal= a Native) operates much the same way as Python, in this reference-implement= ation-as-1st-class-citizen-all-others-2nd-class-citizens regard. Certainly= what Ada community might fear is a situation where AdaCore's GNAT is the 1= st-class citizen reference-implementation to which all other Ada compilers = must conform downstream as mere 2nd-class citizens, where Ada would become = the Python model and the Scala-ScalaNative model. > AdaCore does not *propose* to control the language. (emphasis added)=20 Not all control schemes in the history of humankind have been publicly anno= unced a priori ahead of time, even by slip-of-the-tongue leaks, let alone f= ull-fledged well-crafted well-publicized proposals. Indeed, some firm cont= rol schemes really are pure innocence (not even control schemes at all) at = their early stages, only to occur by happenstance as time marches onward (t= o be realized in historical analysis in retrospect) as quite pernicious aft= er the fact. > As far as I can tell, these prototypes (like early implementation of what= is already in > Ada 2020) are generally controlled via the -gnatX switch. If you do not u= se that, then > you do not have access to those new proposals either.=20 >=20 > This is akin to implementing some pre-processing tool (for instance using= ASIS or > libadalang) to test those prototypes, except it might be easier to do dir= ectly in the > compiler for AdaCore. The problem is not implementing industrial-practice prototypes =E2=80=A2=E2= =80=A2of ARG's proposed AIs=E2=80=A2=E2=80=A2 in the GNAT compiler (or any = other vendor's compiler). The problem is implementing =E2=80=A2nonAIs=E2= =80=A2 (other than pragmas and pragma-esque constructs) in the compiler tha= t then are later harshly utilized as established industrial practice to sta= ndardize as close to verbatim from the GNAT implementation as possible, giv= en that no other compiler's design of that feature is as mature. Indeed, I= SO/IEC rules strongly favor homologizing =E2=80=A2existing=E2=80=A2 industr= ial practice over a standards body pontificating any fresh creativity not y= et seen in industrial practice. Homologize is the actual term-of-art there= , as utilized throughout ISO, IEC, EU, UN, and other let's-just-get-along i= nternational bodies. Any fresh creativity by ARG competing with AdaCore's = establish industrial practice goes against the entire concept of homologizi= ng unless ARG (or whichever let's-all-just-get-along homologizing body) can= demonstrate that fresh creativity is absolutely necessary, due to insurmou= ntable impracticalities of endorsement of (one of) the existing industrial = practice(s) or blending the multiple industrial practices (of which there l= ikely would be none from the other Ada vendors at the time of debate & stan= dardization of the AI). > But nothing prevents anyone from writing such a preprocess to test their = own proposals.=20 >=20 > The language remains controlled by the standard, and although there is a = large number > of AdaCore employees in the ARG, that's not all of it. The ada-comment li= st has another > purpose that discussing tentative evolution to the language (and email do= esn't lend > itself too well to that purpose anyway). Then why doesn't AdaCore simply utilize ARG's existing forum of discussion = instead of having their own competing forum? It seems that only 2 are need= ed: =E2=91=A0ARG's comment forum and =E2=91=A1email. It seems that 3 are = not needed; it seems that 3's a crowd: =F0=9F=84=B0AdaCore's comment forum= and =F0=9F=84=B1ARG's comment forum and =F0=9F=84=B2email.