Choose Your Own Adventure Calculus
Explores a recurring pattern in programming systems where users iteratively choose options to build code, proposing a 'choose-your-own-adventure calculus' abstraction.
Tomas Petricek is an assistant professor at Charles University in Prague and a partner at fsharpWorks, specializing in programming systems, functional programming, and the history and philosophy of computing.
20 articles from this blog
Explores a recurring pattern in programming systems where users iteratively choose options to build code, proposing a 'choose-your-own-adventure calculus' abstraction.
The article uses the visible routers at Centre Pompidou as a metaphor for how software systems evolve and adapt to new requirements over time.
Explores the metaphor of 'terrain vague' (unused urban spaces) to understand unplanned and evolving structures in software systems and programming.
Explores architect Christopher Alexander's design philosophy and its profound, often misunderstood, application to software development and programming patterns.
Explores the history and concept of no-code programming, questioning its novelty and analyzing it through the lens of 'programming substrates'.
A reflection on how JavaScript pop-ups evolved from quirky web experiments to opaque, user-hostile patterns, symbolizing a loss of web transparency.
A fictional interview exploring an alternative universe where software creation is viewed as a design discipline, not engineering, and its cultural implications.
Explores whether deep learning creates a new kind of program, using the philosophy of operationalism to compare it with traditional programming.
A tutorial on creating interactive 'You Draw' bar charts using the Compost.js library, inspired by NYT's data visualization style.
Introduces the 'data exploration calculus', a theoretical model capturing the unique programming patterns used by data scientists and journalists for exploratory data analysis.
Explores parallels between software development and architecture/urban planning, suggesting new methodologies and ideas for tackling programming complexity.
Analyzes the arguments used in academic debates about choosing the first programming language for university computer science programs.
A university lecturer explores what topics should be included in a modern Software Engineering curriculum, balancing theory with industry practices.
A tutorial on building a simple web-based Excel-like spreadsheet using F# and Fable, demonstrating functional programming concepts.
Argues for shifting programming language research focus from finished programs to the interactive process of programming itself.
Explores whether mathematical concepts like lambda calculus are human inventions or universal truths, using philosophy of mathematics to frame the question.
Explores applying design thinking and philosophy to programming language creation, moving beyond just engineering and mathematics.
The Gamma project simplifies data visualization creation with a new four-step guide, allowing users to upload CSV data and build interactive charts.
A guide to critically reading academic papers in computer science, emphasizing active engagement and contextual understanding.
Explores how historical scientific theories, once considered reasonable, can inform our understanding of current programming paradigms and their potential future obsolescence.