Ответ 1
Я думаю, что Python и Tornado - отличная команда по следующим причинам.
- Tornado - действительно IOLoop, который приходит с реализацией HTTP, которая работает на нем (и несколькими помощниками).
Это означает, что он поставляется со всем, что вам нужно для создания веб-разработки.
Это также означает, что если вы найдете в пути, что вам нужны другие услуги на заднем плане, чтобы помочь масштабировать ваше приложение, торнадо, скорее всего, будет хорошим использованием в этой области. На самом деле я написал больше задних служб, чем front-end в Tornado (но у коллеги есть совершенно противоположный опыт - он больше ориентирован на интерфейс и считает, что это приятно работать). Немного не по теме, но мы также использовали свой шаблонный модуль за пределами торнадо с большим успехом. Код очень модульный, и почти нет взаимозависимости, поэтому повторное использование его компонентов - легкий ветерок.
- Вы можете узнать это и хорошо знать, очень, очень быстро.
Вам понадобится целый день, чтобы разобраться. Этот код чист и невероятно прокомментирован, и у него есть приличная документация. Я смог произвести производственный сервис с Tornado 0.2 (около 2009 года) примерно за неделю, никогда не видел его раньше. Исходный код торнадо очень антимагический.
- Он быстрый и стабильный. Под нагрузкой.
Я не знаю, является ли это абсолютной самой яркой быстрой вещью, но в проектах, в которых я ее использовал, она берет на себя очень тяжелую нагрузку как по количеству одновременно работающих пользователей, так и по срокам передачи данных (например, загрузка больших объемов изображений), и она была полностью устойчивой с точки зрения стабильности и b) достаточно быстрой, чтобы мне не приходилось рассматривать ее масштабирование горизонтально или увеличивать аппаратное обеспечение.
- Python чрезвычайно гибкий и адаптируемый.
Я регулярно пользуюсь Python для веб-разработки с использованием Tornado (и других вещей, включая Django). Тем не менее, я также использую его для вещей, совершенно не связанных с самими веб-службами, такими как задачи sysadmin/автоматизации, отчетность и обработка данных (например, я пишу задания hadoop в Python) и другие вещи, где стандартные библиотечные модули (os, sys, shutil, itertools, коллекции и т.д.) делают вещи ослепительно быстрыми, чтобы строить. Я могу использовать Python практически для чего угодно, практически в любой среде, независимо от того, выходит ли поток через поток, в браузер, в жирный графический интерфейс или консоль.
У этого также есть фантастическое сообщество вокруг этого действительно умных людей, которые также очень дружелюбны. Я не могу сравнить его с сообществом scala, но, по сравнению с множеством других сообществ, Python легко мой любимый и имеет много общего с тем, почему я стал настолько привязан к тазобедренному суставу с ним. Я полиглот, но если у меня возник вопрос, мне больше всего хотелось бы задать этот вопрос члену сообщества Python:)