Vision for the D language - stabilizing complexity?

Observer via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 9 01:57:18 PDT 2016


On Friday, 8 July 2016 at 20:57:39 UTC, Walter Bright wrote:
> On 7/7/2016 7:25 PM, Andrew Godfrey wrote:
>> "static" is a terribly non-descriptive name
>
> That's why it's the go-to keyword for any functionality we 
> can't think of a good name for, or if the name would be too 
> long such as "launch_nucular_missiles".

For a moment I thought Walter was being comical.  But then I 
looked
at the Index in TDPL, and I see static class constructor, static 
class
destructor, static if, static import, static this, and just plain 
static.

Also, Andrei, if you're listening, I've spotted another TDPL 
errata.
On page 459, the Index entry for "static, obligatory joke about 
overuse
of" lists page 345, but in fact the joke is in the footnote at 
the bottom
of page 68.

As for me, the main thing I dislike about static if is that it 
blends in
visually a bit too well with run-time code segments.  C's #if 
structure
has its own problems, but I like the distinctiveness.

An earlier comment about wanting a different name got me to 
thinking.
For naming variables, I own two copies of a high-quality 
thesaurus.
One copy I keep at work, one copy I keep at home.  It's 
invaluable when
you get stuck at naming things.  Why not apply that same tool to 
naming
keywords as well?  So I looked.  I didn't see anything precisely 
on
target; maybe these come closest:

     constant if
     durable if
     persistent if
     adamant if
     unalterable if
     immutable if

Okay, that last one is a joke, considering that we're talking 
about
keyword overloading.  But the effort did spark some other brain 
cells
to fire.  So we could have had any of these:

     exactly if
     strictly if
     only if

I do like the creative use of an adverb instead of an adjective 
in these
choices; the code reads like standard English instead of a clunky 
made-up
phrase.  I also especially like the briefness and precision of 
"only if",
and that may become my favorite way to think about this in the 
future.
(Is there some way I can "#define only static" to get this 
effect?)
In fact, it is presaged on page 48 of TDPL, from whence I quote:  
"the
basic plot is simple -- static if evaluates a compile-time 
expression and
compiles the controlled statement only if the expression is 
true".  So you
the language designers had the idea in hand, but then sadly 
overlooked it.


More information about the Digitalmars-d mailing list