DIP 1007 Preliminary Review Round 1
Nick Sabalausky (Abscissa) via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 10 20:46:55 PDT 2017
On 05/10/2017 11:04 PM, Nick Sabalausky (Abscissa) wrote:
> On 05/10/2017 09:51 PM, Nick Sabalausky (Abscissa) wrote:
>> This is what FQNs are for. At least, it was before FQNs were broken,
>> first by an incomplete "package.d" system and second by a goofy
>> half-baked change to import rules.
>>
>> FQNs need fixed. This DIP is just a questionable workaround for our
>> borked FQNs that that smacks of C++-style "no breakage at all costs"
>> design philosophies being applied to both D language and D libraries.
>
> I guess that's my overview. More specifically, what I mean is this:
>
Ugh, frustrating... Seems like every time I try to clarify something I
manage to make a jumbled mess of it. Lemme see one last time if I can
distill that down my basic counter-arguments:
1. Why are FQNs alone (assume they still worked like they're supposed
to) not good enough? Needs to be addressed in DIP. Currently isn't.
2. The library user is already going to be informed they need to fix an
ambiguity anyway, with or without this DIP.
3. Updating code to fix the ambiguity introduced by a new symbol is
always trivial (or would be if FQNs were still working properly and
hadn't become needlessly broken) and inherently backwards-compatible
with the previous version of the lib.
3. Unlike deprecations, this only provides a heads-up for trivial
matters that don't really need a heads-up notice:
Unlike when symbols being added to a lib, the fix in user-code for a
deprecation *can* be non-trivial and *can* be non-backwards-compatible
with the previous version of the lib, depending on the exact
circumstances. Therefore, unlike added symbols, the "deprecation"
feature for removed symbols is justified.
4. Unlike deprecation, this feature works contrary to the actual flow of
development and basic predictability:
When a lib author wants to remove a symbol, they already what the symbol
is, what it's named and that they have X or Y reason to remove it. But
when a lib author wants to add a symbol, it's more speculative: They
don't actually KNOW such details until some feature is actually written,
implemented and just about ready for release. At which point it's a bit
late, and awkward, to go putting in a "foo *will* be added".
More information about the Digitalmars-d
mailing list