goo is object oriented

What is goo?

goo v. colloq. a viscid or sticky substance; sentimental tripe;
object oriented language for use in unix applications.
goo (yes, no capital 'g') is an object-oriented language designed to be embeddable in any applications requiring an object-based script language. It's especially aimed at applications which are expected to have long (or infinite) uptimes and may have multiple simultaneous users.

goo is being designed by Robey Pointer, with help from Scott James Remnant and Greg Brown. The goo compiler and libgoo library are being written by Robey in his spare time.

What makes goo different from other embeddable script langauges?

What did goo steal from its predecessors?

The original purpose of goo was to create a script language that could be used as the engine for a MUD (multiuser text game). We looked at using Perl or Java, but neither language supported everything we needed.

Perl supports OO only as a last-minute addition, sort of nailed onto the side, and doesn't enforce any of the class attributes. Java does a lot of what we wanted, but doesn't support multi-user operation or allow classes to be reloaded after being modified.

As a result, goo is strongly influenced by both Perl and Java, as well as drawing from Tcl, Ada, and C++. Some features we pulled from these languages include:

Where can I get it?

Right now you can't, but soon enough you can. Our current plans are to release it under the GNU GPL. The test application "Mr. Sparkle" is currently (as of Mar 1999) parsing, compiling, and executing basic goo code.

However, for the curious of you, we have released the "goo spec". This is the document we use to draft out the language (usually only slightly out of date with respect to the goo code).

Where can I make comments or ask Questions?

If you have any comments or questions about goo then e-mail Robey Pointer at

Misc. Documentation

Last modified 8 Jun 1999