Lennart Regebro What Zope Did Wrong (And What To Do Instead)

3,270 views

Published on

An overview about the problems with Zope2 and Zope3 and how to fix them.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,270
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
64
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lennart Regebro What Zope Did Wrong (And What To Do Instead)

  1. 1. What Zope did wrong (and what to do instead) Lennart Regebro EuroPython 2007, Vilnius
  2. 2. Zope is zuper!
  3. 3. First!
  4. 4. Object oriented!
  5. 5. Python!
  6. 6. Open source!
  7. 7. Batteries included!
  8. 8. Secure!
  9. 9. Easy!
  10. 10. And many other exclamation marks!!!
  11. 11. What Zope2 did right
  12. 12. Used Python
  13. 13. ZODB
  14. 14. DTML/ZPT
  15. 15. Batteries included
  16. 16. Easy entry into development
  17. 17. Zope2: The dead-ends
  18. 18. The ZODB pile of scripts
  19. 19. ZClasses
  20. 20. Disk-based products
  21. 21. Never ends Starts o easy
  22. 22. It's unpythonic!
  23. 23. Products instead of modules
  24. 24. Way to much magick!
  25. 25. Zope is the Application (not the library)‫‏‬
  26. 26. Maybe more?
  27. 27. Zope 3: Knight in shining armour!
  28. 28. Zope 3?
  29. 29. Zope 3!
  30. 30. To complicated
  31. 31. configure xmlns=quot;http://namespaces.zope.org/zopequot; xmlns:browser=quot;http://namespaces.zope.org/browserquot; xmlns:hello=quot;http://namespaces.zope.org/helloquot; content class=quot;.hello.Helloquot; require permission=quot;zope.Publicquot; interface=quot;.interfaces.IHelloquot; set_schema=quot;.interfaces.IHelloquot; / /content browser:defaultView for=quot;.interfaces.IHelloquot; name=quot;edit.htmlquot; / browser:addMenuItem class=quot;.hello.Helloquot; title=quot;Add Helloquot; permission=quot;zope.Publicquot; for=quot;*quot; /
  32. 32. Phew... Ugh.. .
  33. 33. Zope3: Death by abstraction
  34. 34. It's unpythonic!
  35. 35. XML
  36. 36. (So, not so unpythonic as people think)‫‏‬
  37. 37. In J2EE: A mail service API Implementation neutral Req: J2EE Not web-only The JavaMail API!
  38. 38. In Zope 3: A mail service API Implementation neutral Req: components Not web-only zope.app.mail
  39. 39. Zope 3: The long march
  40. 40. Development of Zope 2 slowed down
  41. 41. Documentation no longer updated
  42. 42. A general waiting for Godot
  43. 43. Backwards compatibility
  44. 44. Didn't happen
  45. 45. Forwards compatibility
  46. 46. Not Yet
  47. 47. Never ends Starts o easy
  48. 48. Phew... Ugh.. .
  49. 49. 2 + 3 = Five Argh! Ugh.. .
  50. 50. Low entry treshold and all the power of a big framework without dead ends?
  51. 51. GUI schema/form editor Information Manager TTW Layer GUI workflow editor IT department A CMS, ERP or similar Site Layer Site developer A Web application server Application Layer Application developer Application Layer API Language Component Architecture Core Layer Core developer Loads of components
  52. 52. Pythonic Use existing modules and APIs if possible − The whole application framework is a library − Highly modular Pick and choose from the modules − Modify and replace internal components −
  53. 53. Too much freedom?
  54. 54. Start with a finished application!
  55. 55. How can we accomplish this?
  56. 56. Python
  57. 57. A setup framework
  58. 58. Zope Component Architecture
  59. 59. Zope 3 the libraries
  60. 60. Grok
  61. 61. Information Manager GUI Tools IT department The CMS/ERP Site developer Application developer Grok Component Core developer Architecture

×