RE: A fairly concrete path to the Singularity

From: Ben Goertzel (ben@webmind.com)
Date: Sun Apr 29 2001 - 06:56:23 MDT


> Well, in a more dynamic and powerful language it might only be 100,000
> lines. :-)

True, Java is a very verbose language. On the other hand, it's also really
easy to read, unlike LISP

> To me, the ease of expression and
> productivity is much more important than raw execution speed. The speed
> can always be improved by putting sufficient ingenuity into
> optimization.

This attitude was why we chose Java in the first place. We all found Java
simple and natural and easy to code in. Unfortunately, after a while, we
found that adequately improving memory usage and speed for this application
was very very difficult even ~with~ very ingenious optimization by a great
team of people.

The problem is that self-organizing cognition pushes the limits of what's
achievable with current computers. (And anyone who knows me, knows that I'm
more likely in any given instance to be guilty of overoptimism than
overpessimism... )

> I have never heard of a very successful hyper-large Java system either.

Damn right. We thought we could build the first one, and we basically
failed, due to the fact that Java just isn't engineered for this, yet. Now
we're working around this mistake by re-coding the critical processing and
memory intensive bits of the system in C. But this is not a universally
acclaimed decision within our group... some folks still believe that with
sufficient ingenuity, the Java version can be adequately optimized. Maybe
they're right; we'll see over the next copule months. It's true that only
some of the problems with our last system version were language-based;
others were due to aspects of the architecture that we've now drastically
improved.

> But there is no reason whatsoever that Lisp cannot handle anything that
> Java can and then some.

As was pointed out recently on this list, major firms are now pouring tens
of millions of dollars into making Java workable for large-scale, real-time
applications. Unless I'm mistaken, the same is not true for LISP.

But anyway, the problem is that, so far, it seems like Java can't handle the
Webmind AI Engine...

> If you are going to the C world for core functionality then I recommend
> doing some OO in Objective C.

This is indeed worth considering

> C/C++ is a bad joke as far as programmer productivity.

Yup, you got that right...

On the other hand, testing a big Java program when all existing profilers
crash on apps with many threads and copious RAM usage, also sucks... and
consumes all the time that was saved programming in Java instead of C....

> > In LISP, can one "method" look into another while it's running
> and see the
> > ephemeral values of local variables inside that method? (I
> know, this is
> > Java terminology; I forget the LISP terminology.) If so, then this is a
> > more powerful kind of reflection than Java currently provides.
> >
>
> Certainly. And you can easily write code to find every usage,
> definition, override and so on of any method as such reflection is
> naturally supported. You could sort of do it in Java if you dropped
> down to class file format and were pretty patient.

I don't think you can do what I suggested in Java, even by looking at class
files. The values of local method variables during execution are only
contained inside the JVM, in RAM, not in the class files.

> Speaking of platforms, is WebMind particular about OS? I confess to
> being mainly a Linux bigot. For some reason every time I get my hands
> on a new windoze machine, despite my solemn intentions otherwise, it
> eventually ends up being wiped and loaded with Linux. I do Windows for
> $$$ but I do Linux generally on my own time.

We've been using NT and Linux both, and occasionally Solaris (we couldn't
afford many Solaris boxes).

The majority of our developers prefer Linux, but not 100%. And the JVM's
at this point are stronger on NT.

ben



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