On Wednesday, 20 September 2017 at 02:34:50 UTC, EntangledQuanta
wrote:
When they then make up excuses to try to justify the wrong and
turn it in to a right, they deserved to be attacked.
That isn't how it went down, you attacked then justification was
provided.
for someone that programs in about 20 different languages
regularly, having logical consistency is important.
Could you imagine if D didn't allow you to learn how ternary is
implemented? when you switched to one of those 19 other languages
you'd expect it to work like D and make that catastrophic life
threatening mistake you speak of.
But at last D followed logical consistency across languages so
you can make the mistake once, learn, and apply it to all the
other environments you're using.
No, it doesn't logic is not based on circumstances, it's based
on something that is completely independent of us... which is
why it is called logic... because it is something we can all
agree on regardless of our circumstances or environment... it
is what math and hence all science is based on and is the only
real thing that has made steady progress in the world. Illogic
is what all the insanity is based on... what wars are from, and
just about everything else, when you actually spend the time to
think about it, which most people don't.
I will claim that it is illogical to make decisions ignoring
environment and circumstances. For example, science heavily
leverages environment (e.g. all objects fall at the same rate;
environment: vacuum) (e.g. matter can neither be created nor
destroyed; environment: not within a atomic explosion) (e.g. ...;
environment: anything not quantum mechanics) (e.g. this satellite
will follow this trajectory; environment: forces acting upon the
satellite)
Again, two wrongs don't make a right. What is the point of
reimplementing C exactly as C is done?
I don't think there were any unjust or dishonest actions being
done. Just an FYI the phrase isn't intended to be applied to all
meanings of 'wrong'.
If you're a C(C++,C#,Java,...) programmer (environment) then when
you are reading D code you will understanding the semantics and
the semantics will remain the same if you copy code from your
language into D.
e.g., my attack is on the claims that D attempts to be *safe*
and a *better C* and yet this(the ternary if) is just another
instance of them contradicting themselves. Presenting something
as safer when it is not gives the perception of safety and can
actually be more dangerous than the original.
Safe to Walter has always been 'memory safe' but to you point of
broader safety lets take my ()?: syntax and breaking backwards
compatibility here is unsafe.
q > a / (3 + 4) ? 0 : q;
This compiles today, it will also compile with the new syntax;
the semantics would be completely different. This is a
calculation running in production for a space shuttle to Mars.
Before the launch they upgrade the compiler and this new
calculation causes the shuttle to land in Florida off the coast
of Minneapolis.
Backwards compatibility is important to safety just as following
the majority. To ignore the environment you're working is
illogical.