Подтвердить что ты не робот

Python + Tornado vs Scala + Подъем?

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

Не будет "классических" страниц, просто интерфейс стиля meebo.com. javascript + jquery. (что очень мало, если на всех статических страницах нет).

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

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

Python + Tornado vs Scala + Подъем?

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

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

Спасибо

4b9b3361

Ответ 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:)

Ответ 2

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

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

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

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

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

Ответ 3

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

1. Отладка

То, что я нахожу особенно полезным при написании кода Python, - это возможность легко отлаживать (см. модуль pdb), все, что вам нужно - это командная строка и текстовый редактор для установки ваших контрольных точек. С помощью Scala вам, вероятно, придется полагаться на среду IDE, чтобы выполнить всю вашу отладку.

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

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