Wed Oct 17 - Avoiding Code Smells by Walter Bright

Dennis dkorpel at gmail.com
Wed Nov 7 13:15:03 UTC 2018


On Wednesday, 7 November 2018 at 11:00:49 UTC, TheFirefighter 
wrote:
> Now. How many C++/Java/C# programmers are there?

Even if a `super private` attribute or something is introduced, 
the semantics of private in D will not change. Your hypothetical 
C# programmer who switches to D assuming identical visiblity 
semantics to C# will still write that program that makes the 
plane crash. Luckily Java programmers write one class per file 
anyway.

On Wednesday, 7 November 2018 at 11:00:49 UTC, TheFirefighter 
wrote:
> First, nobody needs to explain the problems that type errors 
> create.
>
> Any decent programmer should already be well aware of such 
> problems.

Look, you can keep making new accounts and restating that it's so 
obvious you don't need to convince anyone, and that D programmers 
are just stubborn. But it won't help advancing the discussion 
like you want.

If you can't show that there are actual programmers writing 
appropriately sized modules containg bugs simply because of the 
lack of a class-private visibility level, then people don't want 
to engineer a solution to a seemingly non-existant problem, write 
and maintain the compiler code + specification for it, update 
existing tutorials, editors and tools, inform existing users 
about the change, and making the language more complex overall.

Imagine if I made a proposal like this:

"Hello, MrHaltingProblem here!

We obviously need a @noloops attribute. My co-workers are 
constantly writing buggy loops with wrong loop conditions so I 
NEED the extra protection. You're asking for a justification? 
Trust me, any decent programmer knows the importance of this. You 
are just too stubborn to see all the bugs that the lack of this 
attribute causes. Asking for real world examples?
```
class Plane {
   void doLandingProcedure() {
     // lots of code
     while (1) {} // OOPS!
     // lots of code
   }
}
```

There! Now let's discuss the benefit of such a feature in D."

This doesn't look like a compelling argument, so D programmers 
would probably suggest making more use of ranges instead.


More information about the Digitalmars-d-announce mailing list