W3C home > Mailing lists > Public > www-tag@w3.org > January 2002

RE: Is "simplicity" a useful architectural constraint?

From: Cohen, Aaron M <aaron.m.cohen@intel.com>
Date: Thu, 3 Jan 2002 11:24:56 -0800
Message-ID: <D9223EB959A5D511A98F00508B68C20C02E2EEE8@ORSMSX108>
To: "'www-tag@w3.org'" <www-tag@w3.org>
Simplicity should be a goal, but not the only one. Solving the problem at
hand has to be the primary goal. Someone famous (I can't remember who right
now) once said that things should be a simple as possible, but no simpler.

As that applies to the Web I think this means that the specs must be as
complex as necessary to solve the stated problems, but not more complex.
"The simplest solution that meets the design goals" seems to be a good
operating principle for me.

As far as a metric, we need at least a rough one, just to define simplicity
and to be able to compare the simplicity of two things. Whoever suggested
the effort of implementability is on the right track. I would add to that
some measure of the effort required to understand the spec itself (how clear
is the spec to the intended audience of developers). Of course this really
measures complexity, but simplicity can be viewed as its inverse (just to be

complexity = (time to implement) + (time to understand specification)
simplicity = 1 / complexity


-----Original Message-----
From: Jeff Lowery [mailto:jlowery@scenicsoft.com]
Sent: Thursday, January 03, 2002 11:05 AM
To: 'www-tag@w3.org'
Subject: RE: Is "simplicity" a useful architectural constraint?

[Repost. Seems to have got lost.]

> I agree with Roy.  I find Java to be pretty useful and it has 
> a rather large
> set of specifications around it.  I also find reliable 
> messaging systems to
> be pretty useful, and they have fairly large specifications as well.

I like Java, too, but how many people are familiar with all the pertinent
Java package classes associated with the problem-of-the-moment? (Why, for
example, was Tree in one of the UI packages [version 1.1]?). The scope of
packages adds to the complexity of understanding how to effectively use
them. MFC is worse, mind you, in terms of its design (and I have not
personally delved into .NET, but OMG). Size does affect complexity, but
yeah, it's not the only measure.

> I still can't write an XML 
> schema document
> with refinement and facet constraints without referring to 
> the primer, yet I
> can easily write subclasses in Java.  

But can you write an accurage clone() method? :-) Well, maybe *you* can...

> A final point is that sometimes you just can't make the spec 
> simple as the
> task is just too complicated.

I have a saying:

	For every complicated problem, there are a bunch of simpler problems
screaming to get out.

If the task is that monolithic, break it up and address bits of it at a
time. I think there's a lot of specs that address too much at once, due to
the geek desire to be 'complete'. I say to heck with complete: give us
something simple first, then layer complexity on top of it. There's people
screaming for XQUERY update support right now, but is everyone who uses
XQUERY going to do updates? (BTW, where in the definition of 'query' does
the term 'update' show up?)

Uh, oh... I've entered the Ranting Zone. Do-do do-do, do-do do-do...

> To me, the trade-off is really about picking the complexity in the the
> audience size versus functionality chart that best meets the 
> goals of the
> spec.  Kind of like the innovation point on the chaos versus 
> order chart.

Received on Thursday, 3 January 2002 14:25:01 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:32:29 UTC