On Sun, Sep 7, 2014 at 4:44 AM, Milind Khadilkar <zedobj...@gmail.com> wrote: > Thanks, Thierry. > I think the real problem with ZCA and ZCML is "bad press". We did not face > any ZCML problem when we worked on the Zope3 projects. It was later, > thankfully, that we came across the negative opinion. ZCA did require a > mindset change for some, but more often than not it has helped them in their > future work on other platforms too. > But that was 10 years ago... Don't know about now.
I'm proud of the ZCA in many ways, but: - ZCA was designed for problems that most people don't or shouldn't have, which is making a complex application pluggable. If your application is complex, that's a problem http://legacy.python.org/dev/peps/pep-0020/ - In the Zope 3 project, we used the CA way more than we should have. Initially, this was to prove that we could. Once we were convinced that every (damn) thing could be pluggable we should have stopped and simplified, using the ZCA only where needed. Instead, we'd established a culture of crazy levels of indirection. - Outrageous indirection in the base system made starting new projects either super difficult, an exercise in cargo-cult-programming, or both. I've come to the conclusion that any framework that requires or encourages its users to use project-templates or project-setup wizards isn't something I want to use. I stopped using Zope 3 several years ago when I realized that the weight of the framework wasn't justified by it's benefits, at least for me. I've decided that I'd rather use decoupled frameworks that, ideally, are simple to learn and use individually. That's why I use bobo now, http://bobo.digicool.com. A more conventional choice along the same lines would be Flask, although I think bobo is simpler. (Of course, I'm biased. :) I still use the ZCA, especially zope.event, but in a wildly lighter-weight fashion than I did in Zope 3. Part of the reason I prefer simpler server frameworks today is that Web applications are far more client centered today than they were when I worked on Zope 2 and even Zope 3. Today, for applications (as opposed to content *sites*), UI logic, including templating, mostly happens on the client, and web servers are largely REST/RPC/Database servers. Jim P.S. If you find the ZCA interesting, you should check out Scala and it's implicits and type-level programming. It does many of the same things as the ZCA at compile time. It's crazy beautiful and evil all at the same time. :) -- Jim Fulton http://www.linkedin.com/in/jimfulton _______________________________________________ Zope3-users mailing list Zope3-users@zope.org https://mail.zope.org/mailman/listinfo/zope3-users