[Discuss] systemd sucks and containers suck and language-specific package repos suck
Kent Borg
kentborg at borg.org
Thu Sep 17 11:07:30 EDT 2026
Forgive me for both changing the subject and bringing things around to LLMs.
On 9/17/26 6:15 AM, markw at mohawksoft.com wrote:
> Let's make a conceptual distinction between and arbitrary functional
> library and an "API." A API is a very formalized interface, often by
> standards and committees. A "library" is a far far less formalized system.
I have been working on the design of a pretty complicated program. It
includes a database. As a way to tame the project I have been carving
out the database, and the parts surrounding the database, into a
separate library, specifically a Rust "crate", with a very carefully
specified interface. I am excluding from the crate everything I possibly
can, but no more. The result is that I am collecting a few generics for
things the surrounding program to supply. My crate manipulates the
generics in as opaque a way as possible, the larger program knows what
they actually are.
> That is, I think, a different category. That is a "framework" and
> frameworks are a dependency hellscape.
The generics need to implement specific Rust traits, in a sense the
generics are a "plugin" interface for how to make the crate do something
useful. (Though they are quite compiled in, not something dynamically
discovered at runtime.) This means my crate is *very* opinionated about
how the surrounding code works. Does that make it a "framework"?
The only certain customer of this crate is my own program, but I am
trying to be very disciplined about imagining this crate might be used
for some unrelated purpose as part of a completely different larger
program. That is helping a lot to keep the design clean.
The project is quite weird in two ways:
1. I am using an LLM (Claude Code) to help me manage this design,
helping me make sure the schema and internal code and the interface to
the surrounding code are all consistent and will work as intended. All
before a single line of code has been written.
2. I want the Crate's API, schema, and key internal algorithms to all be
very closely specified because it will be the LLM that will write the code.
In a sense I am writing the program now, trying to make the later "code
generation" into Rust as mechanical as possible. I need the LLM to have
a very clear mandate and criteria for correctness. I want to get this as
far out of "vibe" territory as I can.
This is a very strange process as I am figuring out how to "program" at
a new level above "high level languages" (compilers were once
controversial, too!). This is also strange because I am working on a big
design, one that I think previously would have to have been built out
more incrementally, by a good sized team of smart programmers, over a
long schedule. The design is too big for me to keep in my head all at
once, a bit the way that if this program had come from that earlier era
none of that team of programmers would have had the entire design in
his/er head all at once, either.
I don't know how this will turn out. It is a lot of work but so far the
architecture is holding up well, I am not thrashing it about, nor do I
find myself incrementally adding "features" (more often I remove
assumptions as I decide we need yet another generic). Frequently as I
wrestle with some question Claude will dig through its notes and explain
to me something that was decided on some specific date weeks back, and
I'll be impressed at what a good decision it was. :whew: In a sense I am
hopping about, being the different members of that imagined programming
team, as they carefully work together on the design. And Claude is
taking notes.
It is amazing how smart Claude is, and it is extremely frustrating how
little judgement Claude has. And sometimes Claude has a bad day and is
really stupid. Weird, weird, weird.
I am hoping that I will, eventually, have this crate working, and that
at that point I will be able to forget about it's internals, and build
the outer program. I also hope that at that point things will move quickly.
We'll see.
But now I need get back to working on a specific cache-like table that
~could~ fill up, and decide whether I have a decent stab at an eviction
strategy now, or whether should shelve it and wait until I have real data.
-kb
More information about the Discuss
mailing list