Tomas Petricek
banner
tomasp.net
Tomas Petricek
@tomasp.net
Assistant prof at @mff.unikarlova.cuni.cz. Interested in new ways of thinking about programming and history & philosophy of computing. Previously at University of Kent and @cst.cam.ac.uk.
The open access version of Cultures of Programming is now available online. Just in time for the holiday break!

Read it here: www.cambridge.org/core/books/c...

If you prefer a real book, use PETRICK26 for a 20% discount (valid until January 31) at: www.cambridge.org/9781009492348
December 19, 2025 at 10:18 AM
People talking past each other is literaly the inspiration behind the book! This is the very first paragraph of the book's preface :-)
December 9, 2025 at 9:16 PM
What defines a correct program? What education makes a good programmer? The answer depends on what culture of programming you subscribe to!

This has been a long time in the making, but my open access book on the history of programming is available for pre-order!

www.cambridge.org/core/books/c...
December 9, 2025 at 9:52 AM
In the last part of my tiny systems course, we get to implement a tiny version of the world's most widely used programming language!

TinyExcel: www.youtube.com/watch?v=ghRA...
December 8, 2025 at 10:16 PM
Next in my tiny systems course - write your own TinySelf!

Learn about the genuinely elegant prototype-based object-oriented inspiration for JavaScript where everything is an object.

www.youtube.com/watch?v=7Pre...
December 2, 2025 at 10:39 PM
𝐎𝐧 𝐭𝐡𝐞 𝐋𝐢𝐦𝐢𝐭𝐬 𝐨𝐟 𝐌𝐚𝐤𝐢𝐧𝐠 𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐦𝐢𝐧𝐠 𝐄𝐚𝐬𝐲
New paper with Joel Jakubovic

We wrote this for my PhD supervisor Alan Mycroft's festschrift, where you can get away with having some fun when writing!

With the hope it will be insightful and fun to read too :-) tomasp.net/academic/pap...
December 2, 2025 at 1:02 AM
Another meeting of our Programming Languages and Systems group at @mff.unikarlova.cuni.cz - with more interactive theorem proving 🤨

Natty can check proofs in natural English language!
November 24, 2025 at 10:21 AM
It turns out that debugging a system where everything is an object without some kind of object browser is impossible.

So.... the TinySelf lab of my tiny programming systems course will have a truly innovative UI component :-)
November 23, 2025 at 2:28 AM
The next lab from my tiny systems course is up.

Learn how to write your own small implementation of the logic programming language Prolog in #fsharp!

www.youtube.com/watch?v=KC7A...
November 17, 2025 at 9:11 PM
We even had a web-based version of this so you could run the code in a web browser using Silverlight (!) tryjoinads.org

The web-based version built a bit later had a revised syntax and also added "let! .. and" for applicative functors.
November 14, 2025 at 12:20 AM
I worked on "match!" to #fsharp back in 2008/9 during an internship with @dsyme.bsky.social and parallel tasks was one example in my MSc thesis: tomasp.net/academic/the... (p. 78).

"match!" had the extra feature that you could do short-circuiting - so "_" means the task doesn't have to finish...
November 14, 2025 at 12:17 AM
F# 10 makes it possible to use let! .. and! to await two tasks in parallel. This brings back some memories!
November 14, 2025 at 12:13 AM
What if we think about proof assistants/dependently typed languages as interactive programming systems? Discussion today @mff.unikarlova.cuni.cz

(And yes, our building has fairly thick walls :-))
November 10, 2025 at 10:27 AM
Booked my train tickets for a trip to a PhD defense in Aarhus!

Maybe it's not faster than flying, but I get to go from a train station 10 minutes walk from where I live.

🚂👍
November 7, 2025 at 12:16 AM
In the second lab of my Tiny Systems course, we write a small interactive BASIC interpreter, inspired by Commodore 64 (Dijkstra does not approve...)

🎞️Watch the videos on YouTube: www.youtube.com/watch?v=jR0m...
⌨️Get the source code here: github.com/tpetricek/ti...
October 20, 2025 at 9:18 AM
I'm trying to replace my beloved but long-defunct Atom with VS Code for editing LaTeX.

How do I stop copilot from telling me that I can press "Ctrl+I"? I already disabled it using "github.copilot.enable", which hides the actual suggestions, but not this useless message...
October 11, 2025 at 2:17 PM
I just uploaded videos for the first lab of my tiny systems. TinyML - Write your own tiny functional language interpreter!

🎞️Watch the videos on YouTube: www.youtube.com/playlist?lis...
⌨️Get the source code here: github.com/tpetricek/ti...
October 10, 2025 at 10:36 AM
I'm at #uist2025 presenting our new work with @jonathoda.bsky.social!

𝗗𝗲𝗻𝗶𝗰𝗲𝗸 is a computational substrate for end-user programming that makes it easy to implement programming experiences like programming by demonstration, collaborative editing and more!

tomasp.net/academic/pap...
September 30, 2025 at 6:13 AM
Slides from my talk "Critical Architecture/Software Theory" at PPIG 2025 in Belgrade: tpetricek.github.io/Talks/2025/c...

The talk has been a great excuse to organize some more ideas, on top of my earlier article on the topic: tomasp.net/architecture/
September 9, 2025 at 1:06 PM
Anybody remembers Microsoft script encoder? A true gem from the MSDN archives of August 1999: web.archive.org/web/20021214...

(The thing was clearly not very sophisticated: web.archive.org/web/20070103...)
June 17, 2025 at 11:27 AM
Organize Unlambda Days :-)

A conference for people who once talked about FP all the time, but do other interesting things today.

I'll come!
June 12, 2025 at 7:33 PM
The Choose-Your-Own-Adventure Calculus is a small formalism that captures an interaction pattern where you repeatedly choose from the available options.

Examples include type providers, structure editors, theorem provers & more!

Draft paper based on my earlier blog post: tomasp.net/academic/dra...
June 10, 2025 at 12:34 PM
One last picture from @programming-conf.bsky.social!

A photo from the Friday afternoon visit to the Prague castle gardens, some time after we miraculously avoided the rain by hiding in a pub and talking about programming some more...
June 9, 2025 at 7:54 PM
Is schema change someone else's problem?

@jonathoda.bsky.social presenting our paper "Schema Evolution in Interactive Programming Systems" at @programming-conf.bsky.social Check it out: programming-journal.org/2025/9/2/
June 5, 2025 at 12:17 PM
An interesting summary of envisioned use cases and things that people actually ended up doing:
June 5, 2025 at 8:02 AM