Framework / Language для новых сайтов Web 2.0 (2008 и 2009)

Я знаю, что получу тысячу ответов «Зависит от того, что вы пытаетесь сделать», но если серьезно, то в сети пока нет достоверной информации об этом. Вот мои предположения - я думаю, что сейчас они похожи для многих людей:

  1. Сейчас октябрь 2008 года. Я хочу начать писать приложение на январь 2009 года. Я хочу использовать бета-код и тому подобное, но к январю мне нужен сайт, на котором не будет «странных» проблем. С учетом сказанного, если один язык просто на 10% медленнее другого, меня это не волнует, пока проблема линейна. Моя главная забота - продуктивность разработчиков.
  2. Я буду использовать Linux, Apache, MySQL для приложения.
  3. Я хочу иметь возможность выполнять такие вещи, как запуск клиентских функций scp и ftp со стабильными библиотеками (я выбрал только эти две, потому что они не связаны с Интернетом, но в то же время представляют собой довольно распространенные сетевые протоколы, которые может использовать любое более крупное приложение). Также будут использоваться такие технологии, как OpenID и Oauth.
  4. Легко доступны опытные веб-разработчики (т.е. мне не нужно искать людей из финансовых компаний и т. д.).
  5. Какой бы ни был выбор, он будет обычным и будет какое-то время.
  6. Вот кикер. Я хотел бы иметь возможность использовать расширенные инструменты / языки уровня представления, подобные HAML, SASS. Я определенно хочу использовать JQuery.
  7. Я буду создавать приложение для Facebook и в какой-то момент буду заниматься такими вещами, как работа с SMS-сообщениями, приложениями для iPhone и т. д.

На данный момент возможен выбор языка: PHP (Cake, Symfony, Zend), Python (Django), Ruby (Merb). На данный момент я действительно между Django и Merb, в основном потому, что все остальные, похоже, так и поступают.

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

Для будущих ссылок - эти варианты уже были сделаны:

  • Debian (Ленни) - для преобразования циклов процессора во что-то полезное. Trac
  • 0.11 - Для управления проектами Gliffy - Для каркасов и т.п.
  • Документы / приложения Google - для документации, размещенной электронной почты и т. д.
  • Amazon ec2 / S3 - для хостинга, хранения.

Ваше здоровье, Адам

все ваши «ранее сделанные выборы» отформатированы неправильно, не могли бы вы отредактировать его? Благодарность

davr 08.10.2008 23:01
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
1
931
13
Перейти к ответу Данный вопрос помечен как решенный

Ответы 13

Я бы выбрал Django, если вам нравится решение Python. Сейчас он находится в версии 1.0 и хорошо развивается, с большой пользовательской базой и множеством участников. Интеграция jQuery не проблема, и я сделал это без проблем.

Единственное, насколько я могу судить, Ruby сейчас гораздо более популярен для веб-разработки, поэтому найти разработчиков Ruby проще. Такое впечатление складывается из недавних объявлений о вакансиях - для Python или Django их не так уж и много. Я мало что знаю о Мербе, поэтому не могу дать справедливого сравнения.

Я сделал достаточно PHP, чтобы не рекомендовать начинать с ним новый проект.

По вашим причинам я бы выбрал Руби. Я вижу, что вам нужны инструменты администрирования (scp, ftp-клиент), и они есть в Ruby (библиотеки net / sftp и net / ftp).

Кроме того, есть отличные жемчужины, такие как Бог для мониторинга вашей системы, Влад Развертыватель для развертывания и т. д. И множество альтернатив в области Мерба, просто используйте то, что вы сочтете более подходящим для ваших нужд (Thin, Mongrel, ebb и т. д.).

Извините, но ваш вопрос неверный. Люди, вероятно, проголосуют за меня, но я все равно хочу сказать это:

Я бы не ожидал получить объективный ответ! Почему? Это просто:

  • Все сторонники Ruby скажут использовать Ruby.
  • Все сторонники Python скажут использовать Python.
  • Все сторонники PHP советуют использовать PHP.
  • Вставьте сюда дополнительные языки.

Есть идея?

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

Тем не менее, я бы выбрал Ruby (потому что я сторонник Ruby).

