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.236.94.39 with SMTP id m27mr3599301yhf.54.1382477416421; Tue, 22 Oct 2013 14:30:16 -0700 (PDT) X-Received: by 10.50.127.229 with SMTP id nj5mr466028igb.2.1382477416076; Tue, 22 Oct 2013 14:30:16 -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!news-out.readnews.com!news-xxxfer.readnews.com!209.85.216.87.MISMATCH!o2no20417958qas.0!news-out.google.com!z6ni87172pbu.0!nntp.google.com!o2no20417947qas.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 22 Oct 2013 14:30:15 -0700 (PDT) In-Reply-To: <1d57t46pwft4z$.ktho2ymc6bso$.dlg@40tude.net> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=64.183.207.38; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 64.183.207.38 References: <87iowprctp.fsf@adaheads.sparre-andersen.dk> <7d18f68a-f15e-4e81-bbbe-22010c513a84@googlegroups.com> <0eb80b2f-696e-45cd-9e6c-724ce3866f79@googlegroups.com> <1d57t46pwft4z$.ktho2ymc6bso$.dlg@40tude.net> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <1fc36959-9863-4720-b772-6b4f064d4b6b@googlegroups.com> Subject: Re: Making sense of predicates From: "Dan'l Miller" Injection-Date: Tue, 22 Oct 2013 21:30:16 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:17510 Date: 2013-10-22T14:30:15-07:00 List-Id: On Tuesday, October 22, 2013 2:26:28 PM UTC-5, Dmitry A. Kazakov wrote: > On Tue, 22 Oct 2013 10:15:13 -0700 (PDT), Dan'l Miller wrote: > > Ahhhh, you seek effectively the C++ vision, > > No idea what makes you think so. And that is unfortunate, because I told you above. I reiterate: The A#1 m= antra of major sectors of the C++ community (e.g., Boost) is to perform fun= ctionality in libraries whenever possible instead of in the core C++ langua= ge. You seek that a substantially-similar goal, but perhaps via a differen= t (unspecified by you, hinted at by me) style of programming than Boost's M= TP via Boost.MPL or via Loki. > > What you seek is a better way of layering the compiler and extending t= he compiler, > > I seek a better types system because of problems the current one causes, > like overuse of generics and run-time checks. I, as a programmer, need mo= re > static checks, more reuse, far less debugging. Dmitry, please take a hint: your type goals would be satisfied as a mere l= ibrary by-product of accomplishing a much much MUCH more difficult goal of = taming the beast of layered compilers that accomplish multistage programmin= g, so that you don't travel the wicked C++ MTP path and merely port Boost's= MTP-based templates to Ada somehow. Writing that typing-system library wi= ll be the easy part once a language designer solves the layered-compiler pr= oblem for a multistage(-or-whatever) extensible compiler. What is the demonstrable evidence that is the layered extensible compilatio= n technology more difficult than the elegant typing-system building blocks = usable to build higher-order type-safe libraries? Such evidence is in C++ = today, which has accomplished portions of the latter (quite contortedly, no= t backward compatibly), but has entirely failed on the former. Note that B= oost (and the subsequent C++ TRs) have largely provided a "library"-based a= pproach to rich compile-time type-enforced semantics. But the cost has bee= n deleterious to numerous other valuable aspects of the C++ language, or an= y programming language for that matter: 1) deep nesting of arcane error messages within error messages within ... w= ithin error messages that often don't give even the slightest clue of what = is wrong where, 2) excessive compile time, 3) fragility of the library, 4) fragility of app-domain code using the library, 5) fragmentation of the community between different incompatible (or barely= not-incompatible) type-forests: Qt, Boost, TR, homebrew, and so forth. 6) elaborate template-idiom syntax for historically implicit or trivial typ= e semantics, where these template-idioms do not resemble (nor are backwards= compatible with) the analogous historical C/C++ language's constructs. These do not need to be the outcome. It is merely the cascading ramificati= on of the unwise path that C++ chose.