Lisp, Java, and C++

Scott L. Burson gyro@zeta-soft.com
Mon, 26 May 1997 21:50:37 -0700 (PDT)


   From: Chris Bitmead uid <chris.bitmead@alcatel.com.au> (x22068)
   Date: Tue, 27 May 1997 09:33:41 +1000

   >I have seen Lispers bashing Java on Usenet.  This strikes me as very strange.
   >To me, Java *is* Lisp in C clothing, with a few other goodies thrown in.  I
   >celebrate it and hope it does great.  It sure beats the hell out of C++!

   Java beats C++ sure, (what doesn't), and I'd dearly prefer it to
   C++. I'd imagine it would actually enjoy programming in it. But Java
   isn't Lisp in any shape or form as far as I can see. It's C++ with the
   crud taken out, some good features also taken out, and some different
   good features put in.

I think Java is *much* closer to Lisp than to C++.  Don't be misled by the
strong typing.  The variable binding model is that of Lisp (in particular,
pointers are hidden from the programmer); it's safe; it's GCed.  Because of
the strong typing, polymorphism is more restricted than in Lisp, but it's
entirely adequate for writing real programs.

I guess if C++ and CLOS were your primary exposures to object-oriented
programming, you might think that Java was more like C++.  Certainly Java's
OOP model is not much like CLOS's.  But there have been a variety of OOP
subsystems for Lisp, and Java is relatively close to some of them.

And consider this: implementing Java in Lisp would be far easier than
implementing C++ in Lisp.  Hell, if I were Franz, I would go ahead and build a
Java implementation on top of Allegro.  They'd probably sell a lot more Java
than CL!

-- Scott