Julian Hyde
banner
julianhyde.bsky.social
Julian Hyde
@julianhyde.bsky.social
On a mission to tame data. (Ex-Google, always ASF, working on something new.)
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...
October 23, 2025 at 7:23 PM
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.
June 8, 2025 at 6:01 PM
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.
June 3, 2025 at 7:59 PM
This query is supposed to find all employees in dept 10 who earn more than all programmers in dept 20, but it has a bug. The bug is caused by a fatal flaw in SQL.

What is that flaw, and how does Morel fix it? (The answer is in my talk with @julien.ledem.net, youtu.be/zpdbEvhhne8#...)
May 1, 2025 at 8:58 PM
Thanks to all who came to the talk, and the great questions afterwards. As always at Data Council, the hallway conversations are interesting and inspiring.

Here are my slides. (For best results, click 'download raw file', and then open the PDF.) github.com/julianhyde/s...
April 24, 2025 at 1:02 AM
Tomorrow at Data Council I'll talk about how to solve optimization problems in Morel. If banana cakes sell for $4, chocolate cakes sell for $4.50, and you have a certain amount of ingredients, how many of each kind of cake do you make to maximize profit?
April 23, 2025 at 8:33 AM
Who's in Oakland this week for Data Council?
April 21, 2025 at 11:34 PM
I've created a VSCode plugin for Morel. Very basic at this point, but I'd welcome any improvements. github.com/hydromatic/v...
March 28, 2025 at 6:02 PM
Verbose descriptions for boolean methods bug me. I'd just write 'Returns whether the driver should stop.' We don't enumerate every possible return value for any other data type.
March 11, 2025 at 8:10 PM
If I upload an image that captures a block of text, the alt text should just be the text. Or am I missing something?
March 3, 2025 at 10:00 PM
The father of relational databases understood semantic data models.
March 3, 2025 at 9:56 PM
I'm adding existential and universal quantifiers, and constrained types, to Morel and would love to hear what people think of the syntax.

Is 'check' the right keyword to follow 'forall'? 'exists' and 'implies' are also new keywords.
February 28, 2025 at 11:18 PM
Introducing the “Cheese Jar”. Now I can keep my Taleggio or Gorgonzola in the fridge, and let it sit on the counter for an hour before lunch coming to room temperature, without repulsing the family. Consider it my contribution to western civilization.
February 5, 2025 at 8:12 PM
"Truly open source"
January 21, 2025 at 11:26 PM
Working on lists, relations and ordering in Morel has got me thinking about the information content of collections. We generally assume that data structures for various types of collections (sets, ordered sets, multisets, lists) use similar amounts of memory (plus a little overhead for hash /
December 29, 2024 at 5:13 AM
December 2, 2024 at 6:43 PM
Morel is a much better candidate. As a functional programming language, it is familiar and can solve general-purpose problems. List comprehensions add relational algebra. With free variables and recursion, any Datalog program can easily be translated to Morel. Here is a 'triangles' graph query.
December 2, 2024 at 4:44 AM
Ruby is pleased to be here.
November 14, 2024 at 1:53 AM