I was just curious if anyone who reads BrainFuel is using Django for development? I know Bryan has been using it lately and has a lot of positive things to say about it.
Django just recently surpassed both Symfony and Rails in terms of speed and is really hitting the mainstream.
11 responses to “Anyone using Django?”
I’ve been wanting to get into Django bigtime, the automatic admin interface is tres impressive.
I’d be wary of any benchmarking frameworks… there’s really little to no fair way to benchmark them. Kind of like saying “Fords are faster than Volkswagens.” I’ve been steering away from Django because of the immense amount of code generation that it’s principles rely on (automatic admins, searches, etc). I don’t neccecarily agree with it, so I’d probably be swimming upstream trying it out.
If you read the link that Chris provided, you will notice the Django dev’s even cautioned about drawing any conclusions from benchmarks. And to quote that link, which quotes the benchmark results: “We feel these results, though not the whole picture, offer hints about relative performance between the three frameworks/platforms.”
Yes, there a lot of variables to consider when benchmarking web frameworks. But on a side note, when you compare the performance of Ruby itself to Python, python performs faster, but compare about equal when regarding memory usage.
Choosing a web framework involves more than just comparing performance results.
I want to comment on this code generation that you claim django does, but I don’t understand what you mean. Do you mean that it generates sql statements, because that’s what ORM’s do.
The django admin is a package. You don’t have to use/include it — you can turn it on or off. I really like the admin. It is very handy when building fast web applications that require a backend. And it’s currently being used in several large scale productions. In addition, it’s customizable.
Also, what are searches?
Bryan: I’m more concerned with the fact that code generation (whether it be optional or not) is the foundation for the philosophy of Django. While I haven’t used Django for more than a few hours, I’ve watched quite a few presentations given by it’s leaders — and it always comes back to the code generation (not SQL statements: HTML, Controller actions, Model methods, etc). It’s where the framework is steering (be it automatic RSS feeds, or automatic Admin panels) because it’s what the active developers are most interested in.
Again, it’s just a personal thing — not good, bad or other way.
Kyle, I was asking where you thought this code generation was taking place. There is no code generation that I’m aware of. And to quote django’s top developer:
“There’s no scaffolding at all in Django, because code generation is almost always a bad idea. In fact, before it was open-sourced, Django used to do code generation, in all layers from the admin interface to the model API. It became so redundant and unmanageable that we abstracted it.”
And to help clarify your confusion, those things that you listed are packages that are optional. They ship with django , and are modules within its “contrib” package. They are addons and are by no means the primary concern of the developers. But, since the admin is so popular among django users/developers, more work is spent improving the admin “add-on”.
Maybe this link will help you:
Bryan, no — I fully understand this. But I’m referring to code generation as in something that is not written in code, but comes out on the browser end.
I realize where you’re coming from as far as the add-on stance goes, but I’m more going on what I’ve heard from the developers in talks, and every tutorial I’ve seen written for django, and every django I’ve ever seen 😉 In fact, I have never seen Django mentioned without the automatic admin panel.
Again, don’t confuse me knocking it — I’m just saying it’s in direct opposition to how my brain works while working with frameworks 🙂
Wow, I had no idea there was so much interest in Django here. Cool! Good discussion.
Kyle, you are making no sense. I’m going to take a stab at it, though, and assume you are talking about generic views. Generic views are helper (not the right word, I can’t think of it though) functions for django so that you don’t have to rewrite the same view code over and over, such as when you want to render a list or describe. Again, like most things in django, it’s optional. They are great, though most all views in my current application are custom view.
Please read up on django views and templates and how they work. Then read about djangos generic views.
I’ve both tried and had some “minor”(?) setbacks doing the setup on Mac OSX and going through the tutorials. But, I don’t plan to give up.
Prototypes for 2 projects get currently implemented in Django. The data modeling and admin-interface-for-free is sweet and i18n internationalization rocks. I still need to get used to the templating, but I’d say as bottom line: it simply rocks.