The recording of my Code BEAM Europe talk is online. The talk is "Saying What: A New Declarative Language for the BEAM". I gave it on 21 October, and it is where I introduced Bondy.
The talk is thirty minutes long. That is enough to show what the language looks like and why it exists. It is not enough to explain how it works. The posts in this series do that part, one idea at a time.
The longer conversation
A week after the talk, I sat down with Allen and Francesco for episode 36 of BEAM There, Done That. We recorded it on 30 October, and it runs for an hour. That gave us time to separate what runs today from what exists only as a design, and from what is on the roadmap.
We started with Bondy Connect, the router, because the language grew out of it. I spent months on memory leaks in NIFs that appeared only under high load. The latest Bondy Connect release removes every NIF. It is pure Erlang now, and an operation-based CRDT database replaces the old storage layer.
From there we moved to the language, with a fleet of refrigerated trucks as the running example. We talked about these topics, and each one has a post in this series:
- Shapes: one definition that is both the type and the runtime validator (The type that validates).
- Unification for sensor data that arrives incomplete, and errors that give the path to the field that failed.
- The effect system (What a function is allowed to do).
gen_reactor, the new OTP behaviour that owns a rule store (The process that owns the store).- Constraint Handling Rules, their semantics and the analysers that check them (Rules that fire themselves).
- Datalog for escalation chains (Ask questions of your data).
We were also clear about the edges. Signals, fluents and logical time exist as a design, not as code yet. Datalog uses semi-naive evaluation today. Magic sets, cost-based optimisation and incremental view maintenance are on the roadmap.
The numbers from Leapsight came up too. Rules that took about 800 lines of Erlang became 40 to 50 lines of Bondy. A scheduling solver for fluid delivery in upstream oil and gas took one week instead of three months.
If you prefer to listen, the episode is on Apple Podcasts:
Where to go next
Watch the talk for the overview, and listen to the podcast for the design decisions behind it. Then read the series from the start, at Bondy as Consilience. If you want the whole language on one page, One module, five nouns has it.