167
29
rottytooth 3 days ago

Hi, I created this language as part of a series of experiments with bringing aspects of natural language into code. My previous language, Valence (https://danieltemkin.com/Esolangs/Valence), dealt with semantic ambiguity — this one with calligraphy. It avoids an overly logical syntax in favor of compactness and expressiveness.

I’m completing a book of these esolangs for MIT Press this fall including this; not much info yet online yet but here’s the link: https://mitpress.mit.edu/9780262553087/forty-four-esolangs/

Esras 3 days ago

This is beautiful, genuinely (the SVGs are lovely bits of artwork) and it's a fun puzzle to read, and I've shared with friends that like esolangs, including your book (good luck on publishing!).

In the "Data Strands" -> "Value Strands" section, you describe it as "Value strands (and other data strands), begin with a hook that points up (as in the third strand below) or to the left (as in the first two)" for the following example:

  1 ╵╰──╮╭──╯╶╮
  2    ─┘└─   └─╮
  3               
  5              ╷
but the way I was parsing it was that the hook is '╰' or '╯', in which case both of those are hooks pointing up? It looks like a fairly innocuous typo, but I'm never sure with an esolang so wanted to ask.

rottytooth 3 days ago

Yes, that's a typo: the first two strands have hooks pointing up, the third to the left.

I forgot to mention that you can run the interpreter with -p to convert the program to pseudo-code. This makes it much easier to tweak the examples and experiment. I'll add that to the readme, along with more pseudo-code for the example programs.

And thanks so much!! Very excited to publish (Sept 2025).

Esras 3 days ago

Thanks, as I said, easy to fool yourself into thinking you're wrong when esolangs are involved.

The CLI tool is fantastic. I never thought that I'd see an esolang where "ergonomics of using it" was something the author would work on. I'll play around with that some more later, thanks again!

QuadmasterXLII 3 days ago

Is this what it feels like to learn to program as an adult? I can brainfuck and APL with the best of them, and this is the most alien language specification I’ve ever read

kibwen 3 days ago

You'll have fun/existential horror with the esolangs wiki then, which describes thousands of languages (almost all unimplemented) in this vein: https://esolangs.org/wiki/Main_Page

For languages like Rivulet, see the non-textual category https://esolangs.org/wiki/Category:Non-textual or the two-dimensional category https://esolangs.org/wiki/Category:Two-dimensional_languages

vorbits 3 days ago

I would like to know how to even begin building an intuition for writing something in this. I read the entire README and the only thing I understand is glyph start and end ╵ ╷.

doodpants 3 days ago

Agreed; needs a tutorial.

thechao 3 days ago

I think each "line" is a stack expression, where one direction marks what value the stack pushes at that point, and the other direction (or index on the canvas? it's really unclear) marks the operation? So, maybe going down two lines is the number "two", then going right "one" pushes; now if we continue "right" three steps that means "add"?

There's no conditional operator on a single line. Instead, if two lines come "near" each other there's an alternate denotation that compares the values and either terminates (or rolls back?) the line's behavior to some earlier point (perhaps dependent on the value in the stack?)

rottytooth 3 days ago

The glyph start marker ╵ also marks a block of code; if several consecutive glyphs start with the same number of them, they are part of the same block.

When the question strand executes, it looks at whether a list element (or entire list) is zero or below. If so, the entire block is rolled back to its previous state.

So all branching is done as rollbacks. And loops end by rolling back their last iteration.

metalliqaz 3 days ago

It needs some fully commented programs as examples.

aa-jv 3 days ago

Truly beautiful code.

Looking forward to seeing this in graffiti form, sprayed all over some government building, giving the OCR-using hackers code to enter the (physical) backdoors that these scribbles are inevitably going to be indicating ..

gabetax 3 days ago

From the toki pona conlang, this also visually reminds me of the "sitelen musi" writing system.

https://www.reddit.com/r/tokipona/comments/hlpvx0/sitelen_mu...

layer8 3 days ago

If there ever was a language to write spaghetti code in…

memhole 3 days ago

Nice to see some experiments with languages. I really like the way it looks.

With all the AI focus on coding, it feels like we're going to end up sticking with a few languages because that's what it's good at or trained on.

ge96 3 days ago

That could be a cool piece to print out/put on a wall framed

mrbluecoat 3 days ago

The Mayans would be proud

rob74 3 days ago

Not enough knots though...

pezezin 2 days ago

Those were the Inca, not the Maya.

https://en.wikipedia.org/wiki/Quipu

psychoslave 3 days ago

Probably because it skip loops

jloganolson 3 days ago

That's where my head went, as well

aredox 3 days ago

This is an interesting take on visual programming...

nashashmi 3 days ago

A while ago there was this weird GitHub on using ms paint as an ide. I think this project should be paired together.

marmalar 3 days ago

Would love to see what a quine looks like

onemoresoop 3 days ago

It should look like somehting visually recursive

nathan_douglas 3 days ago

use a theremin as an input device

samchon 3 days ago

This is interesting, take my star