I made some videos about Racket (a.k.a the return of Playing the Game with PLT Redex)

104 views
Skip to first unread message

Leandro Facchinetti

unread,
Jan 3, 2021, 4:26:41 AM1/3/21
to Racket Users
Hi all,

Here are the videos:

Playing the Game with PLT Redex: https://youtu.be/NszLQNROdw0
Understanding the Type of call/cc: https://youtu.be/7Zkt_IJaYOY
Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore: https://youtu.be/_wY7FBtr7_c

The first two used to be articles on my website (https://leafac.com), but I changed the way the website is built and took them down. From time to time people ask me about it, so here it is, in video form.

I hope you like it.

Best.

Sage Gerard

unread,
Jan 3, 2021, 3:41:04 PM1/3/21
to Leandro Facchinetti, Racket Users
Thanks for sharing.

I honed in on the review video because I like the philosophical discussions that come from them. I'm not sure about the comments re: toxicity in the community and how that helps one succeed in academia, but I did see some value in discussing the merits of LOP.

I spent enough years on JavaScript to see the ecosystem slowly gain features that other languages enjoyed for decades. It seemed wise to learn new tools instead of waiting on a standards committee. Part of my frustration with JavaScript was spending so many hours either A) reinventing the same things, or B) trying to get other people's stuff to do what I thought was advertised. All in the name of achieving some level of productivity that computers are ironically terrible at providing. I noticed after a while that I was trying to use JavaScript to control everything, including other languages and other variants of JavaScript. Racket was attractive because the structure of a "governing" language was already in place, with access to many more features. This made problems A and B seem less significant when I ran into them again, because I always had a way out of a technical corner.

I agree with you about adapting tools to what people already know, but not for the same reasons. You mentioned "GUIs and spreadsheets." I think the productivity gains of a GUI do not discount the need for LOP. For example, my wife uses Excel for work, but she took the time to learn SQL, Excel Macros and VBA to address data problems that GUIs won't make easy for her (like making reports using inventory data in different formats from many international entities). She never planned to be a programmer, and she doesn't call herself one, but she became one by the circumstances of a global economy where everybody is doing their own thing.

Another example: A lawyer reached out to me due to his interest in Racket, and how it can help him manage his firm's growing collection of evidence and notes. His rules for keeping the documents organized and mutually-reinforcing were sophisticated, but his staff was having trouble working within those rules. They would frequently ask him to clarify where to put a particular PDF. This lawyer (again, someone who does not identify as a programmer) has trouble with the file managers, search features, and the other organizational tools in their disposal. And when I listened to him speak, he was... thinking like a programmer!

What does it tell you if my wife, an accountant, has to learn SQL and VBA to be an accountant? What does it tell you if a lawyer independently stumbles onto Racket and wonders what it could do for his business?

It tells me that people's work is getting complicated, and you can't just say that Racket is failing to adapt to what people know. If we are going to live in a world of people forced into computer literacy, and GUIs are not able to cover these little openings to deep technical rabbit holes, then we need a way to help people keep moving when the things they know start to fail them. But what do we use to quickly synthesize complex and exact ideas at a moment's notice? Language. Why would I accomodate user's knowledge of tools that were too limited to help them in the first place? I can trust them to communicate, so why not give the words they know power? After all, they'll always have words.

I don't know if LOP is the best answer, or the answer that will see the most adoption. All I know is that Racket is the most interesting attempt at the answer I've seen so far.

~slg


‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
--
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.

Leandro Facchinetti

unread,
Jan 5, 2021, 2:20:13 PM1/5/21
to Racket Users
Thanks to everyone who responded (privately and otherwise) for the nice words.

Sage Gerard: To each its own. I’m glad to hear that you have these success cases with Racket 😃

sleepnova

unread,
Jan 6, 2021, 5:27:22 AM1/6/21
to Leandro Facchinetti, Racket Users
Thanks for sharing.
I think you did mention an interesting idea, to embed domain specific language in another.
Does Racket have any support for this?

Leandro Facchinetti <goo...@leafac.com> 於 2021年1月6日 週三 上午3:20寫道:
Thanks to everyone who responded (privately and otherwise) for the nice words.

Sage Gerard: To each its own. I’m glad to hear that you have these success cases with Racket 😃

--
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.


--
- sleepnova
呼叫小黃創辦人 & CEO

Michael Ballantyne

unread,
Jan 6, 2021, 7:53:45 PM1/6/21
to Racket Users
> ... to embed domain specific language in another. Does Racket have any support for this?

One approach is discussed in our paper about making macro-extensible DSLs: https://dl.acm.org/doi/abs/10.1145/3428297
Section 8 shows some examples of how extensibility is useful for layering higher-level DSLs atop lower-level DSLs and for integrating DSLs together.
Reply all
Reply to author
Forward
0 new messages