Article View: net.micro.mac
Article #5541Ten Challenges (long)
From: nathan
Date: Mon, 05 May 1986 00:20
Date: Mon, 05 May 1986 00:20
166 lines
9839 bytes
9839 bytes
Ten Challenges:
The Macintosh has been out long enough now that there is a large
community of people sufficiently skilled, and equipped, to program it.
There is no lack of coding talent, but it's often applied in obsolete
ways. Each of us, after climbing the learning curve and wanting to
display our skill, writes a little utility. (Remember all the
screensavers, minifinders, and clocks?) While these have added to our
capabilities, we still don't have the "shower-of-sparks" effect that
occurs when our creations resonate together, as occurred under Unix,
and Smalltalk, and certain Lisps. If we are to uphold the revolution,
we must automate our automation.
What is short now is not coding, but design. "What can we do to
multiply the effects of all our efforts?" In this spirit I offer ten
Challenges to the Macintosh software community. Some may seem wildly
impractical (or just too hard); others too pedestrian. Choose wisely.
Myers Challenge #1:
A serious weakness found in every Mac editor I know of is the
search/replace function. Search patterns on obsolete systems have
always been restricted by the typographical problem: each additional
meta-symbol made it that much harder to use and to understand. On the
Mac we have a couple of new problems -- fonts & styles, and a distaste
for complexity -- but we have a huge advantage: we don't have to use
ASCII characters as meta-symbols! If you think of the "search window"
as being set up like a construction kit, you're on the right track.
But this is just the beginning: Why restrict ourselves to regular
expressions, when context-free expressions could be at our fingertips?
(Picture the day when every editor has a "railroad diagram" window)
The person who designs such an interface will have the adulation
of thousands.
Myers Challenge #2:
On Unix, we get tremendous mileage out of the "pipeline" concept.
Every little program is part of a (more-or-less) integrated system.
Without it, Unix would feel a lot like CP/M. On the Mac, each
program stands alone, except for a few DA's which have to be on the
boot disk.
What we need is support for a building-block approach that
allows dozens of little filters, on various volumes, to interact. In
place of Unix's pipe we have the Desk Scrap. I picture a DA, which I
call "Plumber", that (quickly) loads and runs miniprograms: they read
the Scrap, munch it, and write the result.
These miniprograms wouldn't have to handle events or
initialization, so they'd be much simpler than a Mac application.
Plumber would remain resident, so they'd be quick. The most common
library code would be in Plumber itself, so they'd be small. Plumber
would contain code to operate a dialog box that supplies option flags
& parameters to the miniprogram, if needed. It would also "redirect"
data to and from files. Allowing old pipelines (with their options
intact) to be left scattered about would subsitute for the "history"
mechanism found on obsolete systems.
The person who designs and publishes a "Bus Interface" to
miniprograms will be worshipped (and $upported?) by millions.
Myers Challenge #3:
Every RAMdisk I've seen on a Mac has been terribly primitive.
Why do they use up space not occupied by files, instead of claiming
the storage when it is needed? Further, when a program is run off
of a RAMdisk, why is it in memory twice? Free up the blocks it
occupied and use the core image from then on. Allow files to be
copied into RAM when they're first opened instead of at startup.
The person who builds a smart Ramdisk will own the business.
Myers Challenge #4:
Not to leave the bit-bangers among us unchallenged, I propose
that a two-button mouse is possible and desirable. The Mac has the
only one-button mouse on the market, and portability suffers. The x/y
data would have to come in serially to free up a wire for the second
button, but many mouses on the market are programmable, so that's not
so bad. The extra button would be be useful in existing programs,
emulating a Shift or Option key, but new programs could use it as
intended -- and it would be easier to make things run the same way on
Mac's, Atari's, and Amiga's. If you believe in portability, you may
have found your calling.
Myers Challenge #5:
The only Finder function I haven't seen duplicated in a desk
accessory is this: copying files. Why has this been neglected?
Having a fast multi-file copy function as a DA would mean never having
to use the Finder at all! The author of a successful Copy DA would be
admired by everybody but Steve Capps, and maybe him too.
Myers Challenge #6:
Anyone who's used an Atari knows that GEM's menu-bar approach, in
which you don't have to hold the mouse button down while you make a
menu selection, is less fatiguing than Apple's. What we need is a
replacement for the desktop code that tracks the mouse. It would pop
up the menu without prodding from the button. Probably most
applications wouldn't even notice the difference. (Them that do could
have a resource pasted on which disables the feature.)
This one sounds like a weekend's work in the right hands. I'm
sure everyone would send scads of money to the person who pulls this
one off.
Myers Challenge #7:
Apple's resource editor is huge, cumbersome, non-expandable,
and unreliable. The only thing to say in its favor is that it's
indispensable. (This is not to criticize the authors: it had to be
written before its problems could be understood.) But it's not
irreplaceable.
I propose a core program which itself is little more than a
resource mover. It would load an edit module for each resource
type, as needed, from a separate file identified by the resource
name. The interface for such modules could be very similar to
that for DA's, so existing compilers could be used to create
the edit modules. Supporting a new resource type would require
*no* changes to the core program. Bugs would be easily localized.
The core program would be small enough to be a DA.
If the interface for the edit modules were published, Apple
would be rid of a big maintenance headache, and "the rest of us"
programmers wouldn't have to be so paranoid about our resource
editor wiping out our new programs. Further, anyone could write
an editor for "his" resource type, and not have to wait for Apple
to get around to it. Even Andy Herzfeld will thank you for
tackling this one, and Gassee will invite you to lunch.
Myers Challenge #8:
Another thing that makes Unix powerful is that almost everything
is accessible through the file system. On the Mac, there are all kinds
of different incompatible channels for data: serial ports, floppy
drivers, the sound driver, Quickdraw, the SCSI port, Appletalk, the
keyboard -- none of which are accessible through a common interface.
We need an equivalent of "/dev" to integrate all these channels. In
place of driver or manager calls, I propose that we use Resources.
The file "Serial 1", for example, might have "Baud", "Flow", and
"Fram" resources to control the port. An Appletalk virtual circuit
could be established by writing to certain resources; then data could
be sent (perhaps by another program which knows nothing of Appletalk)
just as if to a file.
With this scheme we could eliminate the proliferation of trap
calls, and make our programs more flexible too. This is one place
where I expect we'll need cooperation from Apple.
Myers Challenge #9:
The corporate market is starting to demand compatibility among word
processors. Unfortunately, what they're specifying is IBM's
DisplayWriter format: an abomination. Only a strong, flexible
standard can overcome IBM backing, but it is needed NOW! So: Design a
document-description interchange standard powerful enough to
represent all document-processing needs for both present and future
document systems. It need not be terribly compact; but it must be
capable of representing all constructs found in Microsoft Word, Troff,
TeX, Word Perfect, and Interleaf files. To do this, it must of course
be an extensible, hierarchical language. Get an ANSI or NBS
committee to rubber-stamp it, and make a fortune.
Myers Challenge #10:
Come up with a better set of challenges, and put your own name on
them. Offer prizes, record contracts, talk-show circuits, dates with
starlets, marketing agreements, Knighthood, fame, anything you can afford.
******
I encourage collaboration on these goals, and ask for help in
cross-posting them to other networks and BBS's. The more people who
know about them, the sooner we may hope for results. Also, I am
willing to co-ordinate collaboration on projects and offer any
assistance I can. I hope someone will volunteer to forward mail from
other nets to me. I will keep all posted on any progress I hear
about.
Nathan C. Myers uucp: {hplabs!hp-pcd|tektronix}!orstcs!nathan
780 NW 11th St. arpa: nathan@oregon-state
Corvallis, OR 97330 belltel: (503) 753-5110
Quote: "Laugh-a while you can-a, Monkey-boy!" -- John Whorfin
Technical Details
Message-ID:
<21100039@orstcs.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!linus!philabs!cmcl2!harvard!husc6!panda!genrad!decvax!decwrl!glacier!hplabs!hp-pcd!orstcs!nathanShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!linus!philabs!cmcl2!harvard!husc6!panda!genrad!decvax!decwrl!glacier!hplabs!hp-pcd!orstcs!nathan From: nathan@orstcs.UUCP Newsgroups: net.micro.mac Subject: Ten Challenges (long) Message-ID: <21100039@orstcs.UUCP> Date: Sun, 4-May-86 20:20:00 EDT Article-I.D.: orstcs.21100039 Posted: Sun May 4 20:20:00 1986 Date-Received: Sat, 10-May-86 13:54:01 EDT Organization: Oregon State University - Corvallis, OR Lines: 166 Nf-ID: #N:orstcs:21100039:000:9090 Nf-From: orstcs!nathan May 4 16:20:00 1986