From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.devel Subject: Re: persistent data feature Date: Mon, 14 Feb 2022 17:23:54 +0300 Message-ID: References: <87tufmjyai.fsf@gnus.org> <87bl1olyhr.fsf@localhost> <87bl1ngnj1.fsf@logand.com> <3437406.lxAJRBJNBK@galex-713.eu> <875yrvgchu.fsf@logand.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3921"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.0 (2022-02-12) Cc: Alexandre Garreau , emacs-devel@gnu.org To: Tomas Hlavaty Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Feb 14 15:53:23 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nJcjD-0000kV-4S for ged-emacs-devel@m.gmane-mx.org; Mon, 14 Feb 2022 15:53:23 +0100 Original-Received: from localhost ([::1]:39498 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nJcjB-0000do-SQ for ged-emacs-devel@m.gmane-mx.org; Mon, 14 Feb 2022 09:53:21 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:48260) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nJcI5-00021a-Gj for emacs-devel@gnu.org; Mon, 14 Feb 2022 09:25:21 -0500 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:35307) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nJcHh-000796-Ju for emacs-devel@gnu.org; Mon, 14 Feb 2022 09:25:13 -0500 Original-Received: from localhost ([::ffff:41.75.189.127]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 0000000000055D52.00000000620A6628.000078C9; Mon, 14 Feb 2022 07:24:39 -0700 Mail-Followup-To: Tomas Hlavaty , Alexandre Garreau , emacs-devel@gnu.org Content-Disposition: inline In-Reply-To: <875yrvgchu.fsf@logand.com> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:286275 Archived-At: * Tomas Hlavaty [2021-12-11 22:54]: > > And I think that a fear of getting a such thing into emacs, under the > > excuse that “for the developer, it works” and that “it brings more > > features” is what makes people afraid from something even as minimal as > > sqlite… for emacs is one of the very few software to be minimal and > > transparent enough to have a better situation than sqlite > > Databases are complex. They are not more complex then the text files of which user has lack of knowledge what are they about. If user has knowledge of programming language A, but not programming language B, that B will appear "complex". It is individual perception. > For example, will users have to deal with schema upgrades? They need not think of the background. Just as you use M-x customize in quite nice way, one can use database from User Interface. > Will they have to deal with sql? That depends of programmers who make the User Interface. Me I am using least SQL in the database management, and I can add new column to database table by using "A" and then say that column shall contain integers or dates only and I would call the column "Date Created". My interface for database editing is similar to below. I can edit, update, or nullify some entries. One could call all of the table columns "variables", and in this example there is table "variables" where one table column is called "variables_name" with visible representation being "Variable", having "url" as its value: ID 84 Note nil Variable "url" Value "http://www.example.com" Template "Nice 1" Language nil Area nil Type "Standard" If there is a way to list all customizable variables, I could as well insert them into the database under the Emacs type, and under specific Emacs profile. With network databases I could have my profile fully on network accessible only by my username/password, accessible through Emacs on any side of the world. That is just hypothetical possibility, though not so far from realization. I am using database backed variables since 20 years already for purposes of Website Revision System. I could as well store Emacs Lisp variables, all those from my init.el and I seriously think about temporarily re-defining `setq' to function that will slurp the variable into the database, and then forget about the init.el > Will they have to deal with sqlite specific issues? Users need not even know that there is sqlite backend. One could use multiple backends while users having always same User Interface. > Once sqlite is linked into emacs, it will eventually infest > almost everything and emacs will be stuck with it forever. Maybe "infest" is meant to mean something bad, though I think of it as positive. Emacs has to have GDBM built-in since decades, and I still wonder why it did not have. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/