More on humane API’s
Humane Interfaces clearly violate both YAGNI and the “do the simplest thing that could possibly work” principle, so I’m quite happy to see them gaining traction
Errr…. Humane Interfaces doesn’t mean, in my opinion, that you cook up a baroque interface a priori. It does mean that when you have a choice of adding to the interface so your code can be more intention revealing, you do so. You build these interfaces as you go.
In Smalltalk, it happens all the time. Sticking with collections, someone thought that #first might be a nice addition. This begat #last, #second, and in Squeak, we’re up to #ninth now
. You Ain’t Gonna Need It, but by the time you need it, by all means enhance the base class library (and share it with others, so that if more people think it’s a neat idea, it’s added by the distributor–this is a sort of fluidity that’s hard to emulate with JSR’s and stuff…).


