User login

Navigation

Racket Released

Racket is a programming language. Racket is the language implementation formerly known as PLT Scheme. Racket is available now. To quote the release announcement:

With Racket, you can script command shells and web servers; you can
quickly prototype animations and complex GUIs; regexps and threads
are here to serve you. To organize your systems, you can mix and
match classes, modules or components. Best of all, you start
without writing down types. If you later wish to turn your script
into a program, equip your Racket modules with explicit type
declarations as you wish. And Racket doesn't just come as a typed
variant; you can also write your modules in a purely functional and
lazy dialect.

Racket comes in so many flavors because Racket is much more than a
standard scripting language or a plain programming language. Racket
supports language extensibility to an unequaled degree. A Racket
programmer knows that making up a new language is as easy as writing
a new library.

The major reason that there's been more of an emphasis on typed code recently is that Typed Scheme/Racket has been developed in the past 4 years, and has matured significantly in the last two. Thus, there's significantly more ability to use typed code now than previously.

...and didn't feel enlightened, because they didn't explain "why now?" It could be somewhat unrelated to where the actual language is going. I thought, though, that maybe it is because of the positive development of typing scheme, or maybe the Chief Racketeers felt alienated from the direction standard Scheme is headed following R6RS.

Think like a software developer. Version releases may be accompanied
by some PR account of some great new feature, but real developers know
that's not really how it works. Systems achieve a certain degree of
stability and maturity that developers are ready to stand behind, and
at that point they make it out as a new version.

There was, likewise, no magical moment or action that triggered the
renaming. Because the Racket team is large and constantly creating
new ideas and content (there are many more innovations that we
*haven't* listed on our pages, but are known to the smaller
communities that use them), and each group has different priorities,
it is likely that there never would have been one special moment
everyone would have agreed on as definitive. Rather than pretend
there is, we decided to simply reflect the reality of large,
distributed, cooperative development.

The crystallizing idea is that Racket (with DrRacket) has grown into a
sufficiently rich framework for very powerful language creation.
Racket is a programmable language in relation to Scheme just as Scheme
is programmable in relation to most other languages. It seemed
valuable to have an identifiable name for a language built around such
a concept.

That is probably not the crisp, satisfying response you were hoping
for, but hopefully it at least addresses your question.

Racket is a programmable language in relation to Scheme just as Scheme
is programmable in relation to most other languages. It seemed
valuable to have an identifiable name for a language built around such
a concept.

But: there is that false syllogism between Scheme and implementations of Scheme (in the mind of an uninformed reader). As if other implementations of Scheme are somehow behind the curve of *language* development, but only because they call themselves *implementations*, not languages.

And you might say, "but there are no languages with exactly the features of (e.g.) lazy racket!" But by identifying the implementation with the language, that's almost guaranteed, right? Because who would want to implement a partial compatibility with an implementation-defined language? After all, there is no Scheme implementation with exactly the same features as any other Scheme implementation.

The PLT team is trying to separate their fate from the fate of Scheme in general. By re-branding the language/environment, they have a shot like Clojure of getting some popularity and a broader user base. Additionally Racket isn't just a language, its an environment + lots of language extensions, etc...to share the same boat with Scheme in terms of popularity is a bit unfair as they've basically built their own nice boat.

I don't see a problem with the re-brand, but it still lacks the pragmatism of Clojure in terms of appeal (Racket has its own VM, Clojure runs on the JVM). Additionally, if they only hit as far as Clojure, I don't think that's good enough for continued interest and survival.

I guess I'm just concerned about Scheme. If the rename brings wild fame to Racket, then Scheme could benefit in a trickle-down kind of way. But if there is only moderate success, the effect of the rename could hurt Scheme on the whole. I understand why they would want a rebrand, but it is bittersweet.

As a Racketeer and a Schemer, I think you're exaggerating our success in academia. For example, in ICFP this year, there are 2 Scheme (really Racket) papers. There are at least twice that many papers where Agda is the primary language. Scheme has certainly had much success, but currently it is very much a niche language even in research.