-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 9-Mar-07, at 12:06 PM, Jan Skibinski wrote:
expect most of the lesser Schemes will not support define-syntax at all (e.g. EdScheme, Elk, JScheme, LispMe, SIOD, TinyScheme, to
name a
few).
So it boils down to a portability issue. If Snow adds support for define-syntax, then packages that use it will not be portable to
many
Scheme systems. Should we care?
This seems like a lot of them would be left out on the cold. But maybe you, the Snow parents, should first answer this question: What exactly motivated you to create Snow in the first place? I know - portability. But in what sense?
It is really about practical Scheme programming, i.e. using Scheme to write real applications. To achieve this goal we need packages for lots of different functionality. To achieve that goal we need the bulk of the combined manpower of the various Scheme subcommunities. For that we need a framework that is portable, i.e. where everyone involved feels they can benefit from the Snow packages in their favourite Scheme system. Portability is also important to attract new users to Scheme by giving them the freedom to select the Scheme system best suited for their application, and to change the system during the course of developing and maintaining their application as their needs change.
If it was mainly done for pedagogical reasons, then we should only worry about such subset of Scheme implementations that is currently taught, or aspire to be taught, at schools. But if Snow is to be industrially portable, then we should be more careful here and perhaps consider each case separately.
For example, of those lesser known Schemes, Elk and TinyScheme are mostly used for embedding, so we should not worry about those, right? They are to be customized, cut, or extended to suit specific needs of standalone applications, such as Impromptu, http://impromptu.moso.com.au/. [Nota bene, a very nice application, in my opinion]
I don't think Snow should exclude embedded Schemes. Embedded systems are one of the many applications of Scheme.
Then there are implementations that target Java: Kawa, SISC and JScheme. I am not exactly sure what is their target audience. If their main goal is to provide nifty Scheme ideas to Java users, then I would not worry about them that much. But maybe this is not the main reason of their existence.
I don't understand your reasoning here. Those systems fill an important niche.
Maybe we should ask them: do they really care to be compatible with Snow?
Problem is... who is "they"? The authors of those systems? The current users? The future users?
For those and other Schemes that care to be Snow portable there is always the portable define-syntax, psyntax by Dybvig and Waddel, http://www.cs.indiana.edu/chezscheme/syntax-case/, or possibly its revised version, currently in R6RS.
The caveat is: "The portable system is designed to be adaptable with minimal effort to any Revised5 Report implementation of Scheme, with the provision of a small set of implementation-dependent hooks to install the expander."
Jan
The way I see it the real issue is political. I want to maximize the impact of Snow on the practice of "real-world" Scheme programming. How many users and package writers will Snow attract if define-syntax is supported, and how many users will we lose because define-syntax is supported? My intuition is that globally it will be a win to support define-syntax.
Marc