Subject: Re: setting variables
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 2000/11/22
Newsgroups: comp.lang.scheme
Message-ID: <8vhmj2$t59n$1@fido.engr.sgi.com>
dognews <frankque@infinet.net> wrote:
+---------------
| Frank "Lauri Alanko" <la@iki.fi> wrote:
| > Do _not_ start learning Scheme with Script-Fu. Script-Fu uses SIOD, which
| > has relatively little to do with modern Scheme...
| 
| What is SIOD mentioned in connection to Script-Fu.
+---------------

George Carrette's "SIOD" ("Scheme In One Day", a.k.a. "Scheme in One Defun")
<URL:http://people.delphi.com/gjc/siod.html>:

	SIOD is a small-footprint implementation of the Scheme programming
	language that is provided with some database, unix programming and
	cgi scripting extensions.
	...
	The motivation behind SIOD remains a small footprint, in every sense
	of the word, at runtime, at compile time, and in cognitive attention
	required to understand how the system works...

That is, the code is small, the memory size is small, and the startup time
of an SIOD script is (usually) very small. However, the total runtime of
non-trivial scripts is likely to be signficantly *longer* than some more
larger-but-highly-optimized implementations, such as MzScheme.

Plus, the "Scheme" that SIOD implements is fairly old, roughly at the
level of R3RS (which is quite different in places from R4RS or R5RS),
and has other idiosyncrasies introduced by its having been tuned for
scripting and use as an extension language for C.

The connection with The Gimp? Simple: SIOD is what they started with
as a base when they developed Script-Fu. Script-Fu has evolved even
further, but it's still basically still SIOD at its core.

+---------------
| I would know why it has abandoned sort of by modern Scheme?
+---------------

If I'm decoding this somewhat-fractured English correctly, I think
you probably have it backwards. Instead of picking a "modern Scheme"
(by which I mean IEEE Scheme or R4RS or later -- remember, they are
both over 9 years old at this point!) as the basis of their scripting
facility, the Script-Fu authors picked a obsolete (in the standards
sense) 12-year-old dialect of Scheme. That is, the Script-Fu authors
"abandoned" modern Scheme, not the other way around.

Having said that, however, I acknowledge that there were considerations
that may have led them to do that -- particularly the "small-footprint"
character of SIOD. One may agree or disagree with that decision, but
there it is. It's a "done deal".

So... When programming with Script-Fu, one simply must accept that
Script-Fu is at this point its *own* language, and not try to depend
on current Scheme textbooks or standards for much advice. [However,
the SIOD documentation in the URL mentioned above may prove useful.]


-Rob

-----
Rob Warnock, 31-2-510		rpw3@sgi.com
Network Engineering		http://reality.sgi.com/rpw3/
Silicon Graphics, Inc.		Phone: 650-933-1673
1600 Amphitheatre Pkwy.		PP-ASEL-IA
Mountain View, CA  94043