Это ответ, которого я ожидал

Adam Nelson 09.10.2008 00:05

Джанго!

Посмотрите выступления DjangoCon в Google / Youtube - особенно «Многоразовые приложения» (www.youtube.com/watch?v=A-S0tqpPga4)

Я использую Django некоторое время, после того, как начал работать с Ruby / Rails. Я обнаружил, что в Сообщество Django легче попасть (лучше), язык, задокументированный с примерами превосходно, и его модульность потрясающая, особенно если вы хотите добавить в микс пользовательские компоненты, а не принуждать использовать здесь определенные вещи и там.

Я уверен, что, вероятно, есть способы быть столь же гибкими с Rails или чем-то подобным, но я настоятельно рекомендую вам внимательно взглянуть на введение в Django и т.д. на http://www.djangoproject.com/

Юджин упомянул, что сейчас он составляет 1.0 - и, следовательно, будет оставаться стабильной и обратно совместимой кодовой базой до января 2009 года.

Кроме того, он создает автоматические интерфейсы администратора готово к производству, и они чрезвычайно гибкие.

Это был отличный разговор. Он познакомил меня с двумя технологиями: djangoplugables.com - набор приложений для Django pinaxproject.com - готовая структура приложений для сайтов Web 2.0 с использованием Django. Думаю, с этого можно начать.

Adam Nelson 09.10.2008 01:16

Я очень рад, что смог помочь, независимо от того, в каком направлении вы в конечном итоге пойдете. Также был разговор о самом Pinax, если вы его еще не видели. Иногда он может быть немного растянутым, но он подробно описывает некоторые из конкретных вещей.

anonymous coward 09.10.2008 17:52
Ответ принят как подходящий

По-разному.

php - symfony - отличный фреймворк. Минусы: php, многословный и тяжелый каталог. propel становится раздражающим в использовании. Плюсы: PHP везде, а рабочая сила дешевая. хорошо сделанный фреймворк и хорошая поддержка. множество плагинов, которые сделают вашу жизнь проще

python - django также является отличным фреймворком. Минусы: найти программистов на python сложнее, а на django - еще сложнее. изменение схемы БД может быть несколько трудным, поскольку официальных миграций нет. не совсем выполняет mvc, как вы ожидаете. Плюсы: делает все, что вам нужно, и за этим стоит отличная библиотека python std и сообщество.

рубин - мерб никогда не использовал, поэтому обращусь к рельсам. Плюсы: есть плагин, драгоценный камень или рецепт практически для всего, что вы хотите сделать. легко использовать. Минусы: эти плагины, драгоценные камни и рецепты иногда загадочным образом не работают. исправление обезьян часто бывает злом. сообщество .. вокальное. самоуверенное программное обеспечение, а иногда эти мнения ошибочны (отсутствие внешних ключей). рельсы сами по себе кажутся карточной башней, которая ждет, чтобы взорваться и унести часы вашей жизни.

С учетом всего сказанного, я внештатный разработчик php / symfony и ruby ​​/ rails. Я работал над несколькими проектами как на языках, так и на фреймворках. Мой последний проект находится в Rails исключительно из-за ActiveMerchant. Я давно искал причину для разработки приложения django. Если бы существовала библиотека для django наподобие ActiveMerchant, я бы, наверное, ее использовал.

Чтобы понять, где сейчас находится экосистема Django, вы можете проверить

Мой опыт работы с различными новыми технологиями за последние десять лет заставляет меня рекомендовать вам сделать стабильность платформы серьезным критерием. Это все хорошо и хорошо, если вы используете новейшую и лучшую платформу, но когда вы обнаружите, что она продвинулась на точечную версию, и внезапно способ, которым вы все сделали, устарел, что может привести к дополнительной ненужной работе. В частности, это был мой опыт работы с рельсами, немного опередивший версию 1. Только по этой причине я бы избегал любой платформы, которая не была по крайней мере 1.0, когда вы начинаете работать над ней.

Ruby отлично подходит для работы и будет поддерживать продуктивность вашего разработчика на высоком уровне, но если Django является более стабильной платформой, я бы однозначно отдал предпочтение этому.

