April 21st, 2025

Tabular Programming: A New Paradigm for Expressive Computing

The article introduces tabular programming, a structured coding approach inspired by the m8 Dirtywave tracker, enhancing maintainability and accessibility while utilizing minimal hardware and promoting clear data flow in programming.

Read original articleLink Icon
CuriositySkepticismAppreciation
Tabular Programming: A New Paradigm for Expressive Computing

The article discusses the concept of tabular programming, inspired by the m8 Dirtywave tracker, a portable music sequencer. The author proposes a new programming environment that utilizes a tabular interface, allowing users to define functions in a structured format with fixed columns for function identifiers, input parameters, expressions, and output specifications. This approach encourages breaking down complex operations into simpler, composable functions, enhancing code maintainability. The proposed hardware would be minimal, featuring a Teensy 4.1 microcontroller, a small display, and a limited number of buttons for navigation and execution, eliminating the need for traditional keyboards. The tabular model aims to reduce errors, promote focused decomposition, and provide explicit data flow, making programming more accessible and portable. The article also illustrates the practical application of this model through examples of classic demoscene effects, such as plasma and tunnel effects, demonstrating how the tabular structure can effectively manage data flow and execution in a visually organized manner. The author emphasizes that this innovative approach to programming could lead to new paradigms by leveraging hardware constraints to rethink fundamental programming concepts.

- Tabular programming organizes code into a structured table format, enhancing maintainability.

- The proposed environment uses minimal hardware, allowing programming without traditional keyboards.

- The model reduces syntax errors and promotes clear data flow between functions.

- Practical examples demonstrate the effectiveness of the tabular approach in creating visual effects.

- The concept encourages rethinking programming paradigms based on hardware limitations.

AI: What people are saying
The comments on the article about tabular programming reveal a variety of perspectives and insights.
  • Many commenters draw parallels between tabular programming and existing structured programming paradigms, such as assembly language and ladder diagrams.
  • There is a discussion about the constraints of tabular programming, with some arguing that it can enhance maintainability while others express concerns about readability and usability.
  • Several users highlight the potential for creative expression within tight hardware constraints, suggesting that this approach could lead to innovative programming methods.
  • Some commenters question the practicality of tabular programming for general computing, suggesting it may be more suited for specific applications like music sequencing.
  • References to historical programming languages and concepts indicate a broader context for understanding the implications of tabular programming.
Link Icon 15 comments
By @lantry - 18 days
> this tabular programming environment isn't just about cramming programming capabilities into a Game Boy-like device. It's about rethinking programming from the ground up for a specific hardware context. (...)

> By rethinking how programming can work within tight hardware constraints, we might discover new approaches that actually enhance rather than limit creative expression.

This speaks to me. As a software engineer, I work with abstractions all day, and it is impossible for me to fully understand the system that I'm building. I often think I would be much happier if I worked on a product that I could actually understand from top to bottom and know all the details.

By @hwpythonner - 18 days
This reminds me of ladder diagrams from industrial control systems—not because of the domain, but because both emphasize a linear, visually structured flow of logic.
By @Johnbot - 18 days
This is giving me flashbacks to RPG II - https://en.m.wikipedia.org/wiki/IBM_RPG_II
By @hcarvalhoalves - 18 days
When I first read the title, I had something in mind, but this is actually about structuring the code itself as a fixed-size table.

Here's a different take on thinking about tables:

https://www.youtube.com/watch?v=b5UK-VHbJlQ

By @gregschlom - 18 days
I've only skimmed the article but to me it sounds like what the author wants is essentially assembly language, where everything fits in 5 columns: label, opcode, 2 operands, comment.

It's not great for usability though :)

By @sedatk - 18 days
> At first glance, limiting each function to just five expressions seems incredibly restrictive. But this constraint actually encourages breaking down complex operations into atomic, composable functions - which tends to produce more maintainable code.

The author conveniently disregards the other extreme end of this, putting every instruction in a separate function, which is neither readable nor maintainable.

What I see here is similar. The code snippets I’m looking at look neither readable nor maintainable.

By @kats - 18 days
Some random thoughts, might be interesting (or not).

Some things that really do fit into tables, where there's no empty fields in the rows:

- Relational databases

- Hardware circuit truth tables

- Assembly language opcodes

- FPGA compiler output

- Matrix multiplication. Or some GPU programs e.g. if you want to have a conditional statement using multiply-add, then 'if (cond) then x1 else x2' would be 'out = (cond * x1) + (cond * x2)'.

Those things have good performance in one way or another. But it's not easy to make all the application logic fit into a table-based schema.

e.g. Why does someone choose a python web server framework which sends and receives JSON. It's really super easy to extend and add something without knowing what you'll need in advance.

But if you try to fit that into a table, you'll have to change the table schema for everything to try to best fit what the program does right at the moment. And then if there's one new extra complex or long-running function, it will never easily fit the same schema as the others. You'll have to break the big function down into some smaller common operations.

By @dimatura - 18 days
Didn't expect to see the M8 when opening this. It's truly an amazing device, and the tables are a really awesome addition to the typical audio modulation option.
By @debugnik - 18 days
Following GPU industry standards, this should be called a General Purpose Music Tracker.

I wonder if this UI would work well for logic programming instead of stack-based.

By @poulpy123 - 18 days
Maybe it's interesting as a scripting language for a music sequencer that has few keys, but I can't even think of a use case for regular computers
By @gatane - 18 days
Forth mentioned, btw.
By @turtleyacht - 18 days
See also: Table-oriented Programming (2002) - https://news.ycombinator.com/item?id=29735298 - Dec 2021 (126 points, 87 comments)