Сравнение Rails и PHP с нетехнической аудиторией - PullRequest
4 голосов
/ 09 мая 2009

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

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

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

Если бы мне предложили эту работу, как бы я мог сравнить плюсы и минусы Rails против PHP (с соответствующей структурой), не вдаваясь в техническую терминологию? Ключевым моментом здесь является то, что в этой области, вероятно, гораздо больше разработчиков LAMP, чем разработчиков Rails, и я не хочу, чтобы мои личные предпочтения влияли на долгосрочную устойчивость базы кода.

Или я должен просто признать, что сайт PHP / Zend так же хорош, как сайт Rails, даже если его разработка менее интересна?

(Пожалуйста, без религиозных аргументов!)

Ответы [ 5 ]

20 голосов
/ 09 мая 2009

Первое, что я должен сказать, это то, что (imho) ваш подход неверен, потому что вы начали с вывода («Я хочу сделать это в Rails») и теперь вы ищете оправдание.

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

Эта же проблема возникла в Продолжить классический сайт ASP или настаивать на смене языка?

Важно отметить, что в Rails (обычно это Ruby on Rails, хотя это может быть Groovy и т. Д.), Вы сравниваете фреймворк с языком (PHP). Существует множество PHP-фреймворков, поэтому многие проблемы скорости кодирования уменьшаются, если не исчезают совсем, если сравнивать Ruby on Rails с PHP + некоторые фреймворки или фреймворки, с которыми вы одинаково знакомы.

Исходя из опыта, я могу вам сказать, что пользователи, не являющиеся техническими специалистами, будут обеспокоены некоторыми или всеми из следующих действий:

  1. Стоимость разработки;
  2. Стоимость хоста;
  3. Смотри и чувствуй;
  4. Функциональность сайта;
  5. Возможность поиска разработчиков;
  6. Устойчивость;
  7. Существующий функционал; и
  8. Риск.

(1) является дискуссионным. Ruby on Rails, вероятно, работает очень быстро, если вы все делаете по-Ruby, но может стать очень сложным, если требования вынудят вас отказаться от брони. Интересно, что стеки Microsoft, как правило, работают одинаково (хотя обычно они имеют больший резерв для дальнейшего расширения этой метафоры).

Это произошло по 7 причинам, по которым я перешел на PHP после 2 лет работы на Rails . Согласитесь или не согласитесь, такого рода сообщения приносят очки, которые вам, по крайней мере, необходимо рассмотреть и / или рассмотреть.

(2) Я думаю, это победа для PHP. Общий хостинг на PHP необычайно дешев, но в нем немногое. Если на сайт будет приходить умеренный объем трафика или возникнут серьезные проблемы с безопасностью, вы в конечном итоге либо разместите его на сайте, либо воспользуетесь какой-либо формой VPS или выделенным хостингом, после чего проблема станет промывкой.

(3) на самом деле не так уж отличается. Ruby - это двухсторонний Prototype (будучи интегрированным) и тому подобное, в то время как PHP более открыт для любой среды Javascript (которая имеет свои преимущества и недостатки), и оба могут делать что угодно в HTML и CSS.

То же относится и к (4). Вы ничего не можете сделать в одном, чего не можете сделать в другом.

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

(6) - это воспринимаемая или реальная победа для PHP. Под этим я подразумеваю, что Ruby on Rails - по крайней мере, по моему опыту - имеет репутацию нестабильной и / или растраты ресурсов. Это подтверждается такими сообщениями, как пресловутая Rails Is A Ghetto rant Zed Shaw. Ясно, что это напыщенная речь, но и здесь есть несколько важных моментов.

(7) интересный. Rails обязывает (или, скорее, «является») каркас ORM, и, как и многие каркасы ORM, они могут иметь реальные проблемы при работе с «унаследованными» данными. Я поставил это в кавычки, потому что у ORM есть неприятная привычка объявлять что-либо, что не сделано как «наследие» (например, составные ключи).

Если у вас есть полный контроль над моделью данных на этом сайте, и не существует существующей модели данных для поддержки, то эта проблема, вероятно, выиграет для Rails, но чем больше у вас ограничений, тем больше будет выигрыш для облегченного PHP (обычно необработанный SQL).

Возможно, вы захотите взглянуть на Использование ORM или простого SQL?

(8) действительно суммирует все вышеперечисленное. Компания будет очень обеспокоена тем, насколько предсказуемым будет конечный результат, и более предсказуемый, менее сексуальный конечный результат часто выигрывает.

Последнее, что я скажу, это то, что если у вас есть опыт работы как с Rails, так и с PHP (как вам кажется), и вам нужно спросить, в чем (нетехнические) достоинства Rails, возможно, вам нужно пересмотреть то, что что ты делаешь и почему ты это делаешь.

12 голосов
/ 09 мая 2009

Я бы не стал утверждать, что Rails лучше, чем PHP или что-то в этом роде, потому что этим людям они на самом деле все равно. Они заботятся о том, чтобы:

  1. чтобы они получили хороший сайт (следовательно, используйте Rails, потому что вы лучше с ним), и
  2. что поддерживать его не составит труда (следовательно, используйте PHP, потому что программистов легче найти)

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

3 голосов
/ 09 мая 2009

Если предположить, что для не слишком отдаленного будущего достаточно одной команды, и вы не планируете покидать компанию в это время, тогда аргумент прост:

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

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

даже если развлекаться не так весело?

Я был бы откровенен: вам нравится работа с Rails. Счастливый работник более продуктивен.

1 голос
/ 09 мая 2009

Я не думаю, что брендинг важен. Если сайт лучше всего работает на PHP, то ни один аргумент в пользу rails не будет выглядеть хорошо. Если сайт лучше всего делать в рельсах (или django), это должно быть очевидно.

Если бы вы были командой из одного человека, я бы просто создал ее в рельсах, потому что вы разработчик, и это то, что вы знаете. Даже неопытный специалист должен понимать, что нанимать разработчика рельсов для создания сайта на чистом PHP просто глупо.

0 голосов
/ 09 мая 2009

Чтобы привести в пример рельсы, я бы просто показал им страницы конфигурации Zend.

...