Вопрос

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

  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 (Ленни) - Для преобразования циклов процессора во что-то полезное.Трасса
  • 0.11 - Для управления проектами Gliffy - Для каркасов и тому подобного
  • Google Docs / Приложения - Для документации, размещенной электронной почты и т.д...
  • Amazon ec2 /S3 - Для хостинга, хранения данных.

Приветствия, Адам

Это было полезно?

Решение

это зависит от обстоятельств.

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

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

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

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

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

Джанго!

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

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

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

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

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

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

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

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

Уловил идею?

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

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

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

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

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

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

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

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

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

Кроме того, есть замечательные жемчужины, такие как God для мониторинга вашей системы, Vlad the Deployer для развертывания и т.д.И множество альтернатив в области Merb, просто используйте то, что, по вашему мнению, лучше подходит для ваших нужд (Thin, Mongrel, ebb и т.д.).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наконец - то, Пинакс это отличное начало для Джанго развитие.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top