DIP 1017--Add Bottom Type--Final Review

aliak something at something.com
Wed Jan 16 07:17:48 UTC 2019


On Wednesday, 16 January 2019 at 06:43:59 UTC, Walter Bright 
wrote:
> On 1/15/2019 8:16 PM, aliak wrote:
>> +1 for not using "bottom". It's really confusing to anyone who 
>> is not a language theory expert.
>
> Fortunately, "bottom type" is very google-able, and this comes 
> up:
>
> https://en.wikipedia.org/wiki/Bottom_type
>
> > "Never" makes a lot more sense.
>
> Inventing new jargon for established terms is worse. 
> Established jargon gives the reader a certain level of 
> confidence when established terms are used correctly in that 
> the reader understands the text and that the writer understands 
> the text.

How is it new jargon when other programming languages that are in 
far, far more widespread use than D are already using it? And why 
is it that none (i.e zero) of them went with bottom?

Do you honestly believe more readers will understand "returns 
bottom" over "returns never"? Honestly?

>
> The "Bottom" type appears in books on type theory, like "Types 
> and Programming Languages" by Pierce. "Never" does not, leaving 
> the reader wondering what relation it might have to a bottom 
> type.

99.9% of programmers do not read those books, and bottom will.

s/bottom/never :p

>
> ---
>
> It reminds me of when we were coming up with a term for what 
> became "immutable" types. People would say:
>
> Q: what does 'readonly' actually mean?
> A: readonly means immutable
> Q: ok, I get it
>
> Q: what does 'invariant' actually mean?
> A: invariant means immutable
> Q: ok, I get it
>
> Finally we realized we were being clubbed with a Clue-By-4. 
> Just call it "immutable" and voila, haven't had 
> comprehensibility problems with it since.

Immutable is obvious without googling. Is bottom?

Honestly, this sounds like one of those arguments of convenience 
-> "I like X so ill argue that it's the proper term" whereas if 
it were reversed, the argument would be "I like X because it 
makes more sense than the correct theoretical term that no one 
will understand" 🤷‍♂️


More information about the Digitalmars-d mailing list