Re: Categorizing and describing implementations Jakub T. Jankiewicz 13 May 2024 20:16 UTC


On Mon, 13 May 2024 21:23:56 +0300
Lassi Kortela <xxxxxx@lassi.io> wrote:

> > There is also LIPS, but it doesn't seem to fully support any RnRS yet
> > and has no SRFIs.
>
> Yes, indeed.
>
> > I'm not sure it would count as an standalone implementation, since it is
> > tied-in to the Javascript environment.
>
> No Scheme implementation is ultimately standalone. The bare-metal PC
> schemes (Loko, Dream) and the microcontroller Schemes (Bit, PicBit,
> ArmPit, Microscheme) may come closest. Most Schemes depend on C.  Kawa
> and IronScheme depend on the JVM and the CLR, respectively. IMHO these
> are prominent implementations by any reasonable measure.

I would include LIPS and BiwaScheme as implementations. LIPS has Bookmark
that allow to run Scheme on any website even that it's not full Scheme
according to spec (no continuations and TCO). LIPS support SRFI, but they are
included in README on GitHub and not on the website. And BiwaScheme is
Scheme used in Repl.it (coding playground). So both can be tried directly from
Browser without installation (Gambit can also be tried in browser but it's
really heavy and you need to download a lot of JavaScript to run). BiwaScheme
also lack some features like syntax-rules and continuations don't work 100%
correctly (I found a bug some time ago when was investigating how
continuations work). But some older implementations that are included
also have some limitations. Also note that the code most new users write
will works in both (LIPS and BiwaScheme) and they are the easiest to try for
non technical people (like new programmers).

As far I know it's not easy to install Scheme for newcomers that came from
Windows OS, since most require compilation of source code (maybe except
Racket). On Linux it's easier since some of them are include in official
repositories.

Just realized:
Maybe it would be good idea to include instruction how to install different
Scheme implementations on different systems. Or maybe just those that are
easiest to install on different OSes. Something that will help people start
with Scheme.

--
Jakub T. Jankiewicz, Senior Front-End Developer
https://jcubic.pl/me
https://lips.js.org
https://koduj.org