About
License¶
The source code implementing delightql is licensed Apache 2.0.
The content of this website and the book are © 2026 Daniel Eklund. All Rights Reserved.
History¶
The idea for delightql started in 2017. The book was written starting in 2020 through to 2025.
Various proof of concepts were written between 2017 and 2020 before all effort was placed only into writing the book. The author believed that with a good enough reference, the language would insist on existence.
In mid 2025, coding began on the specifications listed in the book.
The language was originally named datalogite for its datalog-like
appearance. Its name changed to logiteql and then dliteql but soon clashed with the
opensource project dlite. Rather than give up on this train of
thought, I switched to the homophone: delightql.
The Datalog Education System predates delightql significantly1 and makes the
same connection that underpins all of delightql: SQL and logic programming are
the same. Other SQL transpilers have made similar connections. 2 Many of the
ideas around tree-groups found their inspiration from the COGROUP operator in
pig latin and from other 'big data' relational technologies that were
permissive to zeroth-normal form data.
There are other influences in the syntax, the most obvious one
being the pipe operator |> via Elixir and before that ML and F#.
Syntax aside, pipelining as job control in UNIX is the obvious influence.
Motivation¶
For a 50-year old 4GL, SQL has had a remarkable run and will continue to do so, but I was curious as to whether there was room for a different syntax that could accomplish a few things:
- remove some of the un-ergonomic and boilerplate frustrations
- promote reusability and composability
- trick people into hearing about Prolog
At no point did I think of the language as being anything other than a SQL transpiler. I wanted to build atop the years of engineering and familiarity that SQL affords. I had no ambitions about a new paradigm. I just wanted the power of SQL without having to reach out to vim macros, moustache templating, or other such meta-technologies.
For the first four or so years, delightql was just an outlet for my creativity -- a way to learn more about the subjects were of interest to me. Somewhere along the line, after many different attempts at implementing, I realized that this was a language worth building.
I started writing out the book with the promise to myself: "When you finally can take a year off from work, you can implement this." Writing the book kept me focused on what the language is rather than how the language would be implemented.
Usage of AI¶
LLMs were used to help implement the language, but not to design it.
I implemented the first thousand lines of Rust code and most of the tree-sitter parsing code, before wholeheartedly embracing agentic coding. Since then, the code has been rewritten extensively.
The LLMs were with me over 4k commits and a year and a half of fits and starts. The main github repository is a sanitized re-publication of a private and very messy repo strewn with markdowns and over ten thousand tests. It is my aim to publish these at some point.