Obwohl dies nicht ganz dasselbe ist, hat sich HTML sozusagen in die Katastrophe verwandelt. Browser haben schlechtes Markup toleriert und als nächstes wussten Sie, dass Browser A nicht so rendern konnte wie Browser B (ja, es gibt andere Gründe, aber dies war einer der ersten, besonders vor ungefähr 10 Jahren, bevor einige der Lockerungsregeln zur Konvention wurden ).
Wie Eric Lippert schlussfolgert, werden viele dieser Dinge am besten von der IDE erledigt, nicht vom Compiler. So können Sie sehen, was die automatischen Bits für Sie zu vermasseln versuchen.
Die Strategie, von der ich denke, dass sie jetzt vorherrscht, ist die kontinuierliche Verbesserung der Sprache, anstatt den Compiler zu lockern: Wenn es wirklich etwas ist, das der Compiler automatisch herausfinden kann, dann führe ein gut definiertes Sprachkonstrukt darum herum ein.
Als unmittelbares Beispiel kommen Autoeigenschaften in C # in Frage (nicht die einzige Sprache mit ähnlichen Eigenschaften): Da die Mehrheit der Getter / Setter in einer App eigentlich nur Wrapper um ein Feld sind, lassen Sie den Entwickler nur deren Eigenschaften angeben Absicht und lassen Sie den Compiler den Rest injizieren.
Was mich dann zum Nachdenken bringt: Die meisten Sprachen im C-Stil tun dies bereits zu einem gewissen Grad. Für Dinge, die automatisch herausgefunden werden können, verfeinern Sie einfach die Syntax:
if (true == x)
{
dothis();
}
else
{
dothat();
}
Kann reduziert werden auf:
if (true == x)
dothis();
else
dothat();
Letztendlich denke ich, dass es darauf ankommt: Der Trend ist, dass Sie den Compiler nicht "intelligenter" oder "lockerer" machen. Es ist die Sprache , die schlauer oder lockerer gemacht wird.
Außerdem kann zu viel "Hilfe" gefährlich sein, wie der klassische "if" -Fehler:
if (true == x)
if (true == y)
dothis();
else
dothat();