Three specialized computer languages
November 4, 2021 12:45 PM   Subscribe

CookLang is markup and some commandline utilities and webserver -- oh, and an iOS app -- for managing recipes. alda is text-based syntax to write music playable by MIDI. Haku is a programming language shaped like written Japanese. It's not meant to be useful. (Haku via mastodon, where I think I saw someone write a generative music program in Haku, but now I can't find it).
posted by clew (20 comments total) 18 users marked this as a favorite
 
For a while Google had a recipe-specific search engine, with recommendations for how to mark-up recipes to improve their ability to be parsed and processed. (The advice is still here.)

I hoped that a new era was dawning, where it would be super easy to search for recipes that included the ingredients & tools in my kitchen.

But just the opposite happened, and now every recipe is larded with snapshots and Narrative. *sigh*
posted by wenestvedt at 1:23 PM on November 4, 2021 [4 favorites]


CookLang looks really interesting. It looks like the iOS app beta is full but I'm curious to see how the app presents a recipe's instructions.

One of my biggest gripes about recipes is that I have to mentally parse the actual sequence of what needs to be done and when. The grid format you see at Cooking For Engineers (example) is a good step forward but still needs constant reading to make sure you're doing it in the right order.

If the app could actually walk you through the steps and walk the timers while you're doing it (e.g. "Mix the eggs and cheese. Next step in 4 minutes 23 seconds while the crust finishes baking..."), that would rock. And to make this open and universal that appliances could understand? Man...
posted by JoeZydeco at 1:25 PM on November 4, 2021 [2 favorites]


That seems both useful and doable. You should suggest it to the cooklang org!

One of the things I would like to filter recipes on is certainly "minimum time from start to eat". I can handle being a slower chopper than a fulltime cook, it's the unexpected several-hour rests that really get me.
posted by clew at 1:41 PM on November 4, 2021 [1 favorite]


But just the opposite happened, and now every recipe is larded with snapshots and Narrative. *sigh*

Not directly related to the FPP, but if you paste the URL of an annoyingly bloated recipe into justtherecipe.com, you'll get served up, well, just the recipe.
posted by vverse23 at 1:43 PM on November 4, 2021 [5 favorites]


justtherecipe.com is brilliant!
posted by wmo at 2:24 PM on November 4, 2021 [1 favorite]


If the app could actually walk you through the steps and walk the timers while you're doing it (e.g. "Mix the eggs and cheese. Next step in 4 minutes 23 seconds while the crust finishes baking..."), that would rock. And to make this open and universal that appliances could understand? Man...

My partner and their partner poached a ton of recipes from Hello Fresh a while ago that they now just make with regular grocery store ingredients, and they're weird in some other ways but they do have the advantage of being written in this format, as timed step-by-steps for a full meal
posted by nebulawindphone at 3:07 PM on November 4, 2021 [1 favorite]


I've kept a side eye on LilyPond which is a way to create sheet music.
posted by foxfirefey at 3:30 PM on November 4, 2021 [3 favorites]


I think the term for the cooking problems mentioned above is a field context problem; you do not know enough about the field that you are working in to be aware of problems. Each step is laborious, and you need a lot of hand-holding, because you just don’t know what these things are. Like, for instance, the potato example in the cooking language example - ok, which type of potato? How big is it? A potato is not a standard unit.

