From: Philip Hunt (email@example.com)
Date: Fri Nov 28 2008 - 02:25:38 MST
2008/11/28 Edward Miller <firstname.lastname@example.org>:
> I was just reading about programming methods that I had never heard of
> before such as Aspect-oriented programming and Subject-oriented programming.
> I was thinking what consequences the programming language has for AGI.
Aspect-oriented programming, from what I've seen of it, is only useful in
unfrequently-encountered situations; I doubt if it'll ever catch on in
a big way.
I've never heard of Subject-oriented programming -- maybe you can elaborate?
> I know there are lots of flame wars regarding the superiority of programming
> languages, and the Artificial Intelligence community has been arguing over
> it for years. Some prefer Logic Programming, while others like Marvin Minsky
> prefer good ol procedural programming.
A programming lanugage is a tool and you should use the right tool for
the job. Anyone who claims that there is one language which is the
best at all jobs is wrong. So is the domain of AI programming small
enough that there is one language that is best for all of it? I very
much doubt if this is the case.
> Finally, I believe Eliezer has
> recommended Java, correct me if I am wrong.
I believe he has. It's a decision I find puzzling -- I wouldn't
recommend Java for anything that involves exploratory programming and
coding complex algorithms.
> I was looking over a lot of the criticisms of all these languages, and it
> seems to become much more serious when you think about what it could mean
> for AGI. Yet, even within a particular programming paradigm there is much
> variation. I am reminded of the people who prize C# because it is impossible
> to have buffer overflows and so forth.
This is true of most languages that do automatic storage management,
e.g. Lisp, Python, Java, etc.
> Is there any way to know which would be the best for specifically a
> recursively-improving AGI?
I would approach this problem it by using two separate languages. One
would be the "implementation language" in which the majority of the
program was written in. Running inside this program in a sandbox would
be a simpler language, possibly a subset of Lisp, which the program
could reason about and alter.
Of course, I'm sure I wouldn't get the architecture right on the first
attempt. As Frederick Brooks said, plan to throw the first one away,
you will do anyway. If that's true of mundane programming, how much
more true is it of AGI?
> Or does it not matter what the base language is
> because the AGI will just evolve new languages?
All Turing-complete languages are in some sense equivalent. But the
differ in terms of how fast they run and how easy they are to code in.
Humans find it easy to reason about a program in a high-level language
than a low-level one; an AI would surely be the same.
> That would sort of assume
> that there is really only one perfect type of intelligence that all roads
> lead to, which I am not so sure about...
It's easy to imagine two intelligences such that one is always better
at Domain A and the other is always better at Domain B.
> (I am imagining Eliezer's minds-in-general diagram).
I'm not familiar with this. URL?
> Granted, if solving this problem requires
> learning or inventing some new obscure programming method, this would be a
> burden, but maybe a necessary one.
Learning a new programming language is a vastly easier task than coding an AGI.
-- Philip Hunt, <email@example.com> Please avoid sending me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html
This archive was generated by hypermail 2.1.5 : Wed May 22 2013 - 04:01:37 MDT