Features are faults redux
tedunangst.com
tedunangst.com
This is a description of his method (by Jeff) http://www.ultratechnology.com/method.htm
Another look at his way (contemplating problems with patients until reaching a simpler solution - simple, not easy and rarely done nowadays) http://www.ultratechnology.com/mmeta.html
Also from Jeff about reducing layering http://www.ultratechnology.com/levels.htm
Note: All are Forth (the philosophy) oriented.
These ideas are also emerging in the form of Go (simple) / Clojure (immutable) where simplicity is the primary feature. My only wish is that OpenBSD had additional vendor support for open source drivers (ie Intel / AMD / NVidia) so that it's impact isn't so limited to servers, but desktops / client devices as well.
This was my first thought, too. The examples he showed were not particularily complex, but mostly badly designed interfaces between components.
A function that takes a string argument with special behaviour if the string starts with "|"? WTF? If course you have at least two parameters for that, or a sum type ("union" on stereoids). But if it is a pain to transport structured data throughout your program, the language encourages you to employ all these anti-patterns that will of course bite you, because this special behaviour is not obvious from the function signature.
But Golang IMHO _is_ a step forward, albeit an unsatisfyingly weak one. It's displacing C and dynamic languages like Python, and it's at least safer than those.
Isn't this something browsers do by default anyway (except in smaller print)?
a:hover::before {
content: attr(href);
position: fixed;
bottom: 0px;
left: 0px;
...
}