[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: scsh in PLT Scheme?

Lo, on Tuesday, March 26, Paul Steckler did write:

(I should point out that I haven't really seriously used PLT scheme in
quite some time, so I'm basically evaluating scsh by comparing it to PLT
scheme 102 or thereabouts.)

>   - do you currently use scsh?	

>From time to time; see below.

>   - what features of scsh do you use?

Mostly the POSIX and networking bindings---the equivalents of sections 2
and 3 of the standard Unix manual.

The s-expression notation for regular expressions is also pretty cool,
and I like some of the functions which operate on regexps: regexp-fold
and regexp-fold-right are quite cool, in particular.

I don't use the process notation or the awk stuff that often.

>   - would you use a PLT scsh-oid that implemented some, but not all of
> scsh?

I'd certainly consider it; it depends rather heavily on exactly which
subset of scsh it supports.

> Because scsh is a moving target, ported C code would raise significant
> maintenance issues.

This is unfortunate, but I completely understand your reluctance to
attack such a problem.


> Here's what would be missing:
>  - low-level socket stuff (Ch. 4)

How low level is `low-level'?  The one time I used scsh instead of PLT,
I did so because I needed to perform reverse DNS lookups.  At the time,
PLT didn't support this operation, even in the networking collection.
Sure, I could have written a C extension, but I decided it wasn't worth
the headache of dealing with the FFI.

This is probably off-topic, but I will mention one thing that I really
like about scsh, or rather Scheme48: some of the features of the module
system make unit-testing much easier.  In particular, at the REPL you
can `switch your perspective,' if you will, into a particular module.
Once you've done this, you have access to *all* of the module's
definitions, including those that are not exported.  This is obviously
not something you want to do in a running program, but it does make
unit-testing the module easier, as you can test the module-private
functions directly.