email@example.com (ozan s. yigit) writes:
> > > So the Scheme community needs to just shut up until and unless they
> > > have a viable alternative to present the world. Less posting; more
> > > hacking.
> > What do you suggest for "more hacking"?
> > Guile
> > Scheme 48
> > DrScheme
> > Kawa
> > ...
> i think maybe olin means something that lets people use it instead of (say)
> perl, and know that there is a whole community supporting that something,
> busily writing programs to make life easier on various platforms etc.
> [i would give my proverbial arm for a scheme advocate like tom
> christiansen... :)]
Oz has got it. Allow me to illustrate. Last week I wrote a little Web hack
with a friend -- an email reminder service to poke you about your mom's
birthday and such, using email addresses to index into a relational db. (You
can try it out at http://arsdigita.com/bday/)
I hacked in tcl, I'm sorry to say. This is pretty embarassing -- I do research
in Scheme and systems programmming in functional programming languages; I've
even written a Web server entirely in Scheme. Gosh -- obviously it would be
much better to write the service in Scheme. Well, OK. But my Web server was
written in scsh, which runs on top of Scheme 48. Not Scheme. Scheme 48. No
interface to relational databases. No separate compilation of modules. No
threads (in the version S48 I use). I could implement any or all of these
things. But not in an evening. Hmm. Well, how about if I run my Web server
code in a Scheme system that has threads or an SQL interface? Oops -- I
couldn't do that, because my server was written using Scheme 48 record types,
and Scheme 48's Clinger/Rees explicit-renaming low-level macros, and Scheme
48's exceptions, and Scheme 48's modules, and scsh's system calls. You can't
just load it into some other Scheme. You'd have to *port* it.
Programming in Scheme is an extremely unportable task if you do anything
serious. Scheme is much less portable than, say, tcl or C. So we are unable
to build on each other's work, but must instead keep re-inventing the wheel.
If you *union* up the technology and features in all the Scheme
implementations out there, you have an amazing tool. But each implementation
is different, and all lack some important features. You don't hear people
saying, "I wrote my program in SGI's implementation of C -- I can't run
it on your Linux box because the struct declarations are different, and
Linux's C implementation doesn't have do-while loops. Also, the interface
the Unix write() function is different, so I'd have to rewrite all the I/O."
I couldn't solve my problem in Scheme. And I am tolerably well acquainted with
the language and its implementations. I could solve my problem with tcl. The
server we were running had a tcl interpreter linked in, and the tcl system
had hooks to an RDBM interface. Took an evening.
As long as this situation persists, the Scheme community can snipe about
what a lousy, poorly-designed language tcl is, but they aren't in a position
to offer a credible alternative. So it is just empty flaming. So why post?
Go fix the problem.