Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: Comparing logic! [was Re: WYSIWYG programming]

From: joel:neely:fedex at: 29-Oct-2000 7:48

Hi, Brett, [ warning: enthusiastic praise for REBOL, mixed with non-specific philosophical rambling ahead ;-) ] [rebol-bounce--rebol--com] wrote:
> > If by "subjective" you mean "simply a matter of opinion" then I > > disagree emphatically. If you mean "sufficiently subtle that they > > cannot be defined in a 15-second sound bite" or "unlikely to be > > assessed reliably by someone without significant experience", then > > I wholeheartedly agree. > > Sort of. In the mathematical space yes they can be defined without > subjectivity. Outside of that space where the 15-second sound bite > and attention-deficit disorder reign supreme, a space where Rebol > needs to communicate - they are subjective. >
I disagree. They are not "subjective"; they are simply "not yet learned" or "not thought through". The whole of Donald Norman's book _The_Design_of__Everyday_Things_ is about how poor design makes things that APPEAR simple on the surface too complicated to use. This applies even in the most non-technical of devices and systems. Norman gives an example illustrated with a photo, but it's such a good one that I'll bet it'll work in words only (credit to him). Imagine approaching a glass door with identical (mirror-image) handles on both sides. How do you open the door? Well, most of us have probably had this experience, and have either pushed or pulled initially, only to find out that we guessed incorrectly and had to stop and reverse our action to get the door open. Now, suppose you're approaching a glass door with a vertical handle on one side, and a flat horizontal panel across the corresponding area on the other side. Regardless of which side you're on, you'll probably understand immediately and intuitively that you pull on the handle and push on the flat panel. Same problem, same number of "moving parts", yet everyone with whom I've discussed this illustration has immediately recognized the second solution as more elegant. Sometimes designers create artifacts that INITIALLY SEEM more elegant to your "attention-deficit" general audience, simply because there are fewer "moving parts". However, an experienced designer may be able to use the same number of moving parts to create something which is in the long run simpler to understand and may be used by Joe Sixpack with more ease, accuracy, and efficiency. Even if it takes one or two MORE moving parts, I think we'd both agree that increased comprehensibility and utility are the true measures. It may require experience to predict subtle consequences of early design decisions, and an experienced designer may very well "feel that something's wrong" before he thinks it through in sufficient detail to verbalize the negative consequences in concrete terms. But Joe Sixpack usually WILL figure out over time which solution is more elegant -- it's just that he may have to bruise his knuckles a few more times to get the point. As professional information systems designers, all of us have the duty to be watching out for his knuckles!
> One aspect of that subjectivity is for example the Rebol send > function. This function seems minimalist to many, yet those who > know how to deconstruct that functionality will not consider it to > be part of a minimalist set of functions. That's the feel I was > trying to get at with the reference to Mathematical space and > subjectivity. It depends on your context. >
Well, let's do a touch more analysis of this example. Instead of the function let's consider that a function has has two aspects: its interface and its implementation. REBOL's INTERFACE to network protocols IS elegant and minimalist, even though the IMPLEMENTATION is (necessarily) a bit complicated to shield the user from all the details of socket programming. By abstracting away from the implementation details of all of the various network protocols to give the user a streamlined, obvious, and consistent interface foo: read %/export/home/mydata.text foo: read foo: read ftp://ftp.boxname.dom/pub/path/file.Z ...etc... REBOL makes it possible for "the rest of us" to use the power of the 'Net and concentrate on WHAT we want to do without having to get tangled up in complex issues of HOW it is done at some low level of protocol detail. That's both EXCELLENT and ELEGANT, IMHO. (And that excellence is actually why I react so strongly to the kinds of inconsistencies we've discussed in this thread -- they seem so out of character for such an otherwise great language!) I think we're actually in agreement -- comprehnensibility and utility are the true measures. Experience and lots of reading and study on design have taught me that "simple-looking" may be only skin deep, but true elegance goes all the way to the bone. -jn-