[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon May 3 13:08:27 1997 
Subject:Re: The future of POP-11 
From:Richard Matthias 
Volume-ID:970503.01 

Jonathan Cunningham (jlc@sofluc.demon.co.uk) wrote:
: pop@roo.cs.umass.edu (Robin Popplestone) wrote:
: >I am proposing to make my own work target the Java Virtual Machine, because
: >I think  it  is  going  to  be  a  highly  portable  and  efficient  target

: Sounds like a good idea. I've been saying for several years now that C++
: is too hard to learn (i.e. the demand for programmers exceeds the supply
: of people capable & willing to use C++). It wasn't obvious until about
: a year ago what would replace it.

The reason there are not enough c++ programmers is that there are (a) not that
many good programmers full-stop and (b) programming is not taught sufficiently
well. You can think of c++ as a super-set of C, so depending on how much
functionality you want to use, it is really no more complex than C. In
addition there are things in c++ like templates and  the STL (standard
template library) that a quite complex to learn if you are a library
developer, but as a library user actually make programming simpler by a
margin.

Java *will not* replace c++ ever. The JVM is useless for many environments
(though it is well suited to AI work) and even if you compile directly to the
physical machine the madated garbage collection makes Java unsuitable for many
many things.

In addition the lack of libraries and tools mean that Java will not even
compete with C++ in Javas strongest arena (desktop apps) for at least another
2 years.

: Having done a certain amount of AI programming in C++ recently, I, for
: one, expect java to be an improvement (the language - I'm not sure if even
: yet the development environments are ready for serious work).

Garbage collection is about the only thing Java actually buys you over c++
from an AI point of view and you can get GC in C++ with a library so its no
big deal.

Object orientation is usefule in AI for simulation work, but with Java you are
forced to use it. No problem for the experienced programmer, but when you are
teaching a beginner to program (something pop11 has been used for at Sussex)
you really don't want to have to explain OO at the same time before they can
even get their eliza or whatever going.

As far as implementations go, Asymetrix have a Java developement environment
that allows you to change and re-compile classes will the app is still running
which is a flexibility you dont get with most LISPs, never mind C++ - although
it is in principle possible, no-one has ever bothered to code it.

: [snip]

: Note that "small and simple" doesn't imply low level. Words and lists in
: pop are simple. Why have vectors, arrays, strings etc.? Those are
: implementation details, and I shouldn't have to know about them.

Because somewhere along the line people decided they wanted to write useful
software in pop. Lists are a nice data abstraction, but you pay a huge
performance hit if it doesn't fit your algorithm. STL (see above) has a vastly
superior attitude towards the interface of data absractions and algorithms
using iterators. ObjectSpace have provided a similar facility for Java in the
JGL.

: Anyway, good luck with your work targetting the JVM.

Yes, it certainly makes sense to target the JVM for pop. Hopefully they will
sort out the problems the Scheme people had with it not garbage collecting
class objects (which are generated on the fly when closures are used).


Richard