Данная статья посвящена такому фреймворку, как Zope. Zope – достаточно популярный Web-фреймворк, который написан на языке программирования Python, при этом, в основном он применяется в качестве системы управления содержимым сайта, то есть - контентом.
Краткая история о том, как зарождался Zope
В 1998 году сотруднику компании Digital Creations - Джиму Фултону было предложено прочитать лекцию о стандартных интерфейсах, которые используются для связи внешней программы с веб-сервером (CGI). Согласно легенде, он ничего об этом не знал, и его начальнику, пока они летели в самолете, пришлось рассказать ему основы CGI. С этой лекцией, Джим выступил на конференции. Говорят, что протокол ужаснул его своей чрезмерной простотой, и на основе этого, Фултон решил создать что-нибудь объектно-ориентированное. Было создано три открытых Python пакета: Bobo, Document Template, и Bobopos. Эти пакеты — веб публикатор, движок шаблонов, и объектная база данных стали ядром Principia, то есть коммерческого сервера приложений. А в ноябре 1998 года, инвестор Хадар Педхазур убедил Digital Creations сделать Principia открытым, после чего, эти пакеты развились в компоненты ядра фреймворка Zope 2, а компания получила новое имя — Zope Corporation и начала выпускать свой продукт под собственной Open Source лицензией ZPL. Так началась история Zope.
Почему стоит выбрать этот фреймворк?
Основной особенностью Zope является его объектно-ориентированность:
• Он представляет собой коллекцию компонентов - объектов, с четко заданной функциональностью, которая описывается с помощью интерфейсов;
• Каждый компонент можно заменить на любой другой с таким же интерфейсом (можно провести аналогию с моделью провайдеров в ASP.NET). Таким образом, компоненты выполняют один и тот же функционал, но разными способами. А программист выбирает из них наиболее подходящий;
• Имеет объектную базу данных ZODB, предназначенную для естественного хранения объектов;
• Строгие стандарты для разработки, выпуска и обслуживания программного обеспечения;
• Мощный механизм HTML/XML-шаблонов и широкие возможности для тестирования.
Сравнение Zope с другими фреймворками
Для того, чтобы сделать выводы о популярности этого фреймворка, было принято решение создать сравнительную таблицу, расположенную ниже. Zope был сравнен с такими фреймворками как – Jango и CherryPy по следующим критериям:
• Группа фреймворков: Full stack или Micro-framework.
• Звёзды Github: общее количество звезд проекта, выставленных пользователям.
• Релизы Github: количество релизов каждого проекта, что отражает активность работы над проектом и его зрелость.
• Fork-и Github: количество, сделанных копий каждого проекта, что показывает популярность использования проекта в собственных работах.
• Вопросы Stack-overflow: количество вопросов, заданных по определенной теме.
• Вакансии: количество вакансий, связанных с технологиями или ИТ компетенциями.
Сама сравнительная таблица:
Название фреймворка | Группа фреймворка | Звёзды на Github | Релизы на Github | Fork-и на Github | Вопросы Stack-overflow | Вакансии |
Zope | Full | 196 | 229 | 81 | 3 | 0 |
Django | Full | 46 528 | 275 | 20 400 | 217 030 | 42 |
CherryPy | Micro | 1 130 | 127 | 279 | 1 300 | 0 |
Вывод
Исходя из проделанной работы можно сделать вывод о том, что данный фреймворк имеет достаточное небольшое сообщество и многие разработчики, работающие на Python, даже не слышали о нем, поэтому в случае чего, вам будет трудно найти человека, к которому можно будет обратиться за советом. Помимо этого, будет достаточно трудно найти обширную документацию и учебники по Zope, поэтому придется много копаться. Но все же, если вам нужна обширная высоко структурированная среда для создания больших приложений, то фреймворк Zope вам более чем подходит.