[plt-scheme] Portable development

From: Anton van Straaten (anton at appsolutions.com)
Date: Wed Oct 13 22:55:57 EDT 2004

Neil W. Van Dyke wrote:
>   2. Have option of switching primary Scheme implementation,
>      [...] also a great way to mitigate the risk to an
>      application of a Scheme implementor -- heaven forbid --
>      getting hit by a bus.)

This is especially pertinent in the Scheme case, due to the prevalence of
automatic weaponry amongst certain Schemers, not to mention a predilection
for armed, helicopter-supported departmental coups[1].  Why do you think PLT
keeps its key developers stashed at multiple strategic locations throughout
the country?

>   4. Dislike the nesting level introduced by PLT "module" syntax.

Right, it's not as though one ever has to nest things in Scheme otherwise...

* * *

Seriously, re portability, a lot depends on what you're developing in
Scheme, and why.  In a commercial environment, Scheme can require a lot of
justification just to be considered.  In that context, the availability of
multiple independent implementations, plus the ability to support a variety
of target platforms - including e.g. the ability to be hosted on Java or
linked into a C application - can be a real point in its favor.

OTOH, every time I use PLT, I'm impressed by breadth and depth of its
implementation(s) and its tools.  There are many cases where it would be
foolish to avoid taking advantage of some its non-portable features - again,
depending on the nature of the application.

An obvious example is user interface: if you want to develop a traditional
GUI in Scheme, MrEd is an obvious choice.  But good application design
dictates separating the core program logic from the interface anyway, so it
can be quite possible to implement the back end of the application in a more
portable way, while implementing the front end completely PLT-specifically.

>   3. Altruistically promote many Scheme implementations, and make your
>      reusable libraries usable to the most people.

...thus, of course, improving the Scheme ecosystem.  Scheme has a small
enough community as it is, and the benefits of writing portable systems are
likely to be far more direct than is usual for "altruistic" situations.
SXML, for example, has received attention outside of the Scheme community
[e.g. 2,3], in a way that I think would have been less likely to happen had
it been specific to a particular implementation.


[1] http://groups.google.com/groups?selm=w7d1y7slii6.fsf%40cs.brown.edu
[2] http://www-106.ibm.com/developerworks/library/x-matters31.html
[3] http://www-106.ibm.com/developerworks/xml/library/x-syntax.html

Posted on the users mailing list.