Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Dirk Mattig
Spec-Driven Development: Who Executes a Spec? (Part 4 of 4)
This is the fourth and final part of my attempt at a definition of spec-driven development (SDD), following part 1, part 2, and part 3. As before, the requirement-level key words follow RFC 2119 and RFC 8174. What is spec-driven development? After having dissected the term into its constituents, it is time to put it all back together and take a final look at the big picture. We now know the shape of a spec in terms of format, language, content, and lifecycle.
Spec-Driven Development: An Attempt at a Definition (Part 1 of 4)
As I explained in the opening post of my series According to Plan: spec-driven development, spec-native systems, and whatever it all ends up being called, I am dissatisfied with the current lack of a definition of the term spec-driven development (SDD) that is recognized across the industry.
Slowing Down to Progress: My Thoughts on the AI Slowdown
Since the weekend, the news has been largely dominated by the AI slowdown debate centered on the question of whether, and how, the industry should pace the frontier. Let me start by saying that I am not an AI doomer. For a Cold War kid like me (born right in the middle of it, both historically and geographically), this is not the first time in my life people around me have expected the world to end.
I Built a Chat App That Rewrites Its Own UI in Real Time
So I had this idea that kept nagging at me. Every AI chat app works the same way. You type something, the model returns text or markdown, the UI renders it as a nice formatted paragraph. That is fine if you want an answer. It is genuinely boring if you want to actually build something. What if the AI could respond with a working game board you could click? What if saying "make it Barbie themed" actually transformed the whole interface while you watched?
Without Exception: How Neander Programs Fail
Neander has no exceptions. No try, no catch, no finally. A call to one of the host application's APIs returns something closer to Rust's Result: either the answer, or the reason there is no answer. In place of a catch block there is one type marker, three operators, and a guarantee that every submission comes back in the same shape no matter what happened. Last time the foundational series closed with isolation.
The Budget System: Thalers, Bytes, and Milliseconds
A Neander program is guaranteed to stop, as we saw last time. But "stops eventually" is not good enough in a real-world scenario, where the program runs inside the host application and consumes its resources while it does. So on top of a sub-Turing language, Neander features a budget system which places hard upper bounds on a program in six different dimensions. Three of them are budgets in the literal sense: they bound what a running program is allowed to consume.
Discovery: How an Agent Finds Your APIs
Last time I made the case for why Neander and Grotto exist at all — a purpose-built, safe-by-construction language instead of a sandboxed general-purpose one. That was the argument for the whole language. From here, Field Notes from the Grotto takes it apart one feature at a time, and the first one is the feature that explains why the rest exists: discovery.
Neander: An Agent-First Programming Language
Last time, in Source Code as the Seam Between Systems, I closed by saying I had built a programming language for the seam between systems, and that I would come back to it. Here we are. The language is called Neander (named after the Neanderthal), and its specification is available now. A quick recap of where the last post left us. When one system needs another to do something, the seam between them used to be a wire carrying structured data, with a human in the middle writing the integration code.
TaskTrack — A Specify Spec for Agent Task Management
It is time to put my proposition made in my previous blog post to the test. Is it possible to spec an application for execution by an agent without encoding it in source? Let's find out. One type of application every knowledge worker is familiar with is task management. Every task has a lifecycle status, dependencies on other tasks, and a history of progress. Let's give agents their own. TaskTrack is a simple but non-trivial task management system variant implemented as a Specify spec.
Speccing Is the New Coding
What do we still need source code for? It is an odd question to ask after spending forty years writing it, but it is the one that keeps pulling at my sleeve. Let me work backwards to explain why. The first computers were one-trick ponies. Their behavior was baked into their wiring — change the task, change the machine. Useful, expensive, inflexible.
My New Adventures in IT
When a blinking cursor on a screen awaited my input for the very first time, I could not possibly have anticipated that this technology would soon open up a whole new dimension for the world to live in. Having been born about six months after the Beatles split up, I happened to be in the right place at the right time when a bunch of nerds succeeded in bringing computers to the home.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Dirk
Contact Dirk, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack