No no no no no. Design your product to be understandable at first pass. Apple famously doesn't do any of this with your iPhone, while Sony forces you to do it on every new device. Let the onboarding be a forcing function for usability. This isn't a crutch, it's something worse and damaging.
Let the onboarding be a forcing function for usability. Sure, you always want usability and discoverability. But to suggest that everything can always just be discovered seems a lot like discussion of the elusive "sufficiently smart compiler." Eg, an unattainable ideal that doesn't exist in the real world. I am not convinced that the current state of UX is such that it's possible to make a UI where there is zero need…
Agreed. All software, like much modern design, is starting to look the same, which is heading to about as close as we can get here: that _conventions_ are baked into apps to such an extent that "everyone" "knows" what to do. But even these huge sacrifices to homogeneity won't ever sufficiently cover everything, or even close. At best we get common patterns, like games, where you can relatively quickly get to grips. But games are model worth considering. They don't smack you in the face like Driver.js does but they propose a congruent concept (progressive complexity).
Anyway. I don't know. UI is hard. Abstractions are hard. "This button does this", "Click this to blah" is one approach. Driver.js has its place. And for apps I'm not sure the progressive complexity of games translates well (the app environment doesn't generally scale along the same progression vectors).