Sunlight Labs is a huge fan of Django. We use it in a majority of the projects we produce here and have released the source of numerous applications. So a few weeks ago a bunch of us eagerly packed our bags and flew out to Portland, OR for DjangoCon 2010.
DjangoCon: The Good Parts
Rethinking the Reusable Application Paradigm
Alex Gaynor's talk "Rethinking the Reusable Application Paradigm", though a whirlwind of information, was one of the best of the conference. Reusable applications have long been a selling point of Django, but it is often quite difficult to use apps in any situation that would require the most basic of customization. Alex's talk covered the things that most frequently prevent apps from being reused and possible solutions to get around the limitations. The ideas he offered were both practical and enjoyably complex. I look forward to implementing some of them in our applications.
As always, the lightning talks were a highlight of the conference. It's a chance for people to show off novel solutions to problems or propose their crazy ideas. Some of the best included:
Eric Holscher demoed Read The Docs, a documentation creation and hosting service. If an app has documentation checked into its source repository, Read The Docs can automatically build and host the docs. Quite sharp. The project was created for the Django Dash.
Another Django Dash project, djangopackages.com provides a central place to find and compare the many Django packages that exist. My favorite part of the site are the feature comparison charts that allow you to see how each package stacks up against the others based on various criteria.
OpenID is notoriously difficult to implement in Django projects. Packages such as django-socialregistration make it easier, but it can be a quite frustrating initial setup. Nathan Florea gave a quick overview of what it takes to create and OpenID provider and consumer.
Logbook, a logging module by the ever-prolific Armin Ronacher. I'm not going to describe it here, just check it out.
David Gouldin presented on a jQuery-based URL hash signaling plugin that allows for Facebook-style dynamic page rendering. It was a bit heavyweight for my taste, but an interesting implementation.
DjangoCon: The Bad Parts
Sadly, the bad parts outnumbered the good parts.
A community in crisis?
There was much talk of the big issues facing the Django community. The main focus was on the involvement of the community in the future development of Django and the small number of core contributors with commit access. Everyone seemed to agree that this needs to change so that more people can become involved in the various aspects of the framework. It's not good when you only have two or three people in the world that really understand how the ORM works. More committers means more features and bug fixes pushed back into the project. Ideally, stale portions of the codebase can be refreshed when interested contributors have a lowered barrier to getting involved (a good argument for moving to DVCS, but that's a whole other fight).
All this community talk is great, but is it really a problem? I spoke with a Ruby friend about the Rails community and how the project is managed. It really doesn't sound much different from the way the Django project is run. A small core team determines the features for the next release with moderate input from the community. New features are included only if the core team feels they fit within the philosophy of the project. Commit access isn't given out willy-nilly, but there is a flow of people into and out of the Rails project.
While I agree that more people need to be directly involved in core Django development, I'm not convinced that the severity of the problem is proportional to the amount of attention it received at DjangoCon.
I've read your blog post
The developers in the Labs have written dozens of Django projects and applications. Some are quite complex and dive fairly deep into the core Django code. We stay tuned in to the latest news in the Django Community by following Django Dose and the Django Community Aggregator, among other resources. Unfortunately this means that when there are only three expert level talks out of a total of 32 at DjangoCon, a vast majority of the talks are going to be quite boring. I felt like many of the sessions would have been better served as a 10 minute blog post rather than a 45 minute talk. In fact, a few of the talks were actually based on blog posts that got stretched into full sessions.
I understand that novice and intermediate talks are important for new developers, but the community shouldn't be afraid of diving into complicated topics. Let's get a run down of how the ORM works! Let's discuss the implementation details of proposed NoSQL solutions! Let's hear about novel solutions to difficult problems or how Django has been applied in unexpected situations!
I have a hard time believing that all of the hard Django problems have been solved.
Can a keynote ruin a conference?
DjangoCon's opening keynote address reminded me far too much of the one at PyCon 2010. I'm increasingly convinced that a bad start to a conference can taint the rest of the sessions with lingering disappointment. PyCon's keynote consisted of Python's BDFL, Guido van Rossum, taking questions from the Twitter stream projected behind him. With no direction, the keynote became a 45-minute session of disjoint questions peppered with tweets that tried far too hard to make the audience laugh. Similarly, the opening DjangoCon keynote consisted of the Python Software Foundation chairman free-wheeling a speech (he stated that he purposely didn't prepare one) and taking random questions from the audience.
I personally look to an opening keynote to set the tone for the conference. There is no better way set things off than to leave everyone inspired and eager to get into sessions. "Hey-hey, let's wing it! Any questions?" instantly lowers my expectations for the rest of the conference.
I'm done with conferences for now
Even if there are new people coming into the Django community, the goals and limitations of the project are well established. Is there much room left for exploration and innovation? I feel like I'll be better served in the future by focusing my time on local tech events and newer projects and communities. Friends that have gone to conferences like JSConf have returned super excited while those that have gone to "established" conferences such as PyCon, DjangoCon, and OSCON were disappointed with their experience.
The Ruby community has a large number of short, regional conferences that seem to be well attended and enjoyed. What is the difference between these more intimate gatherings and large national conferences? Is there any advice you would give to the Python and Django communities?