From: Philip Kaludercic <philipk@posteo.net>
To: Lynn Winebarger <owinebar@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: [NonGNU ELPA] New package: sqlite3
Date: Wed, 22 Mar 2023 08:10:47 +0000 [thread overview]
Message-ID: <87ilet5hq0.fsf@posteo.net> (raw)
In-Reply-To: <CAM=F=bDgmnMUyC5McKiJ4obcfv6F09B_fGMBSsEkB87qZQFVoQ@mail.gmail.com> (Lynn Winebarger's message of "Tue, 21 Mar 2023 19:58:34 -0400")
Lynn Winebarger <owinebar@gmail.com> writes:
> On Tue, Mar 21, 2023 at 12:53 PM Philip Kaludercic <philipk@posteo.net> wrote:
>> I really, really have no idea what you are getting at. As in "ok, but
>> what is your intent in explaining this?".
>>
>> Are you trying to propose that Emacs circumvents the SQLite API (that as
>> far as I see uses strings) by constructing statement objects manually?
>
> Not at all. I don't think I can communicate via email the power of
> generative programming techniques, and why basing them on simple
> string concatenation is a bad idea, so I'm going to stop trying.
I get that, and I am not advocating for string concatenation. Perhaps
that is what is confusing me?
> I don't think "? ? table values ( 1.0, 'Foo' )" can be supplied with
> 'insert and 'into as parameters.
Nor do I, but I doubt the necessity. SQL is a very brittle language,
and replacing one keyword with another will usually require other
changes to be made as well.
>> Are we sure that a database is more efficient than a hash-table (which
>> can already be printed and read)? Or are we talking about unusually
>> extreme values, like in your other message where you were loading 2000+
>> packages?
>
> Who determines what is extreme?
Experience and convention? There is no algorithm to determine this, but
before 2000 the highest number of Emacs packages I heard someone was
using was maybe 300-400 (which I also think is an absurd number).
> Tasks that aren't done today because
> they are difficult to code efficiently? Tasks that seem extreme when
> you write the code in direct style may become much less extreme once a
> well-crafted table/query facility is available. I don't think simply
> *installing* 2000+ packages is all that extreme in itself. Even
> loading all those packages, particularly when using redumping, is not
> particularly extreme in terms of resource consumption on modern
> desktop hardware.
>
> Hash tables only index a single key of a data set. And they don't
> address tasks like efficiently joining tables.
>
> My personal interests run to using relational programming for problems
> like abstract interpretation and compiler implementation.
In Elisp?
> I'm sure
> there are many applications for problems Emacs is used to solve, e.g.
> tracking cross-references, tag tables, etc.
>
>> > I'm sure there's more, but we won't know until the programming idiom
>> > is readily available and easy to use.
>>
>> Are there any other languages that support this kind of interaction,
>> where we could learn some lessons about the advantages and limits of
>> these ideas?
>
> You might consider the LINQ sublanguage of C# and other .NET-based
> languages as an example of a useful query DSL.
As far as I understand (I have no experience with .NET-based languages),
this is only syntax sugar? Or how does this relate to the point of
dumping an in-memory database.
next prev parent reply other threads:[~2023-03-22 8:10 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-04 10:17 [NonGNU ELPA] New package: sqlite3 Jonas Bernoulli
2023-03-04 11:39 ` Philip Kaludercic
2023-03-06 18:43 ` Jonas Bernoulli
2023-03-14 16:16 ` Philip Kaludercic
2023-03-14 22:46 ` Jonas Bernoulli
2023-03-15 8:05 ` Philip Kaludercic
2023-03-21 6:51 ` Jean Louis
2023-03-21 10:55 ` Lynn Winebarger
2023-03-21 11:08 ` Philip Kaludercic
2023-03-21 11:56 ` Lynn Winebarger
2023-03-21 12:18 ` Philip Kaludercic
2023-03-21 13:04 ` Lynn Winebarger
2023-03-21 16:53 ` Philip Kaludercic
2023-03-21 21:00 ` Tomas Hlavaty
2023-04-07 4:53 ` Jean Louis
2023-03-21 23:58 ` Lynn Winebarger
2023-03-22 8:10 ` Philip Kaludercic [this message]
2023-03-22 15:05 ` Lynn Winebarger
2023-03-23 0:07 ` Lynn Winebarger
2023-03-21 20:42 ` Tomas Hlavaty
[not found] ` <875yatn70c.fsf@posteo.net>
2023-03-21 22:46 ` Tomas Hlavaty
2023-03-22 8:00 ` Philip Kaludercic
2023-03-21 20:36 ` Tomas Hlavaty
2023-04-07 5:17 ` Jean Louis
2023-03-06 5:08 ` Richard Stallman
2023-03-14 14:36 ` Jonas Bernoulli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ilet5hq0.fsf@posteo.net \
--to=philipk@posteo.net \
--cc=emacs-devel@gnu.org \
--cc=owinebar@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).