comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Making sense of predicates
Date: Tue, 22 Oct 2013 14:30:15 -0700 (PDT)
Date: 2013-10-22T14:30:15-07:00	[thread overview]
Message-ID: <1fc36959-9863-4720-b772-6b4f064d4b6b@googlegroups.com> (raw)
In-Reply-To: <1d57t46pwft4z$.ktho2ymc6bso$.dlg@40tude.net>

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 mantra of major sectors of the C++ community (e.g., Boost) is to perform functionality in libraries whenever possible instead of in the core C++ language.  You seek that a substantially-similar goal, but perhaps via a different (unspecified by you, hinted at by me) style of programming than Boost's MTP via Boost.MPL or via Loki.

> >  What you seek is a better way of layering the compiler and extending the 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 more
> static checks, more reuse, far less debugging.

Dmitry, please take a hint:  your type goals would be satisfied as a mere library by-product of accomplishing a much much MUCH more difficult goal of taming the beast of layered compilers that accomplish multistage programming, 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 will be the easy part once a language designer solves the layered-compiler problem for a multistage(-or-whatever) extensible compiler.

What is the demonstrable evidence that is the layered extensible compilation 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, not backward compatibly), but has entirely failed on the former.  Note that Boost (and the subsequent C++ TRs) have largely provided a "library"-based approach to rich compile-time type-enforced semantics.  But the cost has been deleterious to numerous other valuable aspects of the C++ language, or any programming language for that matter:
1) deep nesting of arcane error messages within error messages within ... within 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 type 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 ramification of the unwise path that C++ chose.

  parent reply	other threads:[~2013-10-22 21:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-21 19:51 Making sense of predicates Dmitry A. Kazakov
2013-10-22  4:35 ` Randy Brukardt
2013-10-22  8:19   ` Dmitry A. Kazakov
2013-10-22 12:53     ` Georg Bauhaus
2013-10-22 13:38       ` Dmitry A. Kazakov
2013-10-22 20:38         ` Georg Bauhaus
2013-10-24  4:03     ` Randy Brukardt
2013-10-24  7:26       ` Dmitry A. Kazakov
2013-10-22  7:14 ` Shark8
2013-10-22  7:35   ` Jacob Sparre Andersen
2013-10-22 17:26     ` Shark8
2013-10-23  7:56       ` Jacob Sparre Andersen
2013-10-24  3:58       ` Randy Brukardt
2013-10-22  8:11   ` Dmitry A. Kazakov
2013-10-22  7:20 ` Jacob Sparre Andersen
2013-10-22  7:57   ` Dmitry A. Kazakov
2013-10-22 14:52     ` Dan'l Miller
2013-10-22 16:30       ` Dmitry A. Kazakov
2013-10-22 17:15         ` Dan'l Miller
2013-10-22 19:26           ` Dmitry A. Kazakov
2013-10-22 19:49             ` J-P. Rosen
2013-10-22 21:30             ` Dan'l Miller [this message]
2013-10-23  9:25               ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox