On Sun, 12 Aug 2012 03:38:47 -0700, Walter Bright
<newshou...@digitalmars.com> wrote:
On 8/11/2012 7:30 AM, Jakob Ovrum wrote:
On Saturday, 11 August 2012 at 09:40:39 UTC, Walter Bright wrote:
Of course it is doing what the language requires, but it is an
incorrect
diagnostic because a dead assignment is required.
And being a dead assignment, it can lead to errors when the code is
later
modified, as I explained. I also dislike on aesthetic grounds
meaningless code
being required.
It is not meaningless, it's declarative. The same resulting code as now
would be
generated, but it's easier for the maintainer to understand what's
being meant.
No, it is not easier to understand, because there's no way to determine
if the intent is to:
1. initialize to a valid value -or-
2. initialize to get the compiler to stop complaining
I do, however, believe that D programmers are perfectly capable of
doing the
right thing if informed.
Of course they are capable of it. But experience shows they simply don't.
Consider `pure` member functions - turns out most of them are actually
pure
because the implicit `this` parameter is allowed to be mutated and it's
rare for
a member function to mutate global state, yet we all strive to correctly
decorate our methods `pure` when applicable.
A better design would be to have pure be the default and impure would
require annotation. The same for const/immutable. Unfortunately, it's
too late for that now. My fault.
Java exception specifications have widespread implications for the
entire
codebase, while the difference between '0' and 'float.nan' is constant
and
entirely a local improvement.
I believe there's a lot more potential for success when you have a
design where the easiest way is the correct way, and you've got to make
some effort to do it wrong. Much of my attitude on that goes back to my
experience at Boeing on designing things (yes, my boring Boeing
anecdotes again), and Boeing's long experience with pilots and mechanics
and what they actually do vs what they're trained to do. (And not only
are these people professionals, not fools, but their lives depend on
doing it right.)
Over and over and over again, the easy way had better be the correct
way. I could bore you even more with the aviation horror stories I heard
that justified that attitude.
As a pilot, I completely agree!
--
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/