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.

If you haven't looked at, say, Typed Racket, Dr Racket, or how to create your own languages in Racket, now might be a good time.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

PLT Scheme is a Racket

This explains the rationale for the name change.

The Scheme part of the name PLT Scheme is misleading, and it is often an obstacle to explaining and promoting PLT research and tools.

The Little Racketeer: A Pocket Guide to Smuggling Parentheses


edit: Or should that be Pick-Pocket?

Thank God for Clojure.

Thank God for Clojure.

Clojure is an invention of Man

Go thank Rich Hickey.

I was not giving thanks for

I was not giving thanks for the language, but making a jibe on renaming.

Does Not Compute

The joke/jibe is lost on me. As far as I can tell, Clojure has slightly more relationship to Scheme and Lisp than JavaScript does to C. There is certainly some heritage.

I'll admit your comment struck me as out of place, but I hardly dare suggest The Admin is off-topic ;-).

The Lisp is dead. Long live The Lisp.

If only we had some way of computing things

The name change took months to take effect. Perhaps Ehud could have said: Clojure at last?

Of course the true Racketeer needs no Clojure, not only because she has closures but because there's always a continuation.

Sometimes PLT humor is a little like its promises: it has to be forced.

I begin to

I begin to understand.

Puns... are slightly above potty humor.

But you provide some nice double-entendres.

Crash course in Racket/Scheme

What can you recommend as crash-course for Racket/Scheme for otherwise experienced programmer? The s-expressions don't make much sense at the moment for me.

Crash Course

Crash Course

Why now?

Is there some sense in which the language has recently moved further away from core Scheme? I have the sense that there's been a big increase in emphasis on typed code over the past ... two(?) years.


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 it's this development that has led to the renaming?

Not really

The reasons for the new name are given here: http://racket-lang.org/new-name.html Types are part of what makes Racket different, but far from all of it.

I read the explanation...

...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.

Why the change

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.



It's an excellent response. To summarise: The toolset around PLT Scheme had become attractive enough that we felt it was time to tackle some issues standing in the way of wider adoption.

Can they steal your executive summary?

No offense to Shriram, but your summary was a lot easier on the eyes, and is better marketing material.


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.

Preface: great work, excellent marketing, fantastic implementation, &c. Really laudable stuff.

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

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.

hanging separately

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.

Scheme as an academic topic

Scheme as an academic topic has been wildly successful. As a mainstream programming language not much so, there really is no Scheme brand outside of a few tight circles.

Scheme in academia

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.