all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: Drew Adams <drew.adams@oracle.com>
Cc: help-gnu-emacs@gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Difference between EBDB and BBDB
Date: Tue, 25 Jun 2019 14:25:26 -0700	[thread overview]
Message-ID: <87blyll5mh.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <d176bd2f-443e-4478-aeba-8e0ebd5d741f@default> (Drew Adams's message of "Tue, 25 Jun 2019 14:08:41 -0700 (PDT)")


On 06/25/19 14:08 PM, Drew Adams wrote:
>> > It sounds like, as one big difference, they are incompatible. You
>> > cannot use the same "database" records for both. Is that right?
>> 
>> That's right.
>> 
>> > If so, that's a big difference. If so, does either provide a function
>> > to import records from the other?
>> 
>> EBDB can import from BBDB;
>
> That's great.
>
>> EBDB hasn't been around long enough for
>> anyone to want to go the other way. If someone tried it for a couple
>> months and hated it, but didn't want to lose their contacts, I could
>> pretty easily write a BBDB exporter.
>> 
>> EBDB also has pluggable/swappable databases,
>
> That could be even better, in principle.
>
>> so in theory one could make
>> a database type that stored to a BBDB-usable file, but I'm not sure why
>> you'd want to do that.
>
> Just food for thought:
>
> It's good to be able to separate the use (UI, UX or
> whatever) from the database itself - form of records
> etc.  Regardless of whether it's BBDB or whatever
> else might come along or already exists out there
> somewhere.

That was absolutely my first principle in making this package: the
classes responsible for storage and behavior have nothing to do with the
interface presented to the user. In fact, ebdb.el should be usable as an
API for other packages, while ebdb-com.el should only be responsible for
the ebdb-mode buffers. I wouldn't be surprised if I've screwed up this
separation somewhat, but that was the original idea, and I will fix
relevant bugs!

> A generic way for a user to define her own
> record-to-record mapping (for whatever storage form)
> could help.  It could be a mapping for one-time
> conversion or a mapping to use at runtime to access
> another database directly.

While the documentation doesn't go into this at this point, this is
precisely how the whole system works, right down to the "generic" term:
`cl-defgeneric' is basically how you take control of the whole system.



  reply	other threads:[~2019-06-25 21:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-25  2:15 Difference between EBDB and BBDB M.R.P. zensky via help-gnu-emacs
2019-06-25 15:45 ` Stefan Monnier
2019-06-25 17:56   ` Eric Abrahamsen
2019-06-25 19:06     ` Drew Adams
2019-06-25 19:34       ` Eric Abrahamsen
2019-06-25 20:34         ` Xavier Maillard
2019-06-25 21:39           ` Jude DaShiell
2019-06-25 21:08         ` Drew Adams
2019-06-25 21:25           ` Eric Abrahamsen [this message]
2019-06-25 21:40             ` Drew Adams
2019-06-25 22:20               ` Eric Abrahamsen

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87blyll5mh.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.