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

Re: What is a lightweight language

On Fri, 7 Dec 2001, Paul Graham wrote:
> I also don't buy this story that all you have to implement
> are the "big five".  Just look at the Scheme report.  All
> the things that are not described as "library procedures"
> are stuff you have to implement as primitives: strings,
> vectors, math, i/o, etc.

In the Schemes-in-Java world it is *mostly* true that you
need only build the "big five" provided you also build
a "lightweight" interfacee to the underlying Java system
as this gives you the primitives and it is relatively easy
to right most of the R5RS primitives using the "big 5"
and the Java interface. (Some exceptions are eval, read,
define-syntax, and call/cc). This approach also allows you access to
Java's libraries and environments (browsers, servers, jdk)
for free. Jscheme (formerly known as Silk) is one example
of this approach (silk.sourceforge.net)

> No real, usable language can be made out of 5 primitives.
> It is still a very interesting question, though, how small
> you can get the core to be.

But five primitives + lightweight interface to underlying language
= usable language. Lightweight here meaning easy to learn, fun
to use, and expressive.