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
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
Pointers are dangerous, yet powerful!

Languages provide them to support linked data structures and to provide efficient access to objects on the stack. Check out my latest Programming Language Pragmatics video, which talks about pointers and their static and dynamic semantics.
PLP 8.5 part 1: Pointers
YouTube video by Jonathan Aldrich
youtu.be
November 7, 2025 at 6:43 PM
How do arrays work?

My latest Programming Language Pragmatics video talks about layout options for multidimensional arrays, array slices, and index computations. I also talk about built-in string and set datatypes, including super-cool bit vector representations. Check it out!
November 5, 2025 at 3:12 PM
Maduro stole the last election in Venezuela. By all rights he should be deposed. But should the US do it?

www.journalofdemocracy.org/articles/how...
How Maduro Stole Venezuela’s Vote | Journal of Democracy
Nicolás Maduro brazenly stole Venezuela’s 2024 presidential election, despite a free, fair, and transparent ballot count that showed a clear opposition victory. Why would an autocrat want to maintain…
www.journalofdemocracy.org
November 4, 2025 at 9:08 PM
Halloween 2025 - Claire and Jamie!
November 3, 2025 at 5:08 PM
Unions are data types that can hold one of several different representations at run time - allowing you to represent data structures with different variants, or in systems code, interpret the same bytes in two different ways. Learn all about unions in my latest Programming Language Pragmatics video!
November 3, 2025 at 1:08 PM
Reposted by Jonathan Aldrich
FBI: "We didn't zip tie children."

REPORTER: "Here's a photo of a zip tied 14 year old."

FBI" "OK, we didn't zip tie YOUNG children."
October 31, 2025 at 7:30 PM
How to records work in programming languages?

My latest Programming Language Pragmatics video covers it all: record syntax, operations, semantics, (sub)typing, and run time layout!

PLP 8.1: Records - youtu.be/qgG555CJPmM
October 31, 2025 at 12:01 PM
Great article from @publicsource.org on how campus policy at CMU has shifted against free speech. First limits on "unregistered" speech events at CMU, now possible limits on what students can write on The Fence. Free speech is precious & worth protecting!

www.publicsource.org/cmu-expressi...
CMU made protesting on campus harder. A year later, even debate is difficult.
At CMU, “expressive activities” on campus of over 50 participants must register with the university. Some worry the policy is chilling campus speech.
www.publicsource.org
October 30, 2025 at 2:50 PM
How can we reuse one function with multiple types?

Polymorphism! My latest Programming Language Pragmatics video covers polymorphic (generic) types: type checking, implementation strategies, type constrains, and polymorphic type inference.
October 29, 2025 at 4:02 PM
How do we check that types are compatible in a program?

My latest Programming Language Pragmatics video talks about type compatibility and structural vs. name equivalence, as well as coercions and how to insert them.
October 27, 2025 at 4:34 PM
Reposted by Jonathan Aldrich
Chatbots — LLMs — do not know facts and are not designed to be able to accurately answer factual questions. They are designed to find and mimic patterns of words, probabilistically. When they’re “right” it’s because correct things are often written down, so those patterns are frequent. That’s all.
June 19, 2025 at 11:21 AM
Is it weird that I don't care about this?

I have no attachment to the old East Wing. The public doesn't see it. Every president renovates/remodels some. Trump's changes are kind of chintzy, but the next president will probably fix most of that. A ballroom will probably be useful.

So...big shrug?
The White House thing is such a disaster for them. The most potent political emotions are mass anger, visceral disgust, sense of lost, and nostalgia, preferably supported by images, and somehow they’ve triggered all of it at once. And now it’s gone, can’t be stopped, and they have to build a palace.
October 25, 2025 at 3:21 PM
Reposted by Jonathan Aldrich
Watch this.

Open your eyes to this brutality.

ICE beats up, drags & abducts this disabled visually impaired man.

Now share this.

Everyone must see the brutality of this administration & ask themselves what they are doing to push back.

You have power.

Even sharing this video exerts that power.
October 24, 2025 at 2:58 PM
Reposted by Jonathan Aldrich
Went to a prayer service tonight at St. Mary of the Lake, where they have cardboard cutouts throughout the church representing parishioners afraid to come to Mass because of ICE.
October 25, 2025 at 1:57 AM
What is a type?

My new Programming Language Pragmatics video discusses denotational, structural, and behavioral views of typing, demystifies terminology, talks about why types are useful, and introduces subtyping.

PLP 7.1: Type Systems - youtu.be/jjYg8aNAYOY
October 22, 2025 at 4:15 PM
What iteration and recursion constructs do programming languages provide, and how are they implemented?

In my latest Programming Language Pragmatics video, I talk about constructs from while loops through generators to tail-recursive functions, along with implementation approaches and tradeoffs.
October 20, 2025 at 4:19 PM
Information flow is central to security & many other forms of reasoning. But information flow types can be complex in practice. At OOPSLA, Hemant presented a new foundation for information flow types: "Structural Information Flow: A Fresh Look at Types for Non-Interference"
October 19, 2025 at 1:29 AM
Looks like fun, I'm planning to join!
October 18, 2025 at 3:59 AM
Why don't we write programs with goto in high level languages anymore?

My latest Programming Language Pragmatics video talks about how structured control flow constructs for sequencing and selection replaced more primitive constructs to help make programs more understandable.
October 17, 2025 at 4:02 PM
This! It's so annoying when transit systems have their own special card or whatever. The ones where you just tap a credit card (like Singapore, where I am this week) are awesome!
Living in the Future benefit: the combination of Google Maps public transit directions and phone-tap onboard payment makes it SO EASY to take public trams/buses/metros when traveling now. It’s fantastic not to have to resort to taxis just for lack of easy access to the local transit ticketing system
October 17, 2025 at 9:05 AM
How do programming languages define control flow?

In my latest Programming Language Pragmatics video, I talk about precedence, order of evaluation, and expression vs. statements. Control flow matters most for side effects; I talk about tradeoffs involved and forms of assignment.
October 16, 2025 at 1:40 AM