On Nov 11, 2006, at 3:18 AM, A. Pagaltzis wrote:
http://www.zedshaw.com/rants/indirection_is_not_abstraction.html
Yes!
That "abstraction isn't implementation" rant is a great condensation of
my frustration with GUI APIs and network APIs over the years. I've been
talking
about this same distinction, but I hadn't been able to condense the
distinction
down far enough... I'd referred to indirect interfaces as the
"mainframe era
approach" to the problem, and the abstract interface as the "UNIX era"
one,
because for me the switch from the mainframe style way of doing simple
things
like opening files by creating file control blocks, finding the catalog
table
and the access method and so on to the UNIX way of calling "open" with
the
name of the file was an epiphany. The UNIX developers found or
assembled a
collection of abstractions that swept away thousands of indirect
interfaces
and replaced them with twenty or so system calls. Wonderful!
Finding a good abstraction is hard. Trying to find one is a recipe for
disaster,
because if you mess up you can lock yourself into a box. But it's so
necessary.