[
Lists Home |
Date Index |
Thread Index
]
On Jun 24, 2004, at 9:50 AM, Roger L. Costello wrote:
> Perhaps for some things progress must come about by adding more
> complexity. I don't know. What do you think? /Roger
>
There's a couple of complicating factors. First, "simplicity" is not a
simple concept. There are at least two dimensions: minimalism (how
many simple concepts are there) and easiness (is it simple use by the
target audience). In some ways, they are related, since if you only
have to understand a few basic things, something should be simple to
use. The trouble is that elegant theories/technologies usually require
one to operate with abstractions rather than day-to-day ideas.
For example, consider the relational model of data. It is simple in
the elegant sense, but requires implementers and users of DBMS systems
to deal with abstractions such as "normalization" that stand between
ordinary reality and the theory. It is (provably?) true that any data
management problem can be cast into the terms of the relational model
and addressed with a "true" relational DBMS (if any exist), but it is
obvious that this is not "simple" to do in practice. I guess a Turing
machine is an even more stark example: it is extremely simple and
completely general, but more or less useless as practical programming
model.
So, I don't necessarily see "progress" in one direction or another.
There's dynamic tension between technologies that are simple to
understand and implement but require a lot of abstract thinking or pure
tedium to work with in the real world (think XML 1.0 without schemas,
stylesheets, query languages, semantic mapping, etc.) and those that
have all sorts of prefabricated tools for addressing real world
problems, but provide this at the cost of much complexity (think modern
object-relational-XML-text DBMS, or the entire corpus of XML
technologies).
Eternal refactoring is the price of sanity.
|