Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month, online, via Jitsi Meet.

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] systemd sucks and containers suck and language-specific package repos suck



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





Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org