[Top][All Lists]

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

Re: sqlite3

From: Alan Mackenzie
Subject: Re: sqlite3
Date: Mon, 6 Dec 2021 17:38:29 +0000

Hello, Lars.

On Mon, Dec 06, 2021 at 02:51:33 +0100, Lars Ingebrigtsen wrote:
> I think many user experience things in Emacs would be better if Emacs
> remembered more.

> The bigger systems don't have this problem -- Gnus needs a large
> .newsrc.eld file, and it maintains that.

> The tiny things don't really have this problem, either: You save options
> with `customize-save-variable', and that fine.

> It's the many things that fall between these two extremes that have the
> problem: Where you want to store some state, but figuring it's just too
> much work to figure out Yet Another Storage Format, but the data is too
> messy to stash in somebody's .emacs file via Customize (like lists of
> stuff).

> So there's a bunch of stuff that Emacs just forgets when you shut down,
> where it perhaps shouldn't.

> I've brought this up before, but I didn't really have a solution then,
> but I think I do now: sqlite3.


That would break 45 years of Emacs tradition and practice.  In Emacs,
data are stored as PLAIN TEXT.  Even .elc files are pretty much plain

That is, text that you can examine with standard tools, such as grep,
awk, perl, less, ...., and C-s and friends within Emacs.

You seem to be suggesting moving plain text data to an opaque format,
which can only be examined with special purpose tools.

> sqlite3 is supported on more platforms than Emacs is, the interface is
> small and stable, and (best of all) somebody has already created
> interface functions for Emacs (via a module):

>   https://github.com/syohex/emacs-sqlite3

So, in addition to learning ELisp and C, and the tools mentioned above,
one will now have to learn sqlite3 in order to make full use of Emacs?

Firefox changed some years ago to having its store of visited sites as
an opaque format.  That's been entirely a loss for me, since I can no
longer examine and edit it with any tool other than Firefox itself.

Please don't do the same to Emacs.

> I think it'd be good to bring that into core, and then write a small
> wrapper library (well, a trivial ORM) for the rest of Emacs to use, so
> that we don't have to write SQL all over the place.  That is:

> (setf (persistent-data :namespace "emoji" :key "favorites") emoji--favorites)

> I.e., what Emacs needs is a persistent key/value store, and this would
> give us that.

Emacs has that already.  It's called an alist.  It becomes persistent
when you print it to a file, not a challenging project.

> In addition, if somebody really wants to write SQL stuff (it can be very
> handy for some things), having sqlite3 in there gives us that in
> addition for free.

If somebody wants to develop an SQL application, that's fine.  But you
seem to be talking about turning Emacs _into_ an SQL application.
That's anything but fine.

> This comes with questions about how the users are supposed be able to
> clear out the data, for instance, but we could have a `M-x
> list-persistent-data' where the users could blow out whatever they want
> to.

Such a data store would be an opaque format.  Please don't.  Just don't.

> -- 
> (domestic pets only, the antidote for overdose, milk.)
>    bloggy blog: http://lars.ingebrigtsen.no

Alan Mackenzie (Nuremberg, Germany).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]