Building tools to make expression accessible, accurate, and economical

What does it mean for a programming language to follow first malleable.systems principle:

Software must be as easy to change as it is to use it

My medium is code, and its infrastructure is the 1) language, 2) its implementation, 3) tooling, 4) its ecosystem, 5) the community, 6) the literature, the code’s noosphere.

Picking up just the first three is nowadays difficult for newbies, and hard to keep up for seniors.

Make the language easy to use, the implementation easy to understand, and the tooling built on existing know-how that is the goal of Möbius, and of its current iteration bb: a single CLI gathering what otherwise requires git, pip/uv, gunicorn, and the rest.

To be wholly accessible, accurate, and economical bb must cross the chasm of any gap in 4) its ecosystem 5) the community, and 6) the literature.

If one, two, three are good, the four, five, six follow with much less effort; because there is no separate ecosystem to bootstrap, only a content-addressed store any one can append to. This is why bb already supports multilingualism. That is one logic, multiple natural languages, and soon multiple syntax (read: unicode art).

That is where I landed from the previous thread history as a first class citizen.

Keeping track a project history should not require a PhD in git. Sharing my clicker game should be as easy as composing a meme as mashup of existing combiners that i found with the help of the very same tool. Zip it, mail its manual defining a vm of 43 primitives with the guarantee that it will be reproducible in unforeseen situations.

It must be possible to situate without schism.

I understood for many the activation of the visual cortex is a must. I am not ready to go blind: I love dancing, and even more seeing people dancing, and I can’t believe that may be possible for me to enjoy the description of ballet in words the way I enjoy the dance of the wind on the water, or the way I enjoy prose. That is a way to say words are my medium, and code its ultimo i/o. Code is my medium, that’s where I am nowadays.

The near question is: bb --help usage looks like the following:

$ ./bb
bb — Mobius seed evaluator and store manager

Usage:
  bb add [--derived-from=<ref>] [--relation=<type>] <file|->
                                            Parse, normalize, store, and bind
  bb add --check <combiner> <check>         Register check for combiner
  bb caller <ref>                         Show reverse dependency DAG
  bb check <ref>                          Run all checks for ref and its dependencies
  bb commit [name... | --all]             Promote staged combiners to committed
  bb diff <ref> <ref>                     Compare two combiners (pretty-printed diff)
  bb edit <ref> [lang]                    Edit combiner in $EDITOR, re-add on save
  bb eval <expression>                    Evaluate a single expression
  bb log [ref]                            Show timeline
  bb print <ref>                          Output Chez Scheme library with all dependencies
  bb anchor <ref>                         Request or upgrade OpenTimestamps proof
  bb refactor <ref> <ref> <ref> [<ref>]   Replace old with new in root tree
  bb mapping list <ref>                   List all mappings for a combiner
  bb mapping delete <ref>                 Delete a mapping (ref must include mapping hash)
  bb mapping set <ref> <key> <value>      Set a mapping entry (0=name, 1+=params)
  bb remote add <name> <path>             Add a remote store endpoint
  bb remote list                          List configured remote store endpoints
  bb remote remove <name>                 Remove a remote store endpoint
  bb remote push <name>                   Push committed combiners to remote
  bb remote pull <name>                   Pull committed combiners from remote
  bb remote sync                          Pull and push all configured remotes
  bb remote publish <name> <ref>          Mark ref (and closure) public to <name>
  bb remote stop <name> <ref>             Stop publishing ref to <name>
  bb repl                                 Interactive Seed session
  bb resolve <ref>                        Resolve ref to full spec
  bb review <ref>                         Mark combiner as reviewed
  bb run <ref> [args...]                  Evaluate a registered combiner
  bb search <query>                       Search combiner names and content
  bb show <ref>                           Display combiner doc and definition
  bb status                               Show working state
  bb store info                           Show store statistics
  bb store init                           Create a new mobius-store
  bb serve [--port N] [--api-key K] <app-ref> <handler-ref>  Serve over HTTP
  bb tree <ref>                           Show dependency DAG
  bb validate                             Verify store integrity
  bb worklog <ref> [msg]                  View or add work log entries
  bb --help                               Show this help
  bb --version                            Show version

Version: 0.1.0

Is this surface comprehensible without a week of immersion?

2 Likes

So how much of this work is actually yours? I also find it difficult to believe a tool dependent on anti-human technology could solve the problems of community.

1 Like

The post says one thing, but the slop says something altogether different. I think this sends mixed messaging, I tried reading the AI written docs and it felt intensely adversarial to what you’re trying to say with:

My medium is code, and its infrastructure is the 1) language, 2) its implementation, 3) tooling, 4) its ecosystem, 5) the community, 6) the literature, the code’s noosphere.

None of these hold true under that context.

I didn’t read further.

So far I read the language spec in its entirety. I’m not sure either that it delivers on its stated goals, but it looks interesting.

1 Like

No idea. The help message on its own is a bit mysterious (as are all such messages). Maybe it takes less than a week to figure out your system, but it takes more than reading the help message!

1 Like

Which of the stated goals are you most uncertain about? What would change your mind toward delivers?

I mean, it is a draft :grinning_face_with_smiling_eyes: You aren’t expected to meet all the stated goals. But I feel like this is a common failure mode in my neighborhood. We’re all better at creating technical artifacts than we are at getting other people to use them enough that we can tell how well they work for the goals we started out from. God knows I failed at this with Mu. So keep putting it in front of people like your personas, track what works for them and what doesn’t. I think it’s extremely unlikely all of them will be satisfied by a single common product. But just something for maybe “the young, Tamazight/French speaker, intermittent internet, no CS degree” would be a great success all by itself.

2 Likes