-preview=safer for D

claptrap clap at trap.com
Sun Dec 15 10:09:08 UTC 2024


On Sunday, 15 December 2024 at 03:11:10 UTC, Walter Bright wrote:
> On 12/14/2024 4:39 PM, Paul Backus wrote:
>> That way, you can get the informational/educational value of 
>> -preview=safer without breaking your build, and you're only 
>> forced to satisfy the checks once you actually decide to 
>> transition to @safe.
>
> Safer is turned on with a switch. You can turn it on, see what 
> you want to address, then turn it off.

I think his point is that it wont "educate people", or wont push 
people to do what you think it will. I mean you're assuming that 
if you do X it will encourage people to do Y. Like "make casts 
ugly and people will use them less", I don't think that works. I 
means there's lots of psychologic research on "nudging" people 
towards more desirable behaviour. But its often counterintuitive. 
One example I remember is when they did an experiment where they 
fined parents who dropped their kids of late to nursery. It made 
the problem worse because parents were like "I can just pay the 
fine". What actually worked was when they made it so that if 
you're late you have to go in to talk to the secretary and sign 
in a book for being late. What they learnt from the parents was 
the fine made it easier, they can just pay the fine and feel less 
guilt about being late. Whereas talking to the secretary was 
embarrassing, and **emphasised** that they were not doing what 
they should.

So if you really want to encourage people toward safety, maybe 
have the compiler *always* print a report on the memory safety 
issues, something like..

"42 memory issues found, uses the "-safebydefault" switch to find 
out more"

That will keep nudging people, and also gamify it a bit. People 
like having a metric they can work on.

It **may** also work on the grounds that people will want the 
number as low as possible if they are publishing their code. I 
mean if everyone will see that message when its compiled.

Oh yeah the another one I remember was that putting little 
plastic balls in urinals made guys significantly less likely to 
pee on the floor.





More information about the Digitalmars-d mailing list