From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.devel Subject: Re: [ELPA] Package proposal: EBDB Date: Tue, 01 Aug 2017 16:52:20 -0700 Message-ID: <87poceethn.fsf@ericabrahamsen.net> References: <87efsxspgv.fsf@ericabrahamsen.net> <87fudbi8af.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1501631604 3286 195.159.176.226 (1 Aug 2017 23:53:24 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 1 Aug 2017 23:53:24 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Aug 02 01:53:20 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dcgyP-0000Kn-Ir for ged-emacs-devel@m.gmane.org; Wed, 02 Aug 2017 01:53:13 +0200 Original-Received: from localhost ([::1]:44901 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dcgyV-00064J-Ni for ged-emacs-devel@m.gmane.org; Tue, 01 Aug 2017 19:53:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59799) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dcgxu-00063q-HC for emacs-devel@gnu.org; Tue, 01 Aug 2017 19:52:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dcgxr-0007fq-Eq for emacs-devel@gnu.org; Tue, 01 Aug 2017 19:52:42 -0400 Original-Received: from [195.159.176.226] (port=40686 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dcgxr-0007dv-84 for emacs-devel@gnu.org; Tue, 01 Aug 2017 19:52:39 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dcgxi-0006fE-0v for emacs-devel@gnu.org; Wed, 02 Aug 2017 01:52:30 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 36 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:lKjYALpY1EzuCbEbL9wr/uMCdGs= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:217227 Archived-At: John Wiegley writes: >>>>>> "EA" == Eric Abrahamsen writes: > > EA> I wasn't thinking of ELPA as "inclusion into Emacs", but maybe that's what > EA> it is? > > Yes, that's what certainly it's intended to be/mean, from my point of view. Good to know. I guess my arguments for the package are pretty much what I stated earlier, then. The present BBDB is limited in that record fields are just key-value pairs, for the most part strings. If you want to add a new type of field, you need to add branches to about a dozen `cond' statements throughout the BBDB codebase. In EBDB, new field types can be added via an external library. Likewise, the behavior of existing fields (and records and databases) can be altered with external libraries. EBDB fields can have arbitrarily complex data slots and behavior. Records can be of different types. People and organizations are built in, other record types can be added. Databases are likewise subclass-able. I think EBDB's internationalization framework is important. BBDB is fairly US-centric. EBDB can provide very fine-grained behavior for phones, addresses and names from various countries/locales/scripts. I have so far only scratched my own itch, with a China-specific library, but all the hooks are there. At present EBDB has some advantages (like multiple databases, record UUIDs, multiple buffers) that could be added to BBDB as well. But I think the points above are things that could not be reasonably added to BBDB as it stands: that was the point of the rewrite. Eric