This blog entry on picking web frameworks is quite interesting. It doesn't give a lot of detail, and it acknowledges this, but it does show the struggles someone goes through trying to pick the right framework for the job (and one that fits his mind). Wyatt Baldwin considered, among other frameworks, Zope, and had the following to say:
I was having a hard time with the Pylons docs, and so I ended screwing around with Grok (which actually looks fairly interesting) and even took a look at the Zope 3 site. I’m sure Zope is really awesome or whatever, but it might as well suck. Every time I look at that site, I’m just like “WTF! This shit has been around for like five years!” Anyway, I might just not be smart enough for Zope.
It's very polite to say that the problem is that he's not smart enough for Zope, but of course that's not true. It's Zope's problem. If you cannot learn Zope while you can learn so many other technologies, that's a failure of the Zope community. My community.
Some in our community, including myself, are very much concerned with this problem. I believe in fact there is universal acknowledgment within the Zope community that this is a problem, but acknowledging a problem is one thing, fixing the problem is another. The process to fix this takes a while. There are multiple paths we've been taking:
- Grok: making Zope 3 more approachable. Grok attempts to make Zope 3 more easy to use and more easy to explain, and then tries to explain it. Even though Grok wasn't the final choice of this developer, Grok actually comes out not too badly in this blog entry! I think we've been doing a good job so far, but there's a lot more to do. Come join us and help us if you're interested.
- Finally fix our Zope web presence. This has been something we should've fixed years ago, but progress has been very slow. It's easy to get a bunch of web developers to debate what technology they should be using for a web site. It's also fairly easy to get some nice layouts for your website. It's hard to get good content written. When you ask for that, you tend to hear crickets all of a sudden. That said, in the background we are making real progress.
Zope has a community that's very much alive. We have much that is good. Our community is about 10 years old now. I've known quite a few of our community members for almost that long by now, and am happy to count them among my friends. We have a Zope Foundation, we have an industry partner network, we have a lot of sprints (Grokkerdam coming up soon!), we have regional user group meetings, including a big one every year in Germany, a significant presence at EuroPython, and we're active in the Google Summer of Code. I also feel comfortable in claiming the Plone community (including its own Plone Foundation) and the wildly successful Plone conferences as a very important part of the wider Zope community.
I think our community would've been even more vibrant if we paid more attention to attracting newcomers to Zope technologies. Plone in particular has been doing pretty well in attracting newcomers. We can learn from them, and from the other communities around web frameworks.
I believe passionately in this mission of attracting people to our platform, and thus I'm part of the Zope Foundation board (chairman, in fact), helping to shepherd our participation in the Summer of Code, and am part of the group of people who've started Grok. I'm excited about the potential of Zope technologies. We may have been negligent to attract newcomers, but we haven't been negligent otherwise: we've continued to build powerful and great tools. We're sitting on an a lot of amazing capabilities, and we need to make them more easy to use and let people know about them (the mission of Grok).
I see a lot of hopeful signs. I believe we've seen Zope turn a corner in the last year or so in the nature of perception in the wider Python community. People are talking about Zope technologies again. But we can do much, much more. Perhaps if we had done so earlier, Wyatt Baldwin and many others would be part of our community now, contributing, instead of moving on to another one.