[Python-Dev] bsddb alternative (was Re: [issue3769] Deprecate bsddb for removal in 3.0) (original) (raw)

C. Titus Brown ctb at msu.edu
Thu Sep 4 16:37:51 CEST 2008


On Thu, Sep 04, 2008 at 10:29:10AM -0400, Tony Nelson wrote: -> At 6:10 AM -0500 9/4/08, skip at pobox.com wrote: -> > >> Related but tangential question that we were discussing on the -> > >> pygr[0] mailing list -- what is the "official" word on a scalable -> > >> object store in Python? We've been using bsddb, but is there an -> > >> alternative? And what if bsddb is removed? -> > -> > Brett> Beyond shelve there are no official plans to add a specific -> > Brett> object store. -> > -> >Unless something has changed while I wasn't looking, shelve requires a -> >concrete module under the covers: bsddb, gdbm, ndbm, dumbdbm. It's just a -> >thin layer over one of them that makes it appear as if you can have keys -> >which aren't strings. -> -> I thought that all that was happening was that BSDDB was becoming a -> separate project. If one needs BSDDB with Python2.6, one installs it. -> Aren't there other parts of Python that require external modules, such as -> Tk? Using Tk requires installing it. Such things are normally packaged by -> each distro the same way as Python is packaged ("yum install tk bsddb"). -> -> Shipping an application to end users is a different problem. Such packages -> should include a private copy of Python as well as of any dependent -> libraries, as tested.

Why? On Mac OS X, for example, Python comes pre-installed -- not sure if it comes with Tk yet, but the next version probably will. On Windows there's a handy few-click installer that installs Tk. Is there some reason why I shouldn't be relying on those distributions??

Requiring users to install anything at all imposes a barrier to use. That barrier rises steeply in height the more packages (with versioning issues, etc.) are needed. This also increases the tech support burden dramatically.

I'm happy to be told that bsddb is too much of a maintenance burden for Python 2.6/3.0 to have -- especially since it's gone from 3.0 now ;) -- but I don't think the arguments that it won't matter that it's not there have been very credible. There's a BIG difference between things that come with Python and things that are add-ons.

Right now, I'm teaching an intro programming course using Python. It doesn't seem like the students are going to need to install anything other than base Python in order to play with full networking libraries & sqlite databases, among other features. And, for me and for them, that's really great.

I don't think the convenience of "batteries included" should be underestimated.

--t

C. Titus Brown, ctb at msu.edu



More information about the Python-Dev mailing list