First things first. I am not a standards body, nor a journal,
and as far as I know there is not going to be a conference
on this topic. I'm a user, and a would-be language implementor,
trying to elicit opinions from people about what ought to be
in standard scheme libraries for WIMP, multimedia, and FFI.
I'm going to review the proposals I get, put them online,
debate them in these fora, pick and choose among them the
things I think are most useful and consistent with the
spirit and semantics of the language, and collect them into
a document, which I intend to make publically available,
subject to no limitation or condition of any kind. If there
are enough interested people to form a "committee," I'll
cheerfully put it to a vote instead of doing the picking
and choosing myself; I'm a relative neophyte as a language
designer after all.
We need standard libraries and functionality for scheme. I'm
interested in defining a "functionality standard" for the
language.
R4RS is a language standard, and it's a good one. But some
questions about the things that make a language practical and
usable are beyond the scope of a language standard.
In particular, we need a specification for standard libraries.
In part, I'm asking what's out there -- if there are existing
libraries or methods of doing things that handle these utility
functions, and they are well-designed and well-behaved, then
by all means let's write their semantics into a standard!
Right now, I'm going to address the crying needs:
1) We need a WIMP library. Windows, Icons, Menus, and Pointers.
What do they look like in scheme? What should they
look like in scheme?
2) MultiMedia. We need a way to handle sound and graphics.
Who's got one? What's it like?
3) FFI. We need standard methods for calling libraries and
other modules not written in scheme, nor written
specifically for scheme systems, without tne need to
recompile those modules. Some development tools
provide libraries without source code for c compilers.
There ought to be a standard way to use those libraries
in a scheme program.
4) FPI. We need standard methods for compiling libraries and
other modules that can be used or called from programs
not written in scheme. A module written in scheme
ought to be able to replace a module written in C
with *NO* modifications to the source of the C program
that calls it.
These things need to be as portable as possible. I'm thinking
that some of these services might be written as independent
"dispatcher" type applications to run concurrently with scheme
environments -- they'd send and recieve characters to scheme
via ports. Then the interface to them could be written in
plain scheme code and imported to any R4RS compliant system.
That's a stopgap measure -- it is my sincere hope that
scheme implementors, with standards in hand, would build
the functionality directly and more efficiently into their
systems.
I'm "punting" on a couple of things:
1) a Standard Object System
2) a Standard low-level Macro System
until such time as various issues surrounding them become
clearer.
Your assistance is requested,
Ray Dillinger
|