Re: Scripts vs APIs

David Cake (
Thu, 8 Sep 94 12:21:34 WST

> > It looks like a language, it smells like a language...
> A common categorization of languages is this:
> 1) "Descriptive" or "declarative" languages -- These have
> only nouns that desribe things. E.G. "circle {red,
> radius { 3 inches}}". HTML is an example of a declarative
> language. I'm hoping VRML will be declarative. These
> lang's rarely have compilers, almost always have interpreters.
> (It's usually not worth writing a compiler).
I think that VRML should be a descriptive language as well.
It needs a little bit more than just a descriptive language
though. It needs some sort of protocol for communicating with
VRML sources (equivalent to HTTP) for a start, as it is running
over a network.

> 2) "Proceedural" languages -- These have nouns and verbs,
> describing how to do things. "add this to that, if
> this equals that". C, C++, FORTRAN, BASIC, COBOL
> are all of this type. So is Postscript. Ditto Forth.
> Subclasses include stack-based (Postscript, Forth),
> structured (C, F77 but not F66), and object oriented (C++).
> Most have compilers.
Basically, I think that there are some things cannot easily be done in
a purely desciptive language. For these we need some sort of procedural
mechanism. This should simply be a way of interacting with the interpreter
of the descriptive language, and will probably directly interact with
the protocol.

> BTW, Brown Univeristy's 3D language is this kind of
> a language, so is Kaleida's ScriptX. I personally do
> NOT want VRML to be proceedural.
My preferred option is for there to be a standard library/API
for people that want to build procedural tools that use VRML, and then
they can develop using a HLL, or they can write an interface to a
scripting language of their choice and use that.
If there are no procedural elements in VRML at all, then all
we have is yet another scene description format. There needs to be some
easy way to build intereactive tools, or there is little point in making
it a net protocol at all.
I do not particularly want to put procedural elements in VRML
directly, as I do not think that the world needs another language for
people to program in.
> --linas