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