Originally published at
Pythy. You can comment here or
there.
Хотя я слежу за новостями по Python-тематике, как-то проглядел
хорошую статью по Twisted Python на OnLamp. Но, благодаря
OpenNet не прошел мимо. Восполняю пробел и рассказываю про статью.
Статья мне понравилась. Идея очень хороша: берутся простые задачи (например, отправка почты по smtp, получение почты по pop3, управление telnet-сессией) и решаются при помощи стандартных модулей (smtplib, poplib, telnetlib), а затем эти же задачи - но на Twisted. При этом объясняются коренные различия между двумя подходами. Не удержусь и процитирую:
Две функционально эквивалентные программы, одна использует стандартные модули Python, а другая - Twisted, принципиально отличаются друг от друга по стилю программирования и количеству кода. Так когда использовать каждый из подходов?
Для простых программ, таких как CLI-клиенты нашего примера, стандартные модули Python предпочтительны в силу простоты и производительности. Тем не менее, большинство реальных сетевых программ очень сложны, и асинхронная модель Twisted более эффективна.
Рекомендую статью всем начинающим разбираться с Twisted.