Chuck Esterbrook wrote:
On 2/18/07, Eliezer S. Yudkowsky <[EMAIL PROTECTED]> wrote:
Heh. Why not work in C++, then, and write your own machine language?
No need to write files to disk, just coerce a pointer to a function
pointer. I'm no Lisp fanatic, but this sounds more like a case of
Greenspun's Tenth Rule to me.
I find C++ overly complex while simultaneously lacking well known
productivity boosters including:
* garbage collection
* language level bounds checking
* contracts
* reflection / introspection (complete and portable)
* dynamic loading (portable)
* dynamic invocation
I was being sarcastic, not advocating C++ as the One True AI language.
Eliezer, do write code at the institute? What language do you use and
for what reasons? What do you like and dislike about it with respect
to your project? Just curious.
I'm currently a theoretician. My language-of-choice is Python for
programs that are allowed to be slow. C++ for number-crunching.
Incidentally, back when I did more programming in C++, I wrote my own
reflection package for it. (In my defense, I was rather young at the time.)
B. Sheil once suggested that LISP excels primarily at letting you change
your code after you realize that you wrote the wrong thing, and this is
why LISP is the language of choice for AI work. Strongly typed
languages enforce boundaries between modules, and provide redundant
constraints for catching bugs, which is helpful for coding conceptually
straightforward programs. But this same enforcement and redundancy
makes it difficult to change the design of the program in midstream, for
things that are not conceptually straightforward. Sheil wrote in the
1980s, but it still seems to me like a very sharp observation.
If you know in advance what code you plan on writing, choosing a
language should not be a big deal. This is as true of AI as any other
programming task.
--
Eliezer S. Yudkowsky http://singinst.org/
Research Fellow, Singularity Institute for Artificial Intelligence
-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?list_id=303