Language extensibility (was: Why is tcl broken?)

William Tanksley wtanksle at dolphin.openprojects.net
Fri Jul 2 20:25:51 EDT 1999


On Fri, 02 Jul 1999 03:33:03 GMT, Christopher B. Browne wrote:
>On Thu,  1 Jul 1999 17:12:06 -0700 (PDT), Eugene Leitl <eugene.leitl at lrz.uni-muenchen.de> posted:
>>Lars Marius Garshol writes:

>> > Huh? Forth dates back to the 60s, whereas Scheme is from 1975, and I'm
>> > quite unsure of whether Chuck Moore knew Lisp at all.

>>Chuck is mostly doing (quirky, but fascinating) hardware design 
>>nowadays. Check out http://www.ultratechnology.com/ to what he has
>>been up to recently.

>Anyone else that said the things Chuck Moore does would be considered
>a "net-kook."  He's had some odd-ball stuff such as:

Chuck would be a kook if he ever argued about what he does -- we need more
people like him, who are willing to explore without being driven to argue
with people about it.

>- Actually using a "chording" keyboard
>- Eliminating source code (OK)

He now thinks both were a bad idea -- a failed experiment.

>- A 20 bit microprocessor

This was driven by economics, not experiment -- he prefers 32 (or 33) bits
in real life ;-).  I think that given the choice, he'd make it 33 bits
internal and 32 bits external.

The extra bit, for those of you not following Chuck's work, provides a
carry bit for every number on the stack.  A very cool way to write
smaller, simpler code.

>- A conciously tail-recursive Forth

One of his newer things...  Time will tell.  It allows for writing code
without loops, but it's an implicit and required optimization, which is
not something Forth usually likes.

>- Designing chips by directly manipulating arrays, rather than using
>abstract languages.

To the best of my knowledge he never did this.  He wrote a VLSI CAD
program from scratch (without source code, see OK) so that he could design
his processor by drawing lines and connecting them.

>- The claim that code should *not* be written to be reusable, but rather
>should be tightened so as to "throw away everything that isn't being used."

Or more accurately, the design should not include things that aren't
required (and the requirements should be trimmed to include only what's
known to be needed right now).  You don't throw things out of working code
just for the heck of it, you know ;-).

>If it weren't that he's actually gotten truly useful results out of
>all of these things, he'd probably be considered "just another of the
>opinionated fools" that clutter up the Internet.

And most of the opinionated fools (ahem, like yours truly) don't have half
of the exploratory genius that he does.  Even if he does fail sometimes.

>Note that the final item on that list is really crucial; he minimizes
>things to the max, and the rather bizarre results are indeed direct
>results of that philosophy.

Yes, simple is beautiful.  Simple is also maintainable.  I think everyone
in these language groups has to agree with that; our languages are
different, but they're all based upon some conception of simplicity.

If I were more prone to cross-posting I'd toss this over to the Forth NG,
but we don't really need that :-).

>cbbrowne at hex.net - "What have you contributed to free software today?..."

I maintain Omega -- only LGPL, but it's only a game.

-- 
-William "Billy" Tanksley




More information about the Python-list mailing list