PLT Scheme Gets a New Name
The PLT group announced that it is changing the name of PLT Scheme to PLT Racket. DrScheme will become DrRacket, mzscheme will become racket, and so on. Normally I dismiss this type of thing as either marketing driven silliness or a cover for other, more serious problems that the vendor is having. I almost always find this sort of gratuitous name change annoying. In this case, however, I agree that the change is warranted.
DrScheme was my very first Scheme and I was impressed by the quality
of its implementation and the tools that it provided. Over the years
I became less enchanted. First it was little things: rather than use
format
as the format-and-print function like every other LISP, PLT used
printf
. Even worse, they did have a function named format
that did
something else making it harder to use a real format
. Rather than use a
standard sockets interface for their networking they used their own
API that made using PLT Scheme harder for someone used to the normal
socket interface. To be sure, PLT provided alternate libraries that
ameliorated these annoyances, but it was still something you had to
specify in every program file. Not fatal, just irritating. And they
did have all those neat tools.
They went too far, however, when they removed set-car!
and
set-cdr!
. This was justified by declaring these two functions "too
dangerous" for programmers to use safely. Statements like that should
set alarm bells ringing for any Lisper. The point of Lisp, at least
to me, is to remove straight-jackets and give programmers the power
they need to solve the problem they're working on. Instead, here's
PLT throwing up roadblocks that programmers need to waste mental
resources working around.
That was it for me. I switched to Guile and haven't looked back. I have been vaguely aware, though, of further changes to PLT Scheme in the name of protecting programmers from themselves. It's been clear for some time that the PLT group has been moving their Scheme towards a "Pascal with Parentheses" language. There's nothing wrong with such a language, of course. The PLT group is, after all, a group of academics interested in finding optimal ways of teaching programming. But if you have such a language you shouldn't call it Scheme. The PLT folks have recognized this and changed the name of their language to Racket. I say good for them.