2

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. (Non-Relational) DBMS Design Resource

2
  • 2
    Why worry so much? This is only a prototype of a pet project, right? It sounds like you're doing this just for kicks, that's a good thing. Commented Apr 16, 2010 at 19:56
  • The reason there are only a few Python databases is because there are so many good databases that Python can easily access (i.e. most of them) so it's rare for it to be worth the effort for anyone to write one. It's not because of performance considerations for the most part... And as a way of learning by doing, Python is absolutely well-suited for what you want to do. Commented Apr 17, 2010 at 18:25

2 Answers 2

5

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.

Sign up to request clarification or add additional context in comments.

Comments

1

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

1 Comment

@Daniel Yeah, about the know-how... I edited to link to another getting-started type question :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.