unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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.



  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).