Почему есть необходимость в Twisted? - PullRequest
10 голосов
/ 27 октября 2010

Я играю с витой платформой уже около недели (больше из-за любопытства, а не необходимости ее использовать), и было очень весело выполнять асинхронное сетевое программирование, управляемое событиями.

Однако есть кое-что, чего я не понимаю. Скрученная документация начинается с

Twisted - это фреймворк, разработанный для обеспечения высокой гибкости и позволяющий создавать мощные серверы.

Я сомневаюсь: - Зачем нам нужна такая управляемая событиями библиотека для написания мощных серверов, когда уже существуют очень эффективные реализации различных серверов?

Конечно, должно быть, было больше, чем пара конкретных реализаций, которые разработчики искали при написании этой библиотеки ввода-вывода, управляемой событиями. Что это? Почему именно был сделан витой?

Ответы [ 4 ]

13 голосов
/ 27 октября 2010

В комментарии к другому ответу вы говорите: «Каждая библиотека должна иметь ...».«Предполагается» кем?Использование прецедентов, безусловно, хороший способ закрепить ваши требования, но это не единственный способ.Также не имеет смысла говорить о сценариях использования для всех Twisted одновременно.Не существует варианта использования, который оправдывал бы каждый API в Twisted.Существуют сотни или тысячи различных вариантов использования, каждый из которых оправдывает меньшее или большее подразделение Twisted.Они приходили и уходили за годы развития Twisted, и не было предпринято никаких попыток сохранить их список.Я могу сказать, что я работал над частью Twisted Names, чтобы у меня была тема для статьи, которую я представлял в то время.Я реализовал парсер vt102 в Twisted Conch, потому что я одержим терминалами и хотел получить интересный проект с их участием.И я реализовал поддержку IMAP4 в Twisted Mail, потому что работал в компании, разрабатывающей почтовый сервер, который требовал более жесткого контроля над почтовым хранилищем, чем любой другой сервер IMAP4 в предложенное время.различные части Twisted были написаны по разным причинам (и я привел только примеры моих собственных причин, а не причин других разработчиков).

Первоначальная причина написания программы часто не имеет большого значения в долгосрочной перспективе.Теперь код написан: Twisted Names теперь запускает DNS для многих доменных имен в Интернете, парсер vt102 помог мне получить работу, а компания, которая вела разработку IMAP4, прекратила свою деятельность.Что действительно важно, так это то, какие полезные вещи вы можете сделать с кодом сейчас .Как указывает МэттХ, в результате множество функций привело к созданию библиотеки, которая (возможно, уникально) решает широкий круг интересных проблем.

7 голосов
/ 27 октября 2010

Зачем нам нужна такая управляемая событиями библиотека для написания мощных серверов, когда уже существуют очень эффективные реализации различных серверов?

Итак, перефразируя: вы не можете себе представитьзачем кому-то нужен инструментарий, когда продукты для красок уже существуют?

Полагаю, вам никогда не нужно было взламывать шлюз протокола, например,
- записывать демон в локальные файлы md5 по требованию черезсокет unix
- опросить часть программного обеспечения с использованием udp и предоставить статистику через http.

Я написал небольшое подтверждение концепции для второго примера вопроса здесь, посвященного SO, в горстке минут .Я не смог бы сделать это без крученого.

Вы смотрели на: ProjectsUsingTwisted ?

5 голосов
/ 27 октября 2010

Подробнее о «почему»: ( отказ от ответственности: я не являюсь разработчиком собственно Twisted ), необходимо учитывать высокий возраст Twisted (по сравнению с Python). Когда был написан Twisted, не было достаточно мощной неблокирующей сети / управляемой событиями библиотеки, написанной вокруг схемы реактора (тогда почти все использовали потоки). Первоначальный вариант использования Twisted был большой многопользовательской игрой, хотя специфика этой игры, похоже, со временем утрачена.

Поскольку источники, как указывает ссылка @ MattH, очень много различных сетевых серверов, написанных на Python, основаны на Twisted.

4 голосов
/ 09 октября 2011

Этот разговор PyCon от создателя Twisted должен дать вам ответы.

Это изменило мое мнение о Twisted.Раньше я рассматривал его как массивный программный продукт с интерфейсами и странными именами, двумя вещами, которые не нравятся многим разработчикам, но на самом деле это просто поверхностные вещи, и теперь, когда я увидел историю позади и удивительное количество вариантов использования, я уважаю егомного.Жизнь коротка, тебе нужно Twisted:)

...