Welcome to the forty-fifth issue of Racket News.
Today the is second birthday of Racket News. The first issue was released exactly 2 years ago on Feb 1st, 2019. A lot has happened in Racket in the last few years and it’s going stronger than ever : as a language, implementation, and community. Many thanks to all of you who have been following Racket News, sending suggestions for improvements and contributions to the issues. Cheers to a new year!
With the good news out of the way, my apologies for the delayed issue. We missed the mid-month issue in January as I had a rough start of the year but I am now on the right track and things should proceed as normal. The next issue should be here on February 15th, and the following one on March 1st.
Grab a coffee and lets dive in!
Table of Contents
- What’s New?
- Racket Around the Web
- New Releases
- Call to Racket!
- Project in the Spotlight
- Featured Racket Paper
- Upcoming Meetups
- Racket Project Statistics
- On Friday, Feb. 19, there will be a Metaprogram-off between Sam Tobin-Hochstadt and Quinn Wilton on #PLTalk. Watch and join the live chat on Twitch. For more information on #PLTalk, check its GitHub repo.
- Not a recent article, but a good read nonetheless: A Guide to Programming with Racket (DrRacket) by Justin Chae.
- Sam Tobin-Hochstadt has done some quick analysis and concluded Racket is now 16 times faster than it was in 2004.
- Have you ever wanted the classic bomberman written in Racket? There you go… just for you!
- There have been many developments in quickscript world - here are a few quickscripts picked for you.
- url2script: Easily install quickscripts found in gists, gitlab snippets, pasterack and pastebin.
- Workspaces for DrRacket and also related, restore workspce for DrRacket.
- Open multiple files at once
- Open Recent
Racket around the web
Do you blog about Racket? Let me know!
- Racket Compiler and Runtime Status: January 2021 by Matthew Flatt.
- Book Review: Racket Programming the Fun Way by James Stelly by Micah Cantor.
- Converted site from Frog to Pollen by Andre Alves Garzia.
- Running Racket CS on iOS by Bogdan Popa.
- Plot Animations by Alex Harsányi.
- Start programming in Racket by writing a “guess the number” game by Cristiano L. Fontana.
- Why I Still Lisp (and You Should Too) by Anurag Mendhekar.
If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.
elle(pkg/src) is a Racket-like language with reimagined syntax and updated features by Kelly Smith.
resyntax(pkg/src) is an experimental refactoring tool built on top of syntax-parse by Jack Firth.
termconfig(pkg/src) is a cross-platform terminal helper library in Racket by Zachary Dodge.
Call to Racket!
Want to contribute to Racket? Don’t know where to start? Each RN issue I choose an easy issue to fix to get you started contributing to Racket. Come, give it a go.
We started with a call to fix issue 3603 of Racket. This is still ongoing with a PR being merged soon. The next issue is issue 2883 of Racket. If you are interested in fixing this but need some guidance, feel free to comment on the issue page. Will you be our next Champion?
Project in the Spotlight
This week’s project in the spotlight is
resyntax by Jack Firth.
From the website:
Resyntax is a refactoring tool for Racket. The tool can be guided by refactoring rules, which are macro-like functions defined in terms of syntax-parse that specify how to search for and refactor different coding patterns.
This tool is extremely experimental. Do not attempt to incorporate it into your projects yet. For now, the refactoring suggestions produced by resyntax are best viewed as glimpses into one possible distant future of static analysis for Racket. Feedback, questions, and ideas are all greatly appreciated and are best directed at the GitHub repository.
Resyntax does not have anything approaching a public API yet. If you want to actually try using it, open the source code of the resyntax module using DrRacket’s “Open Require Path” menu option, change the file path given to the refactor-file! function in the main submodule, then run it. Choosing a file checked into Git (or another version control system) is highly recommended in order to make it easier to view the diff and easier to undo the changes.
It’s unusual for me to spotlight a recently released project but I find that one of the things that are really needed in the Racket ecosystem are devtools like these, therefore this is a spotlight for the experimental version. I hope it excites you as much as it does me.
Featured Racket Paper
This issue’s featured paper is Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine) by Matthew Flatt, Robert Findler, Shriram Krishnamurti, and Matthias Felleisen.
The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme’s read-eval-print loop. We describe the key elements of the MrEd virtual machine for building a programming environment, and we step through the implementation of a miniature version of DrScheme in MrEd. More generally, we show how MrEd defines a high-level operating system for graphical programs.
Do you know of any upcoming meetups I can advertise? Let me know.
- Racket users video meetup brought to you by Stephen De Gabrielle and Sam Phillips - Feb. 6, 2021 at 8pm CET, via Gather Town. Paper for discussion (optional pre-reading) is: A Foreign Function Interface by Eli Barzilay & Dmitry Orlovsky.
Racket Project Statistics
Some data about the activity in the Racket et al. repositories, for the month of January, 2021.
|# commits||Issues (new/closed/open)||PRs (new/closed/open)|
Contributions by (25):
- Alex Harsányi
- Alexis King
- Bob Burger
- Bogdan Popa
- Davis Silverman
- Dominik Pantůček
- Fred Fu
- Gustavo Massaccesi
- Jack Firth
- John Clements
- Matthew Flatt
- Mike Sperber
- Noah Ma
- Pavel Panchekha
- Robby Findler
- Ryan Culpepper
- Sam Tobin-Hochstadt
- Sergiu Ivanov
Repositories included above are:
Many thanks to my sponsors:
- Jesse Alama. Jesse is a Racketeer, mathematician, and writer based in Main, Germany. He is the organizer of RacketFest, and writer of various Racket books and libraries.
- Sam Tobin-Hochstadt. Sam is a researcher and associate professor at Indiana University, a member of the core Racket team, and the brains behind Typed Racket and Pycket.
- and my private sponsor, who shall remain anonymous.
If you wish to sponsor me and my work on Racket and Racket News - feel free to visit my GitHub Sponsors webpage. All sponsorship levels are welcome.
- Jesse Alama
- Laurent Orseau
- Stephen De Gabrielle
for their contributions to this issue.
This issue is brought to you by Paulo Matos. Any mistakes or inaccuracies are solely mine and they do not represent the views of the PLT Team, who develop Racket.
I have also tried to survey the most relevant things that happened in Racket lang recently. If you have done something awesome, wrote a blog post or seen something that I missed - my apologies. Let me know so I can rectify it in the next issue.