Matthew Gingell wrote:
> Samantha Atkins writes:
> > The idea of "domdules" that contain semantic and usage information about
> > modules is a good one.
Domdules had nothing to do with Flare. It was an awkward term for what I
now would call a sensory modality.
> Samantha is asking the exactly the right questions, and I haven't yet
> seen any followup. Succinctly, what does Flare do that necessitates
> inventing a completely new wheel?
Quite a number of things. User-supplied annotations do not have a truly
good or even passable access idiom - including annotation namespacing and
annotation metadata, for example - in any language of which I am aware.
> Attaching user supplied meta data to language constructs is trivial
> and not a novel idea - though long term exposure to C++
I program Python lately.
> Take a look at the literate programming faq. Skim a decent Lisp text
> and write some Prolog or Haskell or something else to break out of
> the code as dead text / compilation is conversion to noise model and
> get your mind some fresh air. Lisp blew the top of my head off
[et cetera et cetera]
Actually, Matt, while I understand that your suggestions are well-meant
(lately I've come to realize that other people hypothesizing I have never
once thought of something blindingly obvious are simply expecting a
behavior that most people do in fact exhibit, not being personally
insulting), I did in fact go through several lists of the "best of" modern
languages back when I was writing my notes on Flare, looking for features
that I could skim off, and making sure I didn't miss something obvious.
This included Haskell, Common LISP, Scheme, Smalltalk, Tcl, APL, and so
on, in addition to C++, Python, Perl, Java, Java VM, MOO, 680x0 assembly,
Forth, Pascal, Prolog, and all the other languages with which I was
already familiar at that time.
There are things I expect to do in Flare that I will only be able to do
in, say, Python by badly reinventing Flare, like trying to write C++
programs in C. Sure, you can implement your own virtual function tables,
but do you really want to? Just having a picture in my mind of Flare has
already led me to write seriously different (and better) Python programs
with quick-and-dirty emulated Flare behaviors. For example, the program
that I use to maintain my Webpages actually reads in fragments of Python
code from an XML file and organizes them using the attached attributes.
Even without being able to use the debugger on those code fragments,
there's still been an improvement in programming speed just resulting from
more modular design. "Literate programming" is just good writing and some
features for forced documentation, not any kind of annotative programming.
> I don't think though you appreciate what a enormous task
> simply specifying a non-toy language would be or what it would take
> to improve on the state of the art.
It would take a small fragment of the knowledge of cognitive science that
it would take to specify a non-toy AI. The fragment in question is
knowledge about how the human mind handles annotative thinking, just as
object-oriented programming is derived from a theory of how the human mind
In other words, I dispute your implied belief that all the major "wins"
have been used up. I've found a collection of design patterns in my
programming career that are very basic, language-type features, which I
have found to lead to incredibly more modular and adaptable code, and
which I have yet to find implemented in any existing programming language,
for all my browsing.
Frankly, I see no good reason why you have a need to immediately
hypothesize anything about Flare one way or the other, rather than waiting
on further information. Flare simply hasn't made it to the top of my
to-do list yet, in part because people like you keep asking me to write
documents, and a lot of those requests have a higher priority than Flare.
I now politely request that you stop bugging me about this.
-- -- -- -- --
Eliezer S. Yudkowsky http://singinst.org/
Research Fellow, Singularity Institute for Artificial Intelligence
This archive was generated by hypermail 2b30 : Mon May 28 2001 - 09:59:55 MDT