Re: Introduction

From: J. Andrew Rogers (andrew@ceruleansystems.com)
Date: Wed Sep 07 2005 - 12:25:00 MDT


On 9/7/05 7:12 AM, "Richard Loosemore" <rpwl@lightlink.com> wrote:
> I was in the middle of my Ph.D. thesis (in AI/Psychology) in 1992 when I
> finally realised that the systems I wanted to build *could not* be built
> without incredibly sophisticated tools. I stopped work and switched
> careers to become a software engineer for a while, with the aim of
> finding out just what kind of tools would be needed.

This is a phase most people go through at some point in their AI career, a
cheap belief that makes it easy to avoid doing hard work.

How do you know that current tools are terribly inadequate or that
incredibly sophisticated tools are required if you are incapable of even
specifying the engineering problem they need to solve?

Now, it may yet turn out that some uber-tool is required that we have not
thought of, but until you specify the problem you are going to use the tools
to solve you won't be able to prove it nor make useful progress on
developing a helpful tool. I am personally doubtful that such a tool is
missing. If it can't be done with a C compiler (not that you necessarily
would want to), it can't be done at all. Most of what is missing in the
software world is nice integration and the implementation convenience of "do
what I mean, not what I say", which largely amounts to a sugary frosting
layer on the computer science cake.
 

On 9/7/05 8:49 AM, "Ben Goertzel" <ben@goertzel.org> wrote:
> 1) higher-order expression power similar to Haskell
> 2) easily customizable / extensible syntax
> 3) high performance at networking and (most critically) large-scale memory
> management, similar to what's achievable via C++ on Unix
> 5) powerful scripting similar to the Unix command line

You can get these with a combination of C and number of languages (I use a
tightly integrated C/Python combo). It is not ideal in some ivory tower
academic sense, but chasing that last bit of perfection is not worth the
effort for the amount of syntactic elegance you may gain from it.

> 4) a nice visual development environment similar in spirit to MS Visual
> Studio
> 6) automatic program-correctness-checking integrated with above system

Nice to have, but not entirely necessary unless the amount of code you are
slinging is large. Using standard languages (like C and Python) buys a lot
of fancy tools for free.

> but 3 is quite subtle and involves a lot of
> tricky computer science as well as difficult programming.

I probably spend more time working on this than any other part because this
is where most of the complexity is hiding. Easy to ignore but very
important in practice. Expressive languages are almost universally lousy in
this regard, but this can be fixed with relative ease in the more extensible
ones (in a low-level binary sense) if you know how to do the programming.

Cheers,

J. Andrew Rogers



This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:52 MDT