Vision for the D language - stabilizing complexity?

Andrew Godfrey via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 9 15:58:50 PDT 2016


On Saturday, 9 July 2016 at 16:38:02 UTC, Max Samukha wrote:
> On Saturday, 9 July 2016 at 14:58:55 UTC, Andrew Godfrey wrote:
>> On Saturday, 9 July 2016 at 06:31:01 UTC, Max Samukha wrote:
>>> On Saturday, 9 July 2016 at 04:32:25 UTC, Andrew Godfrey 
>>> wrote:
>>>
>
>> This is a tangent from the subject of this thread, but: No, 
>> that just says how it is implemented, not what it means / 
>> intends. See "the 7 stages of naming", here: 
>> http://arlobelshee.com/good-naming-is-a-process-not-a-single-step/
>>
>> (That resource is talking about identifier naming, not 
>> keywords. But it applies anyway.)
>
> You have a point, but the name is still not 'just bonkers', all 
> things considered. Metonymy is justified in many cases, and I 
> think this is one of them. What better name would you propose?

First, I'm not proposing a change to existing keywords, I'm using 
existing examples to talk about future language changes. Second, 
I had to look up "metonymy" in Wikipedia. Using its example: 
Suppose "Hollywood" referred to both the LA movie industry and, 
say, the jewelry industry; that's roughly equivalent to the 
pattern I'm talking about.

Others in this thread have suggested alternatives, many of those 
have things to criticize, but I would prefer something cryptic 
over something that has multiple subtly-different meanings in the 
language.
I'm drawn to "#if", except people might end up thinking D has a 
macro preprocessor. "ifct" seems fine except I'm not sure 
everyone would agree how to pronounce it. Compile-time context 
seems significant enough that maybe it warrants punctuation, like 
"*if" or "$if".

I especially want to establish: If we were adding a new feature 
as significant as "static if", and we decided a keyword was 
better than punctuation, could we stomach the cost of making a 
new keyword, or would we shoehorn it either into one of the 
existing keywords unused in that context, or start talking about 
using attributes? I have a lot of experience with 
backward-compatibility but I still don't understand the reticence 
to introduce new keywords (assuming a freely available migration 
tool).


More information about the Digitalmars-d mailing list