One reason for picking a language more powerful than the run-of-the-mill
imperative ones (of which virtually all the ones mentioned so far are just
different flavors) is that the can give you access to different paradigms
that will enhance your view of how an AGI should work internally.
Very true. Arguably, before choosing a language, an AGI researcher should
know an ordinary imperative language (Pascal/Java/C++/C#), some flavor of
LISP, Prolog, and some flavor of ML -- just to know what the real choices
are . . . .
The differences between most of the (ordinary imperative) languages that
have been cited in this debate, from Python to Ruby to Java to C++ to C#,
are merely syntax and the supporting infrastructure. Python is a little
looser so that it is faster to develop in but it is more of a b*tch to
debug. Ruby has a lot of infrastructure that makes web development really
fast and easy but doesn't have a lot beyond that realm. Java and C# are
virtually the same language -- except C# has a *lot* more infrastructure.
And (in my opinion), C++ needs to be retired (get over it).
Personally, I've got a bias against Perl and Python because I've had far too
much experience that shows that quick to develop turns into difficult to
maintain and expand past a given point. That's not what you want to see in
something like AGI.
I also have a bias against lower-level languages. Writing in machine
language is for compilers, not human beings. Writing in assembly language
is only justified when doing heavy duty algorithms on specialized floating
point processors (and only if someone else hasn't done it first). Writing
in C is just plain dumb (these days). I've done all three of these things
*when it was appropriate* but it just isn't appropriate any longer. The
successful developer is the one who uses the existing tools and
infrastructure as the foundation for serious progress with clean, elegant
architecture (and builds more layers of tools/infrastructure in their own
personal toolbox). The programmers who are ending up out of work are the
ones who keep re-inventing the wheel over and over again.
As I've pointed out before in this venue, AGI is a hard enough task that
it
makes sense to do some serious work on tools-to-build-the-tools. As
Abraham
Lincoln put it, "If I had 8 hours to chop down a tree, I'd spend 6
sharpening
my axe."
Amen.
----- Original Message -----
From: "J. Storrs Hall, PhD." <[EMAIL PROTECTED]>
To: <agi@v2.listbox.com>
Sent: Sunday, February 18, 2007 3:29 PM
Subject: [agi] Re: Languages for AGI
One reason for picking a language more powerful than the run-of-the-mill
imperative ones (of which virtually all the ones mentioned so far are just
different flavors) is that the can give you access to different paradigms
that will enhance your view of how an AGI should work internally.
A classic example is Prolog (which I use for most my day-to-day
programming).
I suggest reading "Clause and Effect" by Clocksin, a slim, high-level
volume,
to get a "For God's sake, why didn't they ever mention this in school"
reaction when you see how 5 lines of Prolog do more than 100 lines of C
for a
wide range of AI-like problems. (Not the actual AI itself, mind you, but
all
the sort of thing that forms the infrastructure of a system).
Surveys of languages in common use very often show that O'Caml leads the
pack
in a combination of conciseness of code and fast execution time, for what
it's worth.
http://shootout.alioth.debian.org/sandbox/index.php
For the past month or two, I've been delving into a new paradigm that
promises
to have a deep effect on the way programming in general is done, but is
especially germane to AI. It's reactive programming (see this discussion
at
http://lambda-the-ultimate.org/node/2068 )
The idea is a language that looks a lot more like the signals-and-systems
mindset of cybernetics than the logic-based one of McCarthy and early AI.
As I've pointed out before in this venue, AGI is a hard enough task that
it
makes sense to do some serious work on tools-to-build-the-tools. As
Abraham
Lincoln put it, "If I had 8 hours to chop down a tree, I'd spend 6
sharpening
my axe."
Josh
-----
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
-----
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