On 08.09.2016 04:00, Steven D'Aprano wrote:
On Wed, Sep 07, 2016 at 11:43:59PM +0200, Sven R. Kunze wrote:

> BUT experienced devs also need to recognize and respect the fact that 
> younger/unexperienced developers are just better in detecting 
> inconsistencies and bloody work-arounds.
That is not a fact. It is the opposite of a fact

You might have heard of: "There are no such things as facts, just opinions. Everything, we see is a perspective not the truth." See below, why this applies here as well.

 -- inexperienced 
developers are WORSE at spotting inconsistencies, because they don't 
recognise deep consistencies.

Your example (default arguments) might make sense when going one or two level deeper. However:


Is going deep really necessary at all?


People program for different reasons, to have fun, to create value for others, to educate, or for reasons we both cannot even think of. Why should they leave their level? Because of you or me? Because they need to know what Turing-completeness means? What calling conventions are? I don't think so. They wanna solve problems and get things done whether or not they know every single bit of the language they use. If they decide to go deeper, that's wonderful, but if they don't, don't force them.

So, an inconsistency at level 1 might be a **result of a consistency at level 0** BUT it nevertheless is and stays an inconsistency at level 1 no matter how sophisticated the consistency at level 0 is.


And please note, some even want to go on level up, so inconsistencies at level 1 just plain suck then. People then simply don't care about how the current flows at cpu level or about your carefully handcrafted bits and pieces on level 0 which you are so proud of and which are so consistent there.

Cheers.