Jonathan Aldrich
jonathanaldrich.bsky.social
Jonathan Aldrich
@jonathanaldrich.bsky.social
Professor at Carnegie Mellon University, working on programming languages and software engineering. Coauthor, Programming Language Pragmatics (videos: https://tinyurl.com/PLP5vids). CTO of noteful.net ACM Publications Board member. He/him.
Reposted by Jonathan Aldrich
6 years ago, 1300+ of us signed a petition asking @TheOfficialACM to open up its digital library. As of today, January 1, 2026, all ACM papers are free to access by anyone!

Changing big orgs is tough, but your voice matters and the rewards are great!

www.change.org/p/associatio...
Sign the Petition
ACM Support Open Access
www.change.org
January 1, 2026 at 3:43 PM
6 years ago, 1300+ of us signed a petition asking @TheOfficialACM to open up its digital library. As of today, January 1, 2026, all ACM papers are free to access by anyone!

Changing big orgs is tough, but your voice matters and the rewards are great!

www.change.org/p/associatio...
Sign the Petition
ACM Support Open Access
www.change.org
January 1, 2026 at 2:41 PM
Wow--the real story of food deserts in the USA. The solution is as simple as stopping large chains from using their market power to get better deals from suppliers. Will politicians have the courage to apply the fix that worked pre-Reagan?

www.theatlantic.com/ideas/archiv...
The Great Grocery Squeeze
How a federal policy change in the 1980s created the modern food desert
www.theatlantic.com
December 31, 2025 at 5:07 AM
Why is event handling so painful--and can async make it better?

Events are essential to programming, yet notoriously tricky. In my latest Programming Language Pragmatics video, learn about events & how to use language ideas like promises, async, and await to untangle event code!
December 23, 2025 at 5:34 PM
When there's a word for something, use it, rather than a negation. So, prefer "forbid" to "disallow." Prefer "range" to "codomain."
December 20, 2025 at 2:17 AM
Perhaps we should go back to in-person PC meetings, but run them like world chess championship matches. The reviewers selected to review a paper will enter a room having been scanned for electronic devices.

www.nature.com/articles/d41...
Major AI conference flooded with peer reviews written fully by AI
Controversy has erupted after 21% of manuscript reviews for an international AI conference were found to be generated by artificial intelligence.
www.nature.com
December 13, 2025 at 4:24 AM
Exceptions and coroutines support non-local control flow in programs--how does that work, and what are these constructs for?

Learn about both in my latest Programming Language Pragmatics video!

PLP 9.4-9.5: Exception Handling and Coroutines - youtu.be/KGLd-4DRmrA
PLP 9.4-9.5: Exception Handling and Coroutines
YouTube video by Jonathan Aldrich
youtu.be
December 12, 2025 at 6:46 PM
What are the different parameter-passing modes? How do default and keyword parameters work? What about variable numbers of arguments?

Find out in my latest Programming Language Pragmatics talk!

PLP 9.3: Parameter Passing - youtu.be/OL-ReNegh3o
December 10, 2025 at 1:22 PM
What goes into calling a function?

Find out in my latest Programming Language Pragmatics video, which introduces Chapter 9 (Subroutines and Control Abstractions) and discusses calling sequences, prologues, epilogues, and the System V AMD64 ABI calling convention.
December 8, 2025 at 1:43 PM
Lists - a data type so flexible that it was the *only* composite data type in McCarthy's LISP!

Find out more about the list and file data types supported by various languages in my latest Programming Language Pragmatics video.

PLP 8.6-8.7: List and File Data Types - youtu.be/6NpiJ-6dUBU
PLP 8.6-8.7: List and File data types
YouTube video by Jonathan Aldrich
youtu.be
December 1, 2025 at 7:10 PM
Verification folks: when building a tool like Dafny or Verus, is there a strong technical reason to prefer backwards reasoning/weakest preconditions vs. forward reasoning/symbolic execution? Or are they more or less equivalent and it's just a matter of taste?
November 26, 2025 at 11:31 PM
I'm doing a live Reddit AMA today at 2pm ET! Come ask me about PL, SE, the Master of Software Engineering program I run, Open Access at ACM, my music education startup Noteful, or my silly YouTube video outfits!

www.reddit.com/r/IAmA/comme...
November 25, 2025 at 5:37 PM
How does Rust provide memory safety while giving programmers great performance and manual control of memory management?

The video that you've been waiting for is finally here:

PLP 8.5.5: Memory Management in Rust - youtu.be/YDEIZYPj0do
November 24, 2025 at 9:44 PM
Pittsburgh folks: my daughter Evelyn is home from college and dancing with Bodiography Contemporary Ballet Company tonight at 7:30pm at the Kelly-Strayhorn Theater. Should be a great program! Tickets are available at kelly-strayhorn.org/events/bodio...
Bodiography Presents: Intersections - Kelly Strayhorn Theater
An evening of contemporary dance performed by Maria Caruso’s Bodiography.
kelly-strayhorn.org
November 22, 2025 at 7:12 PM
How does garbage collection work?

My latest programming language pragmatics video describes reference counting and tracing garbage collectors, along with variants such as mark-and-sweep, copying, generational, conservative, incremental, concurrent, & parallel collectors.
November 22, 2025 at 4:32 PM
Ok, I think I have a possibly better idea: talk badges! Like artifact badges, but they'd certify the talk quality based on an audition or video. Equally useful to audiences & a great incentive, but less exclusionary.
Proposal to address bad talks at conferences:
* If you get a conference paper accepted at a conference, you have to apply to present.
* Presentations are judged on presentation quality only -- not content of the paper. The content was already judged good enough.
November 22, 2025 at 2:31 PM
Proposal to address bad talks at conferences:
* If you get a conference paper accepted at a conference, you have to apply to present.
* Presentations are judged on presentation quality only -- not content of the paper. The content was already judged good enough.
November 21, 2025 at 6:12 PM
Need HotCRP bidding language. Example program:

bid=-99 where "LLM" in abstract
November 20, 2025 at 1:36 AM
A dangling reference can ruin your whole day!

Learn what dangling references are, and how tombstones, locks, and keys can help find these bugs in my latest Programming Language Pragmatics video!

PLP 8.5 part 3: Dangling References - youtu.be/GpS9xSHjo3k
PLP 8.5 part 3: Dangling References
YouTube video by Jonathan Aldrich
youtu.be
November 18, 2025 at 1:13 PM
Currently preparing Programming Language Pragmatics slides on JavaScript's prototype-based object model.

Teaching interesting object models gives me joy!
November 16, 2025 at 2:05 PM
A recursive type is a type that has references to other objects of the same type. Recursive types support heap data structures like lists and trees. Learn about recursive types in different languages and how typechecking works in my latest Programming Language Pragmatics video!
November 15, 2025 at 3:42 AM
Reposted by Jonathan Aldrich
Lots of folks captioning aurora photos like "for a few minutes we didn't think about politics"

guess I'm built different, every time I'm out trying to see night sky stuff I frequently think about how much light pollution is entirely preventable with just a tiny bit of regulation
November 13, 2025 at 10:03 PM
Some people say live captioning in talks are like "curb cuts"--an accessibility improvement that helps everyone.

Except it doesn't! It actively harms some people (including me).
November 10, 2025 at 11:58 PM
Had a great time hosting MSE Game Night last night. We played Mysterium, Code Names, RoboRally, Dominion, Kingdomino, and Power Grid. Thanks to everyone who came out (40+ Master of Software Engineering students), you made it fun!
November 9, 2025 at 8:26 PM
Reposted by Jonathan Aldrich
“I want you to understand what it is like to live in Chicago during this time.”

aphyr.com/posts/397-i-...
November 9, 2025 at 5:26 PM