PLT Scheme 4.0 - and the best just keeps getting better
Thursday, June 12, 2008
Eli Barzilay announced the release of PLT Scheme 4.0 today. His blog posting contains the details about this release (and there are a whole lot of enhancements); however, for me, a few things really stood out:
- Domain Specific (and other) Language support: Although the R6RS standard was quite
controversial, it's been ratified and some Scheme implementations are
starting to provide updates to bring them in line with R6RS. PLT
Scheme has support for R6RS in the "module" language; however,
because PLT Scheme lets you choose from a variety of different
languages (either through the IDE or with a "#lang" shorthand module
form in the source code), you aren't limited to using just one. With modules, you
can have your cake and eat it too, choosing from a number of
different languages/versions.
Matthew Flatt (in another blog post)
described the new PLT Scheme approach
as:
"Version 4.0 is a fresh start in the way that we present PLT Scheme. It's a new language. PLT Scheme is a dialect of Scheme, certainly, but it's not merely a superset of R5RS, R6RS, or other standards, and those standards are not really the best place to start understanding PLT Scheme. At the same time, the unique extensibility features of the PLT Scheme language and tools allow them to support other languages easily, including R5RS (though a new plt-r5rs executable), R6RS, and more."
In the past, some people have claimed that PLT Scheme is the "Common Lisp" of Scheme implementations because of the breadth of functionality that is included with PLT Scheme. However, this comparison isn't really accurate. The PLT Scheme module approach allows one to effectively keep the historic "purity" of the Scheme language while still retaining the ability to incorporate those additions/innovations that one might want/need to use when necessary. So, with PLT Scheme, it is easy to build a language with strong type support (see Typed Scheme), or a language for web programming (see Arc), or a language for creating presentations (see Slideshow) and to "mix-and-match" programs written in those languages with other PLT Scheme languages. I've written in the past about "The Lisp Difference" as being the ability to easily create Domain Specific Languages (DSL). Well, PLT Scheme 4.0 provides additional support (both with language constructs and with tools) for creating custom DSL's. This focus on DSL support at both the language and the tool layers tends to set PLT Scheme apart from other Lisp implementations. - Documentation: The documentation (which was very good in
the past anyhow) has been vastly improved. The changes I picked up
on immediately were:
- The PLT Scheme web site has been re-designed and it is far easier to navigate and find things.
- There are a number of web tutorials (both for beginners and more advanced users) as well as a video introduction available off the PLT Scheme front page.
- The documentation has been re-written and re-organized, making it a lot easier to find things. In addition, new tools help 3rd party developers create and install documentation for libraries and PLaneT packages.

