gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Re: arch roadmap 1 (and "what's tom up to")


From: Pierce T.Wetter III
Subject: Re: [Gnu-arch-users] Re: arch roadmap 1 (and "what's tom up to")
Date: Thu, 1 Jul 2004 17:32:46 -0700


On Jun 30, 2004, at 11:19 PM, Tom Lord wrote:



From: Andrew Suffield <address@hidden>

Does tcl have *any* redeeming features?

It used to.  There were a couple of forks in the road, and the
otherwise very admirable hacker J.O. picked the wrong path, imo.

 Hmmm... To be perfectly honest, I haven't done any TCL hacking in about
12 years now. I wonder if that was when the branch was...

 I remember this was before OO-TCL.

Anyways, I'm mostly scripting language agnostic anyways. As people have pointed out to me, furth is the VM for micro-pika, and so it shouldn't matter to me, because really, the rules file will be in micro-scheme, and Furth is just an implementation detail for pika, not for arch per se. That is, if you see a rules.pika file and no rules.furth file, presumably arch will go call pika to turn rules.pika into rules.furth. You can then embed pika execution into a program by embedding a
furth interpreter, while having a pika "compiler" around somewhere.

So that's not so bad, I won't have to program in furth, though I will have to
learn scheme. (sigh)

 I will comment, in my experience, for non-lisp hackers, lisp-like
languages are a different paradigm that can be somewhat hard to get your head around at first. I really thought Perl (for instance) was awful, until I read "Effective Perl", and realized how elegant it was actually. It still requires me to think differently then when I do C hacking. So I'm a little skeptical that its
appropriate for a config file.


When CMU was working on the Andrew email program it had a really
minimal configuration mechanism that was almost freeform because it
wasn't done yet so it was more or less "syntax free".

Then they added a proper parser, which would reject badly formed files.

  Everyone complained, because the "syntax free" format was actually
easier to use.

Yes, that's the kind of bind which, as responsible hackers, we'll
avoid getting into.

You might not know that when Information Technology Center at CMU was
working on the Andrew email program, towards the end of the lifetime
of the Andrew project, they added a turing complete extension language
to the email program (a Scheme dialect) --- alas, by that time, it was
far too late to deploy much.

That's exactly what I'm talking about. What I had read that they found was that users didn't like the turing complete extension language. They liked
the sort of ad-hoc thing they had before, because they never got:

 "syntax error on line 30"

 It just did something weird instead. :-) So they screamed, and they put
the old config language back, not because of legacy files, but because it
was easier to use.

That seems strange from a programming point of view, but for a user its much
easier to deal with:

option.foo.bar = 30 (dumb parser, read first string, then = , assign to second string)

 then

option(blah(blah))=30; (note semicolon required, balanced paranteses, etc...)

As programmers, compile time errors are much better then runtime errors (one thing that bugs me about Python, for instance). For users, sometimes simple and stupid is often better, because the user doesn't want to have to store in his brain ANY information about how to write a config file. For instance, while I have written some complicated makefiles, I actually can't at this moment remember how to write one. That information
is stored offline on some dead trees.

When I worked at a video game company, one cool program we had was a "programming for artists" tool. It basically knew enough about syntax so that it would only present enough options to the artist at any moment so that the syntax was perfect. That is, if you had a blank page, you could choose from a list of possible statements: assignment, if, while, for,
etc.

It was amazing some of the complex scripts these artists were able to produce when they were presented with a small list of choices at each juncture. For instance, you were only allowed to choose a variable if you'd already declared it, and if it was the right type, etc.

Now these are artists, so they're very right-brained, and not generally very verbal.

So anyways, I'm not sure that "turing complete" is better then "stupid".

 Pierce





reply via email to

[Prev in Thread] Current Thread [Next in Thread]