Talk:Racket (programming language)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

What does PLT stand for?[edit]

Reminder: Racket used to be called "PLT Scheme"

All well and good but... What does "PLT" stand for? The disambiguation page's options hint that it might be "Programming Language Theory", but I don't see this actually stated anywhere.

That's an interesting question. I think it started out as a project of the Rice University Programming Languages Team ([1]), but then moved over to its current set of maintainers. But the "who" section of the PLT Scheme website ([2]) does not mention Rice at all. My guess is that that is merely because the Rice PLT is no longer in any way associated with the project, but I'm not at all sure, and I don't know quite how to articulate that in the article. Golwengaud 22:42, 20 June 2007 (UTC)[reply]
I once asked the PLT guys about that via email. Matthew Flatt's reply said:
It used to be an acronym, but we shifted our emphasis, so now it's just a name that's spelled with three capital letters.
He declined to say what PLT might have been an acronym for; some kind of in-joke?
Prof Flatt also said that people who produce PLT Scheme are happy to be called the "PLT group". Cheers, CWC 11:32, 28 June 2007 (UTC)[reply]

PLT[edit]

PLT was an acronym for some 30 minutes. It was coined in response to a request by Ken Kennedy to distinguish our group from the compiler group. The "T" never stood for theory because we never identified our work with plain language theory.

I could make up a lie on how to spell out PLT and what it stood for in those 30 minutes, but I'd rather just leave this in the dustbin of history.

The people who maintain PLT Scheme now are the very same people who started the project at Rice in January 1995 (two days after POPL to be precise). By the time I left Rice for Northeastern in 2001, Cormac, Matthew, and Shriram had graduated; all other PLT students moved with me, including Paul Steckler our research scientist. The only person not to move along was Mario Latendresse, who went to California for personal reasons.

-- Matthias Felleisen, who coined the term

Hello World[edit]

Is there a reason why the Hello World example program is done by using a teachpack to draw it, instead of the far simpler

(print "Hello World")

Zebediah49 (talk) 23:46, 7 May 2009 (UTC)[reply]

You might well ask. I've just spent a very frustrating day looking at the PLT Scheme docs and struggling to work out where the 'real' language and 'real' Hello World is. The 'teachpack' concept is, IMO, extremely misguided, since these weird domain-specific 'teaching languages' don't teach students anything remotely resembling an actual programming language as used in the real world. And then there's concepts like 'what is the difference between DrScheme, MrEd, and MzScheme' to grok which are not explained at all wel in the docs.

(Inferred summary for people who actually understand computers: MzScheme is a text-mode-only executable, MrEd is a custom MzScheme build with a WxWidgets binding to the PLT 'scheme/class' object system statically linked in. DrScheme is an environment running on MrEd. There guys, was it so hard to just say the truth right off in the Quick Start Guide instead of obfuscating it behind silly 'teaching languages' which go out of their way to hide reality?)

I haven't yet read How To Design Programs but from my 'out of the box experience' as a programmer I'm pretty sure that whatever it thinks it's doing pedagogically, it's the Wrong Thing. It's certainly doing the Very Wrong Thing for trying to explain not 'what is programming' but the much simpler question of 'I'm a programmer, how do I get to a graphical Hello World in PLT'.

Eventually I found the GUI docs, got past the red herrings like 'Slideshow', and found that this is something like the real, official GUI Hello World:

#lang scheme/gui
(define frame (new frame% [label "Hello World"]))
(define msg (new message% [parent frame]
                            [label "Hello world..."]))
(send frame show #t)

but this is not quite the same as what's in the manual, so I can't be 100% certain. Should it be '#lang scheme' or '#lang scheme/gui'? Do I need the (require scheme/gui/base) if I have the #lang scheme/gui? The 'language' versus 'require' system takes some getting used to.

MrEd seems quite powerful as a GUI framework... but man, the PLT documentation, being aimed primarily at vaguely defined 'teaching' (ie, not actually producing any usable real-world program that you can pick up and use for real work) is really, really sucky. Natecull (talk) 01:55, 23 June 2009 (UTC)[reply]

The choice of writing "hello world" here using the "world" teachpack is a bit odd, yes. However (and I believe, based on personal knowledge of the PLT community and use of their curriculum, that the PLTers would agree), "Hello World" does not come up in the early days of the curriculum, or indeed at all, since there's very little pedagogical value to it in the context of the HtDP curriculum, which is organized around systematic design strategies (as opposed to language features such as loops, arrays, and particular library functions). No, it is not the traditional way of introducing a language; this page reflects a cultural divide. 76.191.222.13 (talk) 08:03, 12 August 2009 (UTC)[reply]

The "hello world" program should probably just be this:

#lang racket
"hello world"

Specificially, evaluation of this program causes the text "hello world" to be printed. Clements (talk) 23:38, 8 June 2010 (UTC)[reply]

Doesn't this simply "evaluate" to the string "hello world", but doesn't "print" it as is the requirement for a Hello World program? Yes, if you put it into a read-eval-print loop it will print it, but not as a standalone program? --208.80.119.67 (talk) 22:13, 1 September 2011 (UTC)[reply]

PLT Racket[edit]

Chatter on the plt-dev mailing list points to a name change, just a headsup. —Preceding unsigned comment added by 124.122.93.29 (talk) 18:03, 26 March 2010 (UTC)[reply]

Yep. There's a good explanation here. See also the announcement on plt-dev. We'll need to move and edit this article sometime in May. Cheers, CWC 18:36, 26 March 2010 (UTC)[reply]

MrEd? I don't get it.[edit]

  • Is the programming language by any kind of metaphorical stretch a talking horse?
  • Ed is a pun on educational, but what is Mr a pun on?
  • How is that name a "tease"? Will Mr. Ed be doing a burlesque dance in suspenders? What does it all mean?

213.122.35.82 (talk) 00:33, 11 January 2011 (UTC)[reply]

MrEd's dead. —Preceding unsigned comment added by Elibarzilay (talkcontribs) 16:30, 11 May 2011 (UTC)[reply]


Practical systems that use Racket[edit]

It would be nice to have a section that lists some of the practical systems/websites that have been built using Racket. Kgashok (talk) 20:48, 26 May 2012 (UTC)[reply]

The second to last section of the article does have such a list. It's still short since I just wrote a few things I knew off the top of my head, so feel free to expand. --Takikawa (talk) 16:06, 27 May 2012 (UTC)[reply]
Do you know whether the company Untyped uses Racket? There might be some more things here at http://stackoverflow.com/questions/2796350/web-development-haskell-or-scheme which can be used to expand this section. Yes? Kgashok (talk) 01:02, 7 June 2012 (UTC)[reply]
See also the discussion at https://practicaltypography.com/why-racket-why-lisp.html —DIV (1.129.111.54 (talk) 14:00, 18 April 2019 (UTC))[reply]

Influencing Rust[edit]

Under the "Influenced" section in the sidebar, it is said that Racket influenced Scheme, Clojure, and Rust.

Citations are provided for Scheme and Clojure - but not for Rust.

My question is, how did Racket influence Rust? Conceptualizing (talk) 16:24, 1 September 2014 (UTC)[reply]

I think Rust's macro system is influenced by Racket but I don't have a good citation for it. I will add one if I find one. Takikawa (talk) 18:39, 16 October 2014 (UTC)[reply]

https://mail.mozilla.org/pipermail/rust-dev/2013-May/003947.html indicates pkg management as well (unsigned comment added by User:OMPIRE)
The Mozilla rust-dev mailing list citation doesn't seem relevant given that the Rust build system no longer works as described in their discussion. Cause4complex (talk) 07:34, 4 November 2022 (UTC)[reply]
Here's one source that claims that Dave Herman, Paul Stansifer, and John Clements contributed to Rust's macro system. The source states "Dave is a macrologist; he is an expert on macros, with a background in the Racket language.". The other two people are a part of the Racket team. --Nullzero (talk) 18:46, 4 November 2022 (UTC)[reply]

Huge screenshot[edit]

Is it necessary to have that screen shot in the infobox in addition to the logo? It takes up an inordinate amount of space. I think it should be moved further down the article main. Oecology (talk) 06:10, 4 July 2016 (UTC)[reply]