Introducing Nullable Reference Types in C#. Is there hope for D, too?
codephantom
me at noyb.com
Sat Nov 18 03:04:26 UTC 2017
On Friday, 17 November 2017 at 12:18:47 UTC, Atila Neves wrote:
> That's the whole point of using a safe language, otherwise we'd
> be fine with C.
>
Personally, I would prefer to teach new students to program in C
first - precisely because it's an unsafe language - or at least,
can be used unsafely.
(that's how i first learnt to program - and actually I taught
myself).
Because of C, I 'had to' learn how to write code in a defensive
manner.
These days people often start with a safe language instead, and
often use it within an overly sophisticated IDE ( a bit like
having your mother hold your hand everytime you cross the road).
I think that encourages laziness, in terms of defensive
programming/thinking. Programmers become complacent and leave too
much stuff up to compile time checks.
I think people can write more correct code in the beginning, by
simply changing the way they think about the code and how it
might interact in the wider ecosystem...and, maybe even by not
relying on sophisticated IDE's (at least at the early stages).
Of course compile time checks are needed. But they should not be
at the expense of writing code correctly in the first place. They
should come in at the latter stage of defensive programming, not
the first stage.
If you check the validity of an object before going on to
reference/modify it, then no compile time check is ever needed.
nice Dr Dobbs article about it here:
http://www.drdobbs.com/defensive-programming/184401915
More information about the Digitalmars-d
mailing list