In addition to 'sufficiently smart compiler', I've seen tech concepts that require a 'sufficiently smart UI' or even a 'sufficiently smart user'. These should be stigmatised too.
Teaching a new UI or abstraction sometimes shows that it's not ergonomic.
miniblog.
Related Posts
It's weird how many languages represent tests as functions. They rarely take arguments and very rarely (never?) call other tests.
Is it the right abstraction?
Cases where it makes more sense to use concrete types rather than generics, even if you can be generic:
I'm not convinced that offering the staging area is a good default for git.
It's an abstraction that newcomers have to learn before their first commit. Subversion style "commit every tracked file" isn't as pretty (`git add` is general) but it's the common case.