DIP 1026---Deprecate Context-Sensitive String Literals---Community Review Round 1
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Dec 4 21:57:00 UTC 2019
On 12/3/19 5:11 PM, Dennis wrote:
> What criteria should a language feature have to be candidate for
> removal, and why don't context-sensitive string literals fit those
> criteria? What sources of language complexity can be removed instead?
That got me thinking. Here's what I'd opine.
A good DIP creates a scientific argument. It would have the general
attitude of building, through a series of factual statements, a
hypothesis that is convincing. A neutral person with the proper
background would read the facts and reach the conclusion as much as the
author. (In contrast, a DIP that is not scientific would attempt to use
qualitative arguments and rhetoric in an attempt to create an opinion
trend.)
Consider someone reads a DIP proposing the removal of here docs
containing facts such as these:
* "We have analyzed x languages and of these, we found y historical
issues related to mistaken or poor performance implementation of
heredocs. [... details ...]"
* "Across x editors, we discovered that x1 do not implement here docs
for any of their supported languages, x2 do not implement them for D,
and x3 implement them with severe performance bottlenecks. [... details
...]"
" "In the D compiler issue, we found x bug reports issued over y years.
They took z days on average to fix. x1 issues are still open. [...
details ...]"
* "The code dedicated to heredocs in the D reference parser is y lines
long, which constitutes z% of the entire lexer. Lexing of heredocs is t%
slower than any other equivalent strings, revealing a serious
performance bottleneck. [... details ...]"
With such arguments at hand, a proposal would build a powerful argument
that anyone can easily verify and take into consideration. No need for
argumentation, explanations, etc. Conversely, if one does such an
investigation and gets no meaningful results, the conclusion that
heredocs are okay as they are would also be immediate.
Now it may be argued that all of this is hard work, and of high risk -
even if the DIP is well-argued, it could be rejected. Also, is the
result of the work (a small language simplification) worth the effort?
Sadly I know of no solution to this. What I can say is that it's the
main dilemma tormenting graduate students doing research. A colleague of
mine in the PhD program said he has any number of ideas to research, but
the cognitive load of putting work into something that may not pan out
is paralyzing him, so he ends up doing nothing for long periods of time.
He ended up not finishing his degree. For all I know he was smarter and
better than many who did graduate.
More information about the Digitalmars-d
mailing list