Все они выполнят свою работу.

Используйте тот, который вам и вашей команде лучше всего знаком

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

Я должен предварить это своим согласием с Орионом Эдвардсом, выбрать тот, с которым ваша команда наиболее знакома.

Однако я также должен отметить любопытное отсутствие языков ASP.NET в вашем списке. Не для того, чтобы спровоцировать великую армию фанатиков, но где говядина? .NET - это стабильная платформа для быстрой разработки, и штат сотрудников растет с каждым днем. VB.NET и C# - это переносимые наборы навыков, и это может иметь большое значение, когда вы создаете команду разработчиков для работы над разнообразным набором задач. .NET также позволяет отделить уровень представления от вашего внутреннего кода, как и другие языки, но также позволяет вам предоставлять этот внутренний код как веб-службу для таких вещей, как ваши приложения iPhone и Facebook.

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

Отказ от ответственности: когда-то был разработчиком PHP, ColdFusion и Perl. Фанат Flex и любитель Adobe. Сейчас пишу корпоративные .NET-приложения. ;)

Не забывайте Mono, который позволит вам запускать .NET под * nix. Не то чтобы я говорил, что это будет идеально, просто играю в адвоката дьявола.

Сам Stack Overflow написан на базе технологий Microsoft, так что должно быть неплохо. Тем не менее, я поставил .NET в ту же лодку, что и Java - отлично, если у вас есть миллион долларов на формальный процесс разработки или вы ранее работали в более крупной команде разработчиков и уже знакомы с этой технологией (разработчики 6 FT стоят 1 млн долларов в год).

Adam Nelson 11.03.2009 17:12

Не зацикливайтесь на мировоззрении макета страницы на стороне сервера. Рассмотрим такие технологии, как SproutCore, GWT или ExtJS, которые полностью перекладывают код макета на клиента, делая сервер ответственным только за маршалинг и обработку данных (и легко заменяемый).

И вам действительно нужно знать, какую серверную платформу вы хотите. Не выбирайте один, потому что это аромат месяца, выберите один, потому что он вам удобен. Вкус не вечен, прочная кодовая база будет.

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

Apache - чудовище как в настройке, так и в использовании ресурсов вашего сервера. Почему бы не выбрать что-нибудь легкое, например nginx или lighttpd?

(Для справки, я большой пользователь Django, но, как сказано в принятом ответе, используйте все, что известно вашей команде. Быстрые повороты - не время изучать новые фреймворки. Если вы нанимаете команду с нуля , иди с Django.)

Создав приложения на Django, я могу подтвердить его полезность. Если бы все фреймворки были такими же элегантными (да, Spring, я смотрю на тебя).

Однако, если вы хотите поставить ферму на Django, вам нужно учесть одну вещь: Python 3 будет выпущен в ближайшее время. Python 3 не имеет обратной совместимости, и есть риск, что он разветвит язык и в конечном итоге замедлит развитие всех проектов Python, пока они справляются с последствиями. Честно говоря, скоро выйдет и Ruby 2.0, но я не думаю, что он будет столь же разрушительным.

Обновление: в итоге я использовал Django и полюбил его. Я полностью покончил с PHP - извините за это. Будущие читатели, пытающиеся создать новый сайт Web 2.0 (при условии, что у них есть опыт программирования), должны внимательно рассмотреть эту настройку:

Amazon ec2 для хостинга (80 долларов в месяц - недешево, но оно того стоит, если вы можете себе это позволить) Django / Python (Python - самый мощный язык сценариев на планете, а Django просто заставляет его работать в Интернете)

Разработка должна выполняться с использованием SQLlite и сервера разработки, поставляемого с Django. Не тратьте время на Nginx, Apache, MySQL, пока не закончите несколько недель бета-тестирования.

О, и теперь я работаю на Mac, который отлично подходит для локальной разработки Django.

Наконец, Pinax - отличное начало для разработки Джанго.

Рад слышать, что вы выбрали Django. Замечание о СУБД; Я думал о том же, пока он меня не укусил. Для разных СУБД существует разное поведение. Я бы начал с первого дня MySQL.

muhuk 06.03.2009 00:38

Другие вопросы по теме