I'm interested in abstraction and, in design and the building of systems, how we move from concrete to abstract.
In DoesAbstractionScale I wondered if we expected to keep things abstract even at a grand scale.
In UsersFindAbstractionHard I thought about how users find abstraction difficult.
A lot of this is made explicit in a discussion with AdrianHoward in AnEasyInterface where I say that interfaces need to support the growth of a user's expertise and abstraction to higher level thinking.
I praise wiki's CategoryCategory convention for being a bottom-up method of abstraction. And generally praise wiki's extremely fluid mix of concrete text and abstract / higher level control functions. (OnWiki, WikiAsUltimateUserConfigurableApplication)
The old SpreadSheet $ notation which allowed you to to turn an absolute address into a relative one is an interesting case of generalization.
: It's the other way round! Absolute cell refs are preceded by a $ so they don't change when the formula is copied elsewhere on the sheet. So in this context "generalisation" is the default mode, as many naive developers have been surprised to discover.
:: OK, thanks. I misremembered. -- PhilJones
SmallTalk had a great feature which remembered the last manual text replacement you made, and let you repeat it. I wonder if any editors continue with this?
Interesting that Adobe's new Thermo seems to help designers generalize multi-layer mockup drawings to actual user interfaces : http://www.youtube.com/watch?v=lsfOe_MCEbg http://www.youtube.com/watch?v=d9IjZJ0D_bo, http://www.youtube.com/watch?v=lsfOe_MCEbg
: is there a difference between grown or incrementally arrived at abstractions like this and those designed as abstractions in the first case?
See also :