Code


Version 4 (modified by anonymous, 17 months ago) (diff)

typo

Bitbucket.org

Bitbucket is a hosting service for projects using Mercurial or Git. It is built almost entirely on Django. It sports a feature-set much like Github.

Questions

Why did you choose Django?

We chose Django for several reasons: We have worked with it for years before deciding to do Bitbucket, and it's a wonderful framework where you get a lot of things for free, such as URL mappings, form generation/validation, and it of course encourages DRY. It turned out to be an excellent choice, and we've overcome most of the bottlenecks without having to coerce the framework itself.

What were the other alternatives?

There's Werkzeug which is gaining popularity these days. It looks like a nice framework, but not as mature as Django yet, and the community isn't as big either. The community around Django is invaluable, and the endless tips & tricks, snippets and examples have been a great help to many of our confusions. The manual is also most excellent.

What benefits did you get from Django?

We were able to launch the first version within 2 months, with one developer and one designer, working evenings and weekends. The tedious stuff of web development is basically non-existent with Django, as it recognizes many of the things you need to do, and just give them to you for free. Also with regards to template work, separating logic from layout, it has been a real pleasure working in tandem with the designer. The templating language is simple, yet powerful, and well documented.

What problems did you run into? Is there anything you'd like to have done differently?

We started writing the code just around the time newforms-admin was merged to trunk, so we had to convert some code along the way.

In your situation, what does Django need to make it even better?

The ORM is nice and simple, although there are a few things that needs to be there, such as "GROUP BY" expressions. Or, it would be nice if it was extremely easy to plug in a different ORM, such as SQLAlchemy.