The Timeless Way of Programming

What can software learn from Christopher Alexander? Many programmers know that theidea of design patterns comes from architecture, but Christopher Alexander's writing has much morefor us than just the Gang of Four design patterns. This post is a somewhat assorted collectionof id … | Continue reading


@tomasp.net | 1 year ago

No-code, no thought? Substrates for simple programming for all

Is it really possible to eliminate programming load? What would realprogress on making programming easier for all mean? In this article, I take a critical lookat no-code programming platforms using the technical dimensions framework and the ideaof a | Continue reading


@tomasp.net | 2 years ago

Pop-up from Hell: On the growing opacity of web programs

What can we learn from an annoying pop-up ad that cannot be closed? In this post,I continue theme that I started in my interactive Commodore 64 BASIC essay, which is to lookat past programming systems and see what interesting past ideas have been lost. I look at thegrowing opaci … | Continue reading


@tomasp.net | 2 years ago

On architecture, urban planning and software construction

Like software construction, architecture and urban planning often deal withcomplex systems that evolve over a long period of time. Some of the successful systems arealso quite messy despite theories telling us that such systems should not work. These are justa few of the reasons … | Continue reading


@tomasp.net | 2 years ago

Software designers, not engineers An interview from alternative universe

How very different the world of software is in an alternative universe which hassoftware designers rather than software engineers? In this interview, we look at a rangeof topics from software design sketching to software designer education, as well as the wayin which software de … | Continue reading


@tomasp.net | 3 years ago

Is deep learning a new kind of programming?

Making a concept synonymous with the operations for working with it isan idea introduced by P. W. Bridgman to think about measurements in physics. A lengthmeasured by a ruler is a different concept than a length measured by the time it takeslight to travel. However, what if we t … | Continue reading


@tomasp.net | 3 years ago

Build a Breakout game interactively in C64 BASIC in browser

How we interact with programming environment matters more than the language, but such interaction has never been widely studied. Inspired by the idea of 'complementary science', this essay recovers interesting ideas from how programming used to be done using Commodore 64 BASIC. R … | Continue reading


@tomasp.net | 3 years ago

Write your own Excel in 100 lines of F#

Use Fable, Elmish architecture, parser combinators and the magic of functional-first programming with F# to build a simple browser-based spreadsheet application! I have been teachingF# for 7 years now and while the libraries and examples change, the core ideas remain the same.In … | Continue reading


@tomasp.net | 3 years ago

Strongly-Typed Language Support for InternetScale Information Sources [pdf]

Continue reading


@tomasp.net | 4 years ago

What to teach as the first programming language and why

Rather than answering the question in the title of the essay, I will look at amuch more interesting question: what art the kinds of arguments that are employed to support aparticular choice? Following this perspective lets us learn what educators consider importantin computer sc … | Continue reading


@tomasp.net | 4 years ago

Histogram: You have to know the past to understand the present

To invent new programming tools, we need to shift our focus from programs to programming. Programs are created through a variety of interactions, but programming research often forgets about those. In this interactive essay, we represent programs as lists of interactions and we … | Continue reading


@tomasp.net | 4 years ago

Write your own Excel in 100 lines of F#

Use Fable, Elmish architecture, parser combinators and the magic of functional-first programming with F# to build a simple browser-based spreadsheet application! I have been teachingF# for 7 years now and while the libraries and examples change, the core ideas remain the same.In … | Continue reading


@tomasp.net | 4 years ago

Cultures of Programming

This paper documents the socio-technological context that shapes programming languages.To structure our discussion, we introduce the idea of a culture of programming which embodiesa particular perspective on programming. We identify four major cultures: hacker culture,engineerin … | Continue reading


@tomasp.net | 4 years ago

Why type-first development matters

This article describes type-first development (TFD). A software development methodology that is quite common among functional programmers and uses types as a simple way of communicating ideas about program design. | Continue reading


@tomasp.net | 5 years ago

Programming as interaction: A new perspective for programming language research

In programming research, we say a lot about programs and languages, but very littleabout the actual process of programming. One simple trick that will make programming languageresearch significantly more interesting is to think about programs not as expressions, but asa result o … | Continue reading


@tomasp.net | 5 years ago

Thinking the unthinkable: What we cannot think in programming

Our thinking is shaped by basic assumptions that we rarely question. As described by philosophers of science, research paradigms determine how scientistsapproach problems and what questions are accepted as valid scientific theories.In this article, I try to discover some of the … | Continue reading


@tomasp.net | 5 years ago

Would aliens understand lambda calculus?

The question whether aliens would understand lambda calculusis intriguing because it vividly formulates a fundamental question about our formal mathematicalknowledge. Are mathematical theories and results about them invented, i.e. constructed byhumans, or discovered, i.e. are th … | Continue reading


@tomasp.net | 5 years ago