What wiki revealed to me is that there is no universal answer to the trade-off between abstraction and concreteness. And there are many factors influencing what's appropriate.
- short and long term maintainence. Often we are misled by hind-sight because we have a lot of stories of the "we're trying to maintain this rubbish and the designers under-estimated the degree of abstraction required" variety; but fewer of the "we wasted too much time and energy building unnecessary future-proofing" sort. Why? Because the over-abstract systems were never completed or went bust and were forgotten about. Whereas the under-abstracted ones were so succesful they survived until there's now a problem.
- the degree of semantic fixation by the external environment (as discussed for web-pages in SemanticsOfProgrammingEnvironments, Struts/FirstImpression and see also WikiIsLikeLanguage) For example : wiki has a very strong concrete. Pages have fixed names which determine their position in the hypertext structure. Pages can't be easily moved to a different place. Yet this doesn't seem to be a problem.
See also :