Quixote: Python-фреймворк, который не умирает
Quixote — один из старейших Python web-фреймворков, которому уже 25 лет. В июле 2026 года в репозиторий попал свежий коммит. Что это говорит о живучести open source?
Quixote: Python-фреймворк, который не умирает
Саймон Уиллисон (Simon Willison) — один из создателей Django и известный технический блогер — на прошлой неделе опубликовал короткую, но примечательную заметку. Он обратил внимание на кое-что неожиданное: некоторые «старожилы» Python-веб-разработки будут рады узнать, что последний коммит в репозиторий фреймворка Quixote был сделан всего шесть часов назад.
Казалось бы, ничего особенного. Но есть важный контекст: самый старый коммит в этом репозитории датируется 21 годом назад — это был первоначальный импорт Quixote 2.4 из Subversion в Git.
Другими словами, проект, рождённый в начале 2000-х годов, до сих пор живёт и обновляется. Это само по себе — история.
Что такое Quixote?
Quixote — это лёгкий и гибкий веб-фреймворк (web application framework) для Python, ориентированный на разработчиков, которые хотят строить и поддерживать сложные веб-приложения преимущественно средствами самого Python, без специализированных языков шаблонов или конфигурации. Он позволяет организовывать сайты как стандартные Python-пакеты и модули, где URL напрямую отображаются на вызываемые функции или методы.
Quixote сопоставляет URL с функцией или методом внутри Python-пакета; функция вызывается с содержимым HTTP-запроса, и результаты возвращаются клиенту.
Проще говоря: если вы воспринимаете сайт как программу, а страницы — как подпрограммы, Quixote создан именно для вас.
История: от MEMS Exchange до GitHub
Quixote был разработан около 2000 года командой, в которую входили Andrew Kuchling, Neil Schemenauer и Greg Ward из организации MEMS Exchange — сети для производства полупроводников. Фреймворк возник из потребности в более простой альтернативе таким решениям, как Zope, с акцентом на продуктивность программиста и отсутствие «магического» поведения.
Для разработки их основного сайта нужно было сосредоточиться на сложной бизнес-логике, а не на шаблонах. Разработчики хотели использовать Python как можно шире, считая его наиболее подходящим языком для сложной и быстро меняющейся предметной области.
Ключевым этапом стал переход проекта на репозиторий GitHub, которым управляет Neil Schemenauer (под ником nascheme), что открыло возможность для непрерывного сотрудничества в открытом исходном коде после завершения работы в MEMS Exchange.
Философия Quixote с самого начала была радикальной: никакой магии. Если фреймворк не понимает, что делать — он отказывается угадывать и выбрасывает исключение.
Хронология проекта
timeline
title История фреймворка Quixote
section Ранние годы
2000 : Разработка в MEMS Exchange (Kuchling, Schemenauer, Ward)
2005 : Quixote 2.4 — первый коммит в Git (экспорт из SVN)
section Развитие
2008 : Quixote 2.5–2.6, переход на MIT/X лицензию
2020 : Стабильный релиз 3.2
section Современность
2025 : Версия 3.7 (требует Python 3.8+)
2026 : Версия 3.8 — свежий коммит в июле
Почему проект жив в 2026 году?
Обслуживание Quixote демонстрирует низкую, но стабильную активность на GitHub на протяжении всех 2020-х годов: коммиты касаются совместимости с Python 3.10 и более поздними версиями, а также обновлений инструментов разработки — таких как ruff для линтинга и black для форматирования кода.
Хотя Quixote активно поддерживается, релизы выходят редко. Существующие пользователи, судя по всему, довольны возможностями фреймворка: он просто не мешает и позволяет писать код приложений.
Акцент в последних разработках сделан на исправлении ошибок, улучшении соответствия стандартам и повышении гибкости Quixote — без серьёзных несовместимых изменений.
Quixote vs. современные Python-фреймворки
| Фреймворк | Год создания | Философия | Популярность (звёзды на GitHub) | Статус |
|---|---|---|---|---|
| Quixote | ~2000 | Python-ориентированный, без магии | ~93 ⭐ | Активно поддерживается |
| Django | 2003 | «Всё включено» (batteries included) | >80 000 ⭐ | Активно поддерживается |
| Flask | 2010 | Микрофреймворк, максимальная гибкость | >68 000 ⭐ | Активно поддерживается |
| FastAPI | 2018 | Асинхронный, для API | >75 000 ⭐ | Активно поддерживается |
Сообщество вокруг Quixote остаётся скромным — по данным на конец 2025 года, репозиторий имел 93 звезды и 13 форков на GitHub. Тем не менее проект сохраняет активность для нишевых приложений, ценящих его лёгкую структуру и шаблонизатор PTL.
Контекст: эпоха Python-веба
Чтобы оценить масштаб этой истории, нужно вспомнить, каким был мир Python-веб-разработки в начале 2000-х.
Django был создан осенью 2003 года, когда веб-программисты газеты Lawrence Journal-World — Адриан Головаты и Саймон Уиллисон — начали использовать Python для создания приложений. Он был опубликован под лицензией BSD в июле 2005 года.
То есть Quixote появился раньше Django — и пережил его пришествие, эпоху Flask, революцию async и взлёт FastAPI.
Установить и попробовать Quixote можно в несколько шагов:
# Установка через pip
pip install quixote
# Запуск встроенного мини-демо
python -m quixote.demo.mini_demo
В браузере откройте http://localhost:8080 — и вы увидите работающее Quixote-приложение.
Пример простейшего приложения на Quixote:
from quixote.publish import Publisher
from quixote.directory import Directory
class RootDirectory(Directory):
_q_exports = ['']
def _q_index(self):
return '<html><body><h1>Привет от Quixote!</h1></body></html>'
def create_publisher():
return Publisher(RootDirectory(),
display_exceptions='plain')
Видите? Никаких декораторов, никакой магии — только чистый Python. Именно это и было задумано 25 лет назад.
Что это значит для разработчика?
Если смотреть вперёд, будущее Quixote строится на последнем релизе с потенциалом для дальнейших улучшений в области WSGI- и ASGI-интерфейсов, а также интереса в контексте микросервисов — благодаря стабильной экосистеме и продолжающимся вкладам сообщества.
Конечно, никто не посоветует начинать новый проект с Quixote, если вам нужна поддержка сообщества, готовые плагины и экосистема. Для этого есть Django, FastAPI и Flask. Но история Quixote поднимает важный вопрос: насколько «мёртвые» фреймворки на самом деле мертвы?
Если вы рассматриваете Quixote или другой «исторический» фреймворк для нового проекта, убедитесь что:
- Размер и активность сообщества достаточны для ваших нужд
- Совместимость с актуальными версиями Python поддерживается
- Документация актуальна
- Есть понимание, кто будет поддерживать зависимости в будущем
Итог
Заметка Саймона Уиллисона коротка, но точна: один свежий коммит в старом репозитории — это маленькое, но реальное событие. Для «нерда со стажем», который писал веб-приложения на Python ещё до того, как Django появился на сцене, это — приятный сигнал. Что-то из прошлого живёт.
Quixote — не просто строчка в истории технологий. Это пример того, что в open source не существует понятия «устарело», пока есть хотя бы один человек, которому это нужно, и который готов поддерживать код.
Лучший код — тот, который работает. И иногда он работает 25 лет подряд.