On Thursday, 14 November 2013 at 18:23:20 UTC, Andrei Alexandrescu wrote:
On 11/14/13 2:17 AM, Walter Bright wrote:
On 11/14/2013 2:07 AM, Chris Cain wrote:
I guess I would have thought the exact opposite from you... that this is precisely something that *should* be done with a library-defined macro.

Again, I reiterate what experience shows happens with macro systems in
the long term.

FWIW Walter talked me back around 2005-2006 into abandoning my own ideas about languages with configurable syntax.


This is not proposing to configure syntax.

There are quite a few failings about comparing programming languages against natural languages, but here's one that I think does have value: fixed syntax is ingrained into people's notion of language, and swapping syntax within an otherwise identical linguistic context is extremely taxing on the brain. Anyone who's read with a C or C++ codebase full of macros and #if-driven code can attest how unbelievably difficult juxtapositions of the normal syntax with preprocessor syntax can quickly become. That's part of why "static if" has been so successful in D - it drives new semantics but within the same syntax.


C macro can introduce new syntax. This cannot.

Natural languages are "humans complete" because they are the one vehicle we use to describe and manipulate our understanding of the entire reality. If configurable syntax was something necessary to model the world, it would have inevitably occurred in natural languages one way or another. Instead, all human languages (with no exception I know of) have fixed syntax and prefer to add modeling power in other ways. There must be something about this.


Andrei

I think this very post pretty much show that you missed the point of the DIP.

Reply via email to