RE: Is "simplicity" a useful architectural constraint?

Stephen:
Actually, I was referring to the specifications and the architecture and
systems that they define, I do think that the understandability of the spec
comes into play here. The specs are what get implemented. And besides, the
consequences of a simple architecture being described by a complex spec can
only be to slow adoption and usefulness. So I do think that there is a
correlation here.

I don't want us to get sidetracked into an examination of CSS2, but for
purposes of illustration, 
in the specific case of the CSS2 specification, I would not call it simple
(and I'm not sure what you mean by "Which, personally, I haven't found"),
but I am not trying to compare say, the complexity of CSS2 verses HTTP 1.0,
but rather the complexity of solving a problem one way verses another. It
may be correct to say that CSS2 is 100x (to pick a number out of the air)
more complex than HTTP 1.0, but that's not really the issue since they solve
different problems.

The real issue is whether these specifications and technologies more complex
than they need to be, and can we do better in the future by putting more
emphasis on simplicity. HTTP is amoung the most widely adopted and
implemented technologies ever. Lots of people have successfully understood
and implemented the spec. It's pretty easy to understand and the spec is not
too long. So it is not hard to make the conclusion that, even if not
optimal, it is "pretty close" to being as simple a solution to the given
problem as it can be. It is certainly "simple enough".

With CSS2 being much longer and bigger, it's not so clear that is the case.
Without comparing it against another technology and specification, I am not
saying that it is "too big" or "too complex". But I do think that it is fair
to say that it is not obviously simple. And that leaves a lot of room
(theoretically, I'm not suggesting here that we replace CSS) for less
complex approaches that may solve the same problem.

-Aaron

-----Original Message-----
From: Stephen van Egmond [mailto:svanegmond@tinyplanet.ca]
Sent: Thursday, January 03, 2002 1:06 PM
To: Cohen, Aaron M
Cc: 'www-tag@w3.org'
Subject: Re: Is "simplicity" a useful architectural constraint?


Cohen, Aaron M (aaron.m.cohen@intel.com) wrote:
> complexity = (time to implement) + (time to understand specification)
> simplicity = 1 / complexity

By this metric, the CSS2 specification is outrageously complex and not
simple at all.  Which, personally, I haven't found.  It's nearly 4
years old now, and you might say that support is solidifying now.

Keep in mind that we're talking about architecture, and not individual
specifications or technologies.

In software, software that has low complexity or high simplicity is
usually a pleasure to work with: it's easy to improve, refine, and
explore.  If some software modules need to be tossed, it's not a problem.

In the web architecture area, substitute "technology" for "software
modules" and you get an idea: are web technologies easy to improve,
refine, and explore?  If given technologies prove to be nightmares, is
it easy?

The highly interdependent nature of current XML-related standards tends
to decrease their simplicity and boost their complexity.  James Clark's
commentary before Christmas might provide some interesting insight on
that angle - see the other thread.

- Steve

Received on Thursday, 3 January 2002 16:39:49 UTC