On Fri, Jul 30, 2010 at 7:16 AM, Vito <vitorre...@gmail.com> wrote: > > > On 29 jul, 17:39, Jacob Kaplan-Moss <ja...@jacobian.org> wrote: >> Hi Vito -- >> .... >> Jacob > > > Mr Jacob Kaplan-Moss, I am very happy to receive a response from you. > It is a very valuable information. > > I just like to say something, to you and the rest of Django > developers: > > Django is a framework made by perfectionists for perfectionists, but > it is not good that they are as conservative. I guess it's not an easy > job to have a framework so robust and yet so modern that supports the > latest technology. > > I have to go a long way to keep up with the developers of Django, but > soon I will be and try to help in the project from now. > > I think every time a new technology comes out you should start a > conversation to begin to discuss how it will be integrated into > Django, so that, sooner rather than later, Django supports the latest > technology: not only database, also client side technologies, web 2.0, > security. etc.
Hi Vito, Thanks for the suggestion. However, I would like to make a couple of comments in defence of our "conservative" approach. Firstly, the Django core team (and, for that matter, everyone else working on Django) is a volunteer group. We have limited time and resources, so we can't spend all our time discussing what might be or could be. If we did this, we would spend all our time discussing, and no time actually *doing*. The good news is that we don't need to have a single coordinated centralized discussion in order to make progress. Since Django is an open source project, anyone can contribute. If you think that an emerging technology is important, you have the source code, so you can try to implement an interface to that technology. If your change requires modifications to Django's core, you can propose those changes. Rather than have a start the process with a speculative "should we implement" or "how could we implement" discussion, we prefer to let the community establish what is possible, and let the community make a concrete proposal based on practical experience. For example, there has been lots of interest recently in NoSQL data stores. As a result, several groups have gone off and built NoSQL interfaces that can be used in Django. Some of these are unrelated to Django. Some of these leverage parts of Django, but work without any modifications to core. Some are effectively a speculative fork of Django. However, as a result of these independent projects, we're now in a position to be able to recommend a good path forward for the core -- and that's what Alex is implementing in the Summer of Code. Secondly, Django has a very strong policy of backwards compatibility. Once we introduce an API, we guarantee not to change it. That means we need to be *slightly* conservative when we adopt. We don't want to introduce an API for NoSQL in version 1.3, only to completely change the interface in version 1.4. We also don't want to end up having to support dozens of bad interfaces to emerging technologies that never really get beyond the initial buzz phase of their lifecycle. Thirdly, it's also important to note that just because a technology is important, it doesn't mean it needs to be part of Django. For example, you mentioned client-side technologies. Django is a server-side framework. Why does Django need to evolve client-side features? Why can't those feature emerge as a separate project? On the other end of the stack, Django doesn't need to evolve into a web server, either. We'd rather Django be a small project surrounded by a vibrant community of other small projects, rather than try and evolve Django into a massive "do-everything" framework. Lastly, its important to note that just because Django doesn't have a baked-in solution for <insert hot new feature here> doesn't mean it can't be done in a Django stack. As Jacob pointed out, there are already several ways to do NoSQL in a Django project. So -- if you think there is some emerging technology that Django should support, the first step is to try to implement your idea independent of Django itself. Try and work out if it can be a standalone project, or a library that 'plugs in' to existing Django interfaces. If it turns out that means changes are required in Django to support your new idea, feel free to make a suggestion, explaining why those changes are required. We're always open to suggestions -- but we're even more open to people in the community making the wider Django ecosystem a richer and more vibrant place to live. Yours, Russ Magee %-) -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.