Rob Cozens writes:

> I can't describe a specific case off the top of my head, but I recall more
> than one occasion when it seemed to me what I wanted to accomplish in
> HyperTalk could have best been implemented by adding new commands/syntax to
> the interpreter itself rather than MickeyMouse an Xthing or "do".  Is it
> possible to design a scripting platform that incorporates the ability to
> add new capabilities to the interpreter itself?

If you mean, "Is it possible to allow the scripter to extend the base
language", I think the answer is probably "Yes, but you really don't
want to allow that."

When I was a grad student at UW-Madison, a prof in the Electrical and
Computer Engineering department designed and implemented a new language
for circuit design named "Galaxy".  Galaxy allowed a programmer to
change the normal Galaxy syntax to something else that the programmer
liked better.  The programmer could specify syntax changes right in the
program.

The Computer Science profs who attended the talks on Galaxy generally
thought that was a bad idea.  Imagine a company that had lots of Galaxy
programs, all of which looked different syntactically -- it would be a
maintenance nightmare.  While each program might look good to its
original programmer, each such program would immediately be unfamiliar
to anyone else who had to read the source code.

But I'm right there with you in wanting sometimes to add something
obvious to the base language rather than tacking on yet another Xthing.
But I think language changes need to be made to the interpreter on a
release-by-release basis, rather than on an application-by-application
basis.  It's like wanting Apple to "roll in" popular extensions into
the MacOS rather than having lots of third-party extensions (of
dubious quality and longevity) load whenever you boot the Mac.
Once the changes are rolled into the main product, they become standard,
supported, and everyone benefits from them simultaneously, of course.

I don't know how feature requests are arbitrated in open software
projects.  But presumably the everyday scripters will be able to
request additions to the language if there is some sort of
consensus that changing the language is the best way to achive the
desired result.

The trick is not to let the language get bloated, and to keep some
sort of simplicity and consistency to the syntax and "spirit"
of the language.  That way it doesn't end up looking like it was
designed by committee, even though it actually was. ;^)

I think the current wisdom is that the best way to keep an evolving
thing "clean" is if one expert person has the final say.  My
understanding is that that's how Linux does it; Torvalds has
the final say in what goes into Linux.  I don't know how Netscape
handles change requests.

  -- Tony

Reply via email to