Julian Hyde
banner
julianhyde.bsky.social
Julian Hyde
@julianhyde.bsky.social
520 followers 67 following 240 posts
On a mission to tame data. (Ex-Google, always ASF, working on something new.)
Posts Media Videos Starter Packs
Morel is now in Rust! I just made the first release of the new Rust toolchain for Morel. Morel-Rust implements same language as Morel-Java. It's early days, but potentially performance will be much better.

blog.hydromatic.net/2025/10/23/m...
I think I have found a way to remove aggregate functions from Morel. They become ordinary functions applied to the collection of elements gathered by the "group" operator (or a query on those elements if you want to pre-filter). github.com/hydromatic/m...
Syntax for aggregate functions · hydromatic morel · Discussion #292
In SQL, aggregate functions are not even functions. A function takes an argument and returns a result, and SQL's aggregate functions are applied to a collection that is implicitly created for each ...
github.com
Tragedy of the commons
I'm pleased to announce release 0.7 of Morel! This is a huge release, adding support for ordered/unordered data, set operators, and revised order syntax. A major rework of Morel's type inference algorithm delivered function overloading. blog.hydromatic.net/2025/06/08/m...
Morel release 0.7.0
I am pleased to announce Morel release 0.7.0, just one month after release 0.6.0.
blog.hydromatic.net
Java doesn't let parameters of lambdas overshadow local variables, but it does let them overshadow fields. I don't think the rule against overshadowing has ever helped me.
Thank you! I don’t really want to innovate in type theory, so followed the Wadler/Wehr/Odersky paper as closely as I could. But the result is good - you can write a query with a mixture of bags and lists, no type annotations, and it comes up with the right type.
We might both be right. Cocker is a great writer; Shatner is a great performer.
I have no idea whether it's fast. I assume you are competing with people who have sweated many weekends to squeeze out performance gains.

But the name 'dijkstralog' is definitely a keeper.
I guess some people are still buying Buicks and so Buicks get the modern tech, like adaptive cruise control, only five years after everyone else.
Not sure about that. I’ve seen Star Trek but never heard that cover.

Bigger question: will Jarvis Cocker be up there with the great English humorists, Oscar Wilde, Jake Thackray, Flanders & Swann?
It is telling that neovim started it for you. In the nineties, Windows nearly wiped out real operating systems, and notepad was the gateway drug. People loved double-clicking files to open them, but without the command line, lost their place in the universe.
Database tables are unordered, but functional programming languages work best over ordered lists. Which should Morel prefer? Both! We now have "list" and "bag" types, and full relational algebra over both. blog.hydromatic.net/2025/06/06/o...
Ordered and unordered data
Despite what the relational model says, some data is ordered.
blog.hydromatic.net
Am I the only one who uses this git trick? To split a commit (in this case a8aee880), include it twice in the rebase script with a b (break) step in the middle. When rebase pauses, revert the parts of the commit that you don't want. They will be applied in the next commit.
Is it possible to do serious programming (such as solving Wordle) in a query language? If not, what's missing? The video of my DataCouncil talk is posted. www.youtube.com/watch?v=xwFs...
More Than Query Future Directions of Query Languages, from SQL to Morel
YouTube video by Data Council
www.youtube.com
OK, I merged ordered/unordered queries. Next, an "unorder" step and an "ordinal" expression, so that you can more easily convert between lists and bags.
I'm getting ready to merge a big new feature to Morel - ability to query unordered data sets (bags, and database tables), ordered data sets (lists), and hybrid queries that mix the two. I'd appreciate feedback on whether the specification is clear. github.com/hydromatic/m...
Ordered and unordered queries · Issue #273 · hydromatic/morel
In SQL, tables are inherently unordered, and query results remain unordered until explicitly sorted with an ORDER BY clause. In contrast, functional programming languages like Standard ML -- and by...
github.com
I'm getting ready to merge a big new feature to Morel - ability to query unordered data sets (bags, and database tables), ordered data sets (lists), and hybrid queries that mix the two. I'd appreciate feedback on whether the specification is clear. github.com/hydromatic/m...
Ordered and unordered queries · Issue #273 · hydromatic/morel
In SQL, tables are inherently unordered, and query results remain unordered until explicitly sorted with an ORDER BY clause. In contrast, functional programming languages like Standard ML -- and by...
github.com
I started a discussion about supporting SQL Pipe syntax in
Apache Calcite. Please chime in. lists.apache.org/thread/1ggd3...
lists.apache.org
I feel the same way as you. But I guess when I visit other people’s houses I realize that their definitions of “tidy” and “comfortable” are different from mine. Abstraction is ick to a lot of people.
The other fascinating thing about spreadsheets is that the code is embedded in the data. You start off with pure data and can gradually add little bits of code.

Copying the code involves also copying the data. To apply the same code to a different data set, some kind of abstraction is required.
I wonder whether spreadsheets are attractive to non-programmers because they don't require abstraction. Abstraction is possible (the scripts and functions you mention) but is not the norm.
Spreadsheets are the one and only “language” that lets users solve their problems without hiring or “becoming” programmers. Since then the software folks have been trying (with limited success) to figure out how to make programming languages more like spreadsheets.