I would also go as far as to say that this idea of a mechanical cooking process that is replicable is a false consciousness. Cooking is a different field, it’s got a lot of specialised knowledge, I don’t mean that cooklang isn’t a start, I mean that to be able to cook means internalising knowledge across different areas (how the cooker works, what a cooked potato feels like under your fingers, which pan works best to make the Maillard reaction you like when you fry that thing… these are real-world things that are a matter of personal taste and are learned individually.

Interesting to see if just the recipe dot com avoids the problems of it’s predecessor , a problem that was mostly caused by… programmers with a field context problem maybe?
posted by The River Ivel at 3:31 PM on November 4, 2021 [2 favorites]


I'm not sure "potato" is evidence of failing the field context problem -- lots of cooks communicate usefully with each other in units of "potato". The earliest, knowledge-assuming recipes were most "potato".

"Potato" isn't a unit if you're trying to give a robot a recipe, but it can be if you're trying to give a cook a recipe.
posted by clew at 3:38 PM on November 4, 2021


I hope someone else likes Haku! It's where I started the post, and the second sense of `register' is a lot of fun.
posted by clew at 3:39 PM on November 4, 2021


Not just the jpegs and inane faux rah rah commentary but there is so much that could go into recipes. All the optionals, no nuts, no prob. And the core essentials (don't forget the egg in falafel, my funniest mistake, batter looked fine but just dissolved in the oil)

Not to mention a flowchart for replacements, no butter, which oil works? A bit extra salt then.

And which purportions count? What to add/subtract for thin crispy chocolate chip cookies?

// Don't burn the roux!

Not sure CookCli has quite got it right, that should not be a comment but reminders and hints about stirring ;-)
posted by sammyo at 4:13 PM on November 4, 2021


I thought this was going to be about chef, an obscure programming language that lets you write programs described as recipes, rather than a language for describing cooking.
posted by chbrooks at 5:04 PM on November 4, 2021 [2 favorites]


I've used ABC a few times to make music, and alda looks vaguely similar to it on the surface. I wonder what the deeper differences and advantages/disadvantages of each are.
posted by clawsoon at 5:06 PM on November 4, 2021 [2 favorites]


Thinking about wenyan-lang, a programming language based on classical Chinese, and how in Japan at least, there's a joke among programmers:
Q: If I'm just starting out as a programmer, which language should I study first?
A: English.
posted by DoctorFedora at 5:38 PM on November 4, 2021 [4 favorites]


The alda language reminds me of the Harmony Compiler for the PDP-1 minicomputer, circa 1960. Looks like there's a more modern program that allows you to try it out, and just like alda, it makes a MIDI file.

That last link also claims that if you compose a new piece of Harmony Compiler music, the author of that program will record it playing on a real PDP-1, undoubtedly the one at the Computer History Museum in California. I don't know if that offer still stands, but I hope so.

Here is the manual if anyone would like to give it a go.
posted by tss at 5:39 PM on November 4, 2021 [2 favorites]


I hope someone else likes Haku!

It is doing two things:
First it is eliminating mathematical symbols and putting everything into natural language, so "Let foo equal bar plus two. Show me foo." would be an English example.
Then it is doing so, but in Japanese and also providing different roles for the different Japanese alphabets.

The question is: What is the correct level of politeness to use when addressing a parser?
posted by vacapinta at 6:01 AM on November 5, 2021


Not having looked at any of TFAs so I should not be answering, but it's clear that none of the things mentioned in OP is a "specialized computer language." Of the three mentioned, only the last is a "computer language" at all, and it is intentionally "not meant to be useful" which is sort of the opposite of "specialized." An example of a "specialized computer language" might be APL or SNOBOL or Simula. Notice that these are all from long ago, as such things go, and the trend in recent decades in language design has been towards not being specialized. "Specialized computer language" turned out to be a dead-end family of concepts.
posted by Aardvark Cheeselog at 7:34 AM on November 5, 2021


Idiom? Syntax? Sub language? Markup? Script?
posted by clew at 7:50 AM on November 5, 2021


So... A potato is a mass probability distribution?
posted by kaibutsu at 8:26 AM on November 5, 2021 [1 favorite]


@wenestvedt:

Check out supercook.com. I haven't used it in a while, but when I did it was amazing for the "food I have" part of the equation and even great about offering recipes where you are only missing an ingredient or two... often ingredients that can be omitted or you have but just didn't enter in. There are the narrative heavy blogs in there, but food.com, allrecipes.com, etc. are (or were) prominent when searching by ingredient. It doesn't address your "what tools I have" part of the equation, but I found it immensely helpful for years when I would come home exhausted and think, "I have these in the pantry and this in the fridge. Someone else tell me what to cook because I am done thinking for the day."
posted by a non mouse, a cow herd at 4:27 AM on November 6, 2021 [1 favorite]


« Older “What’s the difference between plowing your car...   |   Here today, tabs tomorrow Newer »


This thread has been archived and is closed to new comments