In a discussion yesterday, a thought occurred: many problems in different areas are about selecting proper abstractions to match applications. Abstraction matching is a challenging and interesting problem.
In computer science particularly, abstraction matching is very important. I hear long discussion whether something that can be done with a new abstraction, say ‘events’ can be done with an oldabstraction say ‘objects’. This discussion can soon degenerate if somebody starts arguing whether that thing can be done by Turing Machine or not. If something is computable than what abstractions you use are more important if you consider efficiency and human easeof relevant application oriented operations. A particularly interesting case of this is the Relational Database Model. This abstraction is very unnatural but once you consider the operations in data collections of ‘structured data’, it turns out to be a very good representation. That is because the abstraction matches the application.
In many cases one can only evaluate effectiveness of an abstraction after it has been implemented and tested in applications. It is very rare that one can mathematically evaluate this in emerging complex applications.
I need to think more about this, but so far it appears that Abstraction Matching may indeed, like impedance matching, an important issue.