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=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.50.136.198 with SMTP id qc6mr16231891igb.4.1396034452493; Fri, 28 Mar 2014 12:20:52 -0700 (PDT) X-Received: by 10.182.110.167 with SMTP id ib7mr94341obb.5.1396034452368; Fri, 28 Mar 2014 12:20:52 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.glorb.com!l13no12255917iga.0!news-out.google.com!gi6ni490igc.0!nntp.google.com!ur14no15267666igb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Fri, 28 Mar 2014 12:20:52 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=96.226.229.244; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 96.226.229.244 References: <1f0a85a6-ea4d-4d30-8537-0ce9063f992a@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <330b7d3b-4d12-4482-9ed2-2c82a32a6334@googlegroups.com> Subject: Re: Augusta: An open source Ada 2012 compiler (someday?) From: "Dan'l Miller" Injection-Date: Fri, 28 Mar 2014 19:20:52 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:19025 Date: 2014-03-28T12:20:52-07:00 List-Id: On Thursday, March 27, 2014 3:02:56 PM UTC-5, Simon Clubley wrote: > [*] To bring this back on topic, why does something which looks like > Ada have to be called Ada ? Call it something else and get people > using Ada without realising it. :-) Back in the 1970s & 1980s, Ada standardization had a crystal-clear mission:= be the one true replacement imperative programming language for munitions= & support systems of the US DoD and for the NATO allies. Back in the 1970= s & 1980s, C had a crystal-clear mission: be the implementation language o= f UNIX and its derivatives. Over time, C's mission extended to being the e= mbedded real-time programming language (except where Ada was expected inste= ad) and the language for hardware interfacing (except where Ada was expecte= d instead) and eventually the language for non-Unix operating systems from = Microsoft. Nowadays, Ada standardization's mission can be thought of as: 1) cater to Ada's installed base of aerospace & military & vehicular indust= ries, especially as the host language for Ravenscar/SPARK profile; and 2) give AdaCore a credible ambiance of not being the benevolent dictator of= Ada (a la Guido van Rossum for Python or Larry Wall for Perl). Note that = #1 is considered the "paying customers" of AdaCore at the heart of #2, whic= h means that #1 & #2 are intertwined as shared fate, not entirely independe= nt. I would submit that Ada 202X needs to have at least a third (quite independ= ent) mission if not a fourth mission as well. Once that third mission aris= es, then what to add or shape in the Ada standard becomes less befuddling,= if not crystal-clear obvious. I suspect that the third mission could be: 3) Be the best replacement for C++. Ada is the anti-C++ imperative multipa= radigm language. Ada borrows good ideas from C++, Java, C#, and so forth w= hen Ada is viewed as deficient (e.g., interfaces, finalization). But Ada l= eads even C++ on declaring useful restrictions to the compiler for the comp= iler to enforce in an attempt to marshall human thought to obey the design'= s rules consistently, although C++2011 is borrowing some of Ada's semantics= in this regard and hence C++2011 is starting to catch up to Ada. One area= that is ripe for Ada202X to assert its lead as the wisest imperative progr= amming language is C++'s ever-increasing dependence on meta-template progra= mming (MTP), even in C++2011's & C++2014's standard library. MTP begets a = disgusting depth of cryptic compile-time error messages quite often in real= -world app-domain code. Hence, MTP is C++'s achilles heal for Ada to provi= de a useful alternative; hence mission #4. 4) Be the least-repulsive compile-time language interpreter/source-code-gen= erator. Since its inception, Ada has always emphasized overt declaration o= f the programmer's intent. Given the way that OCaml and C++ have been tren= ding in the past decade, functional programming at compile-time is a state-= of-the-art feature-set of compile-time declaration that Ada lacks (ignoring= a.app back in the 1990s, which has fallen into disuse and was imperative i= nstead of functional). Ada202X could bring back a.app or completely rethin= k a.app to be functional instead of imperative. C++1998, C++2003, C++2011,= and onward have MTP largely by accident when it was discovered that the C+= + template expansion was by happenstance Turing complete when using various= arcane syntaxes & conventions & idioms. Hence, MTP wins the award for bei= ng the least thought out massive new feature in a programming language ever= , I suspect. Ada202X's compile-time language could borrow heavily from OCa= ml (especially MetaOcaml) but rethink OCaml's off-putting syntax. Ada202X = could think through what "extending the compiler" and "compile-time program= generator" really means (a step that C++ never accomplished regarding MTP)= , especially regarding debugability and visibility to the interpreted (meta= -)program that is generating the compiled (app-domain-)program. Perhaps a = portion of this rethinking of extending the compiler via compile-time decla= rations could include aspect-oriented programming, such as borrowing from A= spectJ. Even if you reject the two proposed missions stated above (which are provid= ed merely to stoke fires of the mind), Ada desperately needs additional mis= sions beyond #1 & #2 above. Having a clear reason to live goes a long way = toward continuing to live at all.