Changes to the top level sdbi API hga@xxxxxx (01 Oct 2019 16:42 UTC)
Re: Changes to the top level sdbi API John Cowan (01 Oct 2019 19:31 UTC)
Re: Changes to the top level sdbi API hga@xxxxxx (01 Oct 2019 20:06 UTC)
API naming Lassi Kortela (01 Oct 2019 20:27 UTC)
Re: API naming Lassi Kortela (01 Oct 2019 20:45 UTC)
Re: API naming, and constructing your technology stack hga@xxxxxx (01 Oct 2019 21:38 UTC)
Re: Changes to the top level sdbi API John Cowan (01 Oct 2019 20:50 UTC)

API naming Lassi Kortela 01 Oct 2019 20:27 UTC

>>> New opaque data type, tech-stack, and that's not a good name for the stack of e.g. "subprocess jdbc db2", suggestions including replacing "stack" are solicited.
>>
>> I like "rdbms", where "r" stands for "rectangular", or in the alternative just "dbms".
>
> To replace what? sdbi? In any case, "rdbms" would be deliberately confusing, and "dbms" might as well be "db" to save typing. If it's for the whole API, it should be "db" as a more general term than "dbms", there's more to sdbi than the database.

Is there a reason the names need to be so precise? IMHO they should be
no fancier than "db-*" or "database-*".

I'm thinking of Rob Pike's remark about "variables whose names are small
essays on their use" (<https://www.lysator.liu.se/c/pikestyle.html>).
Also all advice ever given on effective writing.

The procedures need to be accessed via (import ...) anyway, so if
there's a competing DB API using "db-" in the name then people can
import that instead and not import our API. In case they need to import
two APIs (e.g. the rectangular API and additionally a graph or document
database API) then the rectangular API is more conventional. Therefore
it's ok for it to have the simplest name. When people use the word
"database" without qualification, a rectangular DB is assumed.

> sdbi -> dbi would be fine if you want to shorten the former. You're already typing Scheme code, so that's assumed.

Bravo :) And the "i" can be dropped since everything you import is an
interface. (import (scheme filei)) would not be clearer than (import
(scheme file)). Either one is a "file interface".

>  Although I suppose you could say the whole tech stack is a database management system of its own.

RMS once has a funny remark about the then-new term "content management
system": if you start from dictionary definitions, it means "doing
something with some sort of information".

In general, it's good to avoid abstract words like "interface",
"management" and "system". In most cases they can be dropped altogether
without changing the meaning of the other words, or dropped with minor
changes to the other words.

> What I'd *really* like is a better name for "stack" / "tech-stack", which encompasses everything needed to get to the database as well as it.

I didn't quite catch how these procedures are used. Do you have an
example sketched up?

>>> Everything following, which starts with (sdbi-read result-set) -> list, is unchanged except for the"sql-" -> "sdbi-" swap.

"read" is a good name since it's used a lot in standard Scheme (well, in
R7RS) so it reinforces those names in the programmer's memory.
Unfortunately R6RS uses "get" in place of "read" a lot so the convention
is not as strong as it could be.