views:

170

answers:

2

Hey guys,

I'm working on a basic DBMS as a pet project and planning to prototype in Python.

I figure there's a reason there are only a few Python databases, and my gut agrees that my favorite language will be too slow to act as an honest performing database, but I'm looking forward to using it to learn what I need quickly.

Would someone please contradict me? Is Python as ill-suited right now for this sort of thing as I think?

EDIT 4/16-

I've posted another getting-started-on-this-project type question if anyone is interested. http://stackoverflow.com/questions/2654423/non-relational-dbms-design-resource

+1  A: 

If performance isn't a huge issue there's no reason Python can't do what you need, it certainly has all of the tools to do so. Designing a database certainly isn't a trivial undertaking, of course, but assuming you have the know-how and Python-fu to put in everything you need (of course, being helped by all of us here at SO ;) ) then the basic building blocks are all there.

For reference, there's at least one DBMS written in pure Python that I know of: KirbyBase

Daniel DiPaolo
@Daniel Yeah, about the know-how... I edited to link to another getting-started type question :)
Matt Luongo
+1  A: 

It's doubtful that anything you create as a pet project is going to turn out to be popular. Presumably you are mostly doing this as a learning experience and for fun.

Given these facts, there's no reason to stop yourself so early just because you think there might be performance problems. Just do it and have fun with it. The idea of a pure Python database will at least be academically interesting to others.

You can always do some performance profiling to find the bottlenecks and use the usual approaches in speeding things up (CPython, Cython, ctypes, etc.)

Don't be so quick to dismiss Python's huge benefits that you get in return for the performance hit. Namely rapid development.

FogleBird