Питон + Торнадо против Скала + Лифт? - PullRequest
13 голосов
/ 29 августа 2011

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

Там не будет «классических» страниц, только интерфейс в стиле meebo.com. JavaScript + JQuery. (имеется в виду, очень мало, если вообще нет статических страниц).

Мой взгляд поймал кометную, серверную парадигму толчка, и я действительно заинтересован в том, чтобы сделать некоторые доказательства концепций с этим.

Есть ли у вас какие-либо рекомендации или преимущества и недостатки или опыт работы с:

Питон + Торнадо против Скала + Лифт ?

Какие другие преимущества или недостатки в других областях веб-приложения может принести выбор?

Примечание: это для максимум 2 разработчиков, а не для большой распределенной и меняющейся команды.

Спасибо

Ответы [ 3 ]

14 голосов
/ 02 сентября 2011

Я думаю, что 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 :)

6 голосов
/ 29 августа 2011

Scala является значительно более чистым языком и позволяет вам использовать объектно-ориентированные и функциональные парадигмы по своему усмотрению.

Python имеет гораздо больше синтаксического сахара и придерживается философии "есть только один способ сделать это".

Scala обычно используется с IDE, такими как Eclipse / Idea - хотя также существует поддержка vim / emacs - и построена с использованием SBT. Если вы не привыкли к этим инструментам, вам может потребоваться некоторое время для их настройки.

Python часто используется с гораздо более легкими редакторами. Повторно запустить обновленный скрипт Python проще по умолчанию.

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

3 голосов
/ 29 августа 2011

Я бы предложил использовать Python по следующим причинам:

1.Отладка

Что я нахожу особенно полезным при написании кода Python, так это возможность простой отладки (см. Модуль pdb), все, что вам нужно, это командная строка и текстовый редактор для установки точек останова.В Scala вам, вероятно, придется полагаться на IDE для выполнения всей отладки.

2.Легко учиться

Что касается языка программирования, я не знаю, каков ваш опыт работы с любым языком.Если вы новичок в Python и Scala, лично я считаю, что вы выучите Python быстрее.

...