Will Crichton

Cognitive engineer, incoming assistant professor at Brown.

Will Crichtontonofcrates
2025-05-31

@jfdm Sounds like a cool course! Would love to hear about your experience. My inbox is always open.

Will Crichtontonofcrates
2025-05-31

@lindsey Revisiting human-centered ideas poorly done by well-meaning but ill-equipped programmers is my passion!

Will Crichtontonofcrates
2025-05-30

@alilly We eagerly await the programmer of legend, the one who knows the entirety of C++26.

Will Crichtontonofcrates
2025-05-30

@dysfun Then they can read our other textbook designed to teach people ownership!

rust-book.cs.brown.edu/ch04-02

Will Crichtontonofcrates
2025-05-30

We've been thinking about: what would a resource designed specifically to facilitate transfer from one language to another look like, at least for the relatively common case of C++ to Rust? This is our first step in that direction.

Will Crichtontonofcrates
2025-05-30

We've just released an early access version of the C++ to Rust Phrasebook, a resource for helping devs translate C++ idioms into Rust. Check it out here:

cel.cs.brown.edu/crp/

Will Crichtontonofcrates
2025-05-30

@jonmsterling @carloangiuli I've wrangled with bug reports from those kinds of users as well. IME the most effective strategy is to have a community discussion board (usually a Discord) staffed with knowledgeable users who can handle common problems and escalate as needed. It just sucks that it's not meaningfully searchable.

Will Crichtontonofcrates
2025-05-29

@jonmsterling I think those templates are primarily scaffolding for less experienced engineers. The alternative is a flood of people saying smth like "my compiler said it has an internal error" or otherwise not understanding the conditions for reproducibility.

Will Crichtontonofcrates
2025-05-06

This work is joint with Gavin Gray (gavinleroy.com/) and Shriram Krishnamurthi (@shriramk).

Will Crichtontonofcrates
2025-05-06

A core problem with diagnostics is that they have to reduce a ton of information into a CLI-friendly output. Many folks have worked on this problem by devising clever algorithms for picking the "right" info to show to users.

This work asks instead: what if we didn't have to reduce any information by using a GUI instead? We focused on designing a variety of interactions to empower users to iteratively explore whatever information is relevant to their debugging task.

Will Crichtontonofcrates
2025-05-06

If you've ever struggled with trait/typeclass compiler errors, or if you're interested in better user interfaces for compiler diagnostics, check out our upcoming PLDI paper: "An Interactive Debugger for Rust Trait Errors"

Rust famously has good error messages. But we found that with the right interface, people become ~3x faster at identifying the root cause of a trait error. See our blog post, including a live demo in your browser:

cel.cs.brown.edu/blog/an-inter

A screenshot of the Argus tool for visualizing trait inference. It shows a VSCode panel with a Bevy program on the left containing a type error related to the `SystemParam` trait, and an Argus visualization of that error on the right.
Will Crichtontonofcrates
2025-04-21
Will Crichtontonofcrates
2025-02-24

Honored to have our paper on the pedagogy of Rust ownership selected for the SIGPLAN Research Highlights. I'm so glad to have found a community of wonderful, supportive people who appreciate my idiosyncratic research ideas!

A screenshot of the citation for a SIGPLAN Research Highlights paper. It reads:

Selected February 2025

A Grounded Conceptual Model for Ownership Types in Rust

Authors: Will Crichton (Brown University), Gavin Gray (ETH Zurich), Shriram Krishnamurthi (Brown University)

Venue: OOPSLA 2023

Nomination Statement: Programmers learning Rust struggle to understand ownership types, Rust’s core mechanism for ensuring memory safety without garbage collection. This paper describes an attempt to systematically design a pedagogy for ownership types. The paper applies techniques from cognitive science to describing and teaching programming languages, focusing on one of the “hottest” languages to date: Rust. The work contains multiple aspects, such as analysing common misconceptions of the programmers, building the conceptual model of Rust ownership, designing a teaching methodology around it, and even evaluating it in a user study. Overall, the paper follows scientific principles and introduces the PL community to an original and effective way to study a language usability problem.
Will Crichton boosted:
2025-01-31

This week, the NSF Director became complicit in the administration’s efforts to undermine American science. bit.ly/nsfresign

Will Crichtontonofcrates
2025-01-27

@jedbrown You're an expert tokenizer!

Will Crichtontonofcrates
2025-01-26

@qualmist Whoops fixed thanks!

Will Crichtontonofcrates
2025-01-26

Here's a few of the ideas I bounced around (top-left is the control):

Will Crichtontonofcrates
2025-01-26

Btw one things CS academics need to Figure Out is a style guide for typesetting code, especially inline code. I had a fun thread on this a few years ago: twitter.com/tonofcrates/status

Will Crichtontonofcrates
2025-01-26

A few handy things I learned from The Elements of Typographic Style. Wrote last year but forgot to share:

willcrichton.net/notes/typogra

Will Crichtontonofcrates
2025-01-16

@monkey1 But the behavior of that interactive element has to be defined in Javascript. Pollen is not designed to compile arbitrary Racket into Javascript, to my knowledge. It's only designed to compile a document tree into HTML.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst