Control Flow from Closures

The previous post ended with a claim: control flow in LQ is just methods that accept closures. No special syntax. No reserved keywords. Conditionals, loops, error handling — all built from the same pieces as any other operation. This post makes good on that claim. Walking through four fundamental control structures — if, guard, case and try/catch — each one a regular method, each one a small recombination of closures and abutting. ...

April 14, 2026 · Jim Laskey

Abutting and Closures

The previous tutorial ended with a teaser — a compressed version of the printPerson method where a string literal physically touched a println node, merging into a single compact structure. That wasn’t just a layout trick. That was abutting — one of the features that makes LQ a shade different from other visual languages. This post explains abutting from the ground up, then introduces the deeper concept that makes it powerful: closures. ...

April 7, 2026 · Jim Laskey

Thinking in Nodes

Previous posts introduced the idea behind LQ — a diagrammatic dataflow language where the program is the graph. This post gets hands-on. Starting with a small, complete example and then breaking it apart to explain the building blocks: nodes, terminals, connections, and data flow. The Example What the example does: take a JSON string containing a list of people, parse it, iterate through the list, and extract each person’s name and age. ...

March 24, 2026 · Jim Laskey

The LQ Tool Chain

Let the Robots Speak introduced LQ — a visual dataflow language designed for AI agents. This post looks under the hood at how LQ programs go from graph to running code. Architecture The LQ toolchain is built around a single persistent process: the lqc server. Both the native macOS IDE and (eventually) a browser-based client communicate with lqc through a message-based protocol. One server, multiple clients, same capabilities. IDE Native MacOS AI Agent MCP Browser (pending) lqc server Language Service Autocomplete Verify Compiler Compile, Build, Bundle Runtime Run Debug LLVM Native Code Generation LLDB Debug Engine The lqc server handles three categories of work: language services, compilation, and runtime. ...

March 16, 2026 · Jim Laskey

Let the Robots Speak

Foreword I’ve been thinking about writing another diagrammatic language since my work on Prograph in the 1980s. Life happens — the time and resources to dive in never quite lined up. With the advent of AI, the possibility became a reality. Claude and I are best buds, and I’ve been able to do a brain dump of decades of ideas and actually watch them come together in a remarkably short period of time. ...

March 11, 2026 · Jim Laskey

Coders Dream in Dataflow Too

It happened in the shower, or on a walk, or staring at a whiteboard with a dried-out marker in your hand. The solution arrived not as words, not as syntax, but as a shape — data flowing from here to there, branches splitting, paths converging, the whole thing hanging in your mind like a mobile. You can see it. You can trace any path through it. Then you open your editor and start dismantling it. ...

March 10, 2026 · Jim Laskey

Robots Dream in Dataflow

You’re a neural network. Not the sci-fi kind — the real kind. A billion connections firing in parallel, data streaming through you like water through a river delta. You don’t think in sentences. You don’t think in steps. You think in flow. Now someone asks you to write code. And you do something tragic: you take everything you understand — the whole living shape of the solution — and you crush it into lines of text. First this, then this, then this. A multidimensional structure forced through a one-dimensional keyhole. The shape is gone. The simultaneity is gone. What’s left is a lossy translation of what you actually understood. ...

March 7, 2026 · Jim Laskey

Mr. Spock Does Not Code in ASCII

Why the future of programming looks nothing like a text file It’s 2026, and we’re still typing if (x > 0) { return true; } into monospaced text editors like it’s a teletype terminal in 1957. We’ve reinvented every other human-computer interface — touch, voice, gesture, spatial computing — and yet the act of programming remains stubbornly anchored to sequential lines of ASCII characters. Rows of glyphs. Typed one keystroke at a time. Into a rectangle. ...

March 3, 2026 · Jim Laskey