Источник изображения: pixabay.com

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

В этом блоге я в основном буду обсуждать важность их обоих и того, как они отличаются друг от друга. Так что, если вы новичок в Rails и PHP, то это может быть идеальный блог для вас, если вы хотите выбрать один из двух. Итак, начнем. А не ___ ли нам?

Некоторые основные сведения

Начнем с того, что PHP - это язык сценариев, тогда как RAILS - это среда веб-разработки, основанная на языке сценариев Ruby. PHP - широко используемый язык программирования для таких веб-сайтов, как Facebook, WordPress, Yahoo, Flickr и даже больше. PHP чрезвычайно быстр, в n раз более стабилен, чем Rails, и даже имеет большее сообщество разработчиков для его поддержки.

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

Хороший, плохой, злой

  1. PHP

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

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

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

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

Мне жаль обижать некоторых людей здесь, но Ruby просто не так прост, чтобы учиться на PHP. Это очень мощный язык. Я решил использовать Ruby просто потому, что, как разработчик, я чувствую, что это гораздо лучший язык, чем PHP. Но с точки зрения обучения это не так. В Ruby есть много функций, которые непросто понять начинающему программисту. Одной из таких концепций являются блоки, процедуры и лямбды, которые Rails активно использует.

Классический пример Ruby on Rails, который я буду использовать, предназначен для создания формы:

  1. РЕЛЬСЫ

Ruby - это динамическое, императивное объектно-ориентированное программирование. Он динамически типизирован, как в PHP, поэтому вам не нужно беспокоиться о необходимости объявлять переменные. Rails имеет открытый исходный код, работает на нескольких платформах и может быть встроен в язык разметки гипертекста. Это язык очень высокого уровня. Он даже предлагает инкапсуляцию методов данных в объектах.

В Ruby есть супер продвинутые методы работы со строками и текстами, которые можно легко подключить к DB2, MySQL, Oracle и Sybase. Большие программы, написанные на Ruby, легко обслуживаемы. Он имеет простой и понятный синтаксис, который позволяет новым разработчикам изучать Ruby очень быстро и легко. Он не только имеет возможность писать многопоточные приложения с простым API, но также предлагает расширенный класс массивов и возможность писать внешние библиотеки на Ruby или C.

Ruby Позволяет использовать «зарезервированное слово» в качестве идентификатора, если синтаксический анализатор не воспринимает неоднозначность. По сравнению с PHP, Ruby имеет много функций безопасности и мощную обработку строк.

Итак, вопрос десятилетия заключается в том, что … С учетом всех этих возможностей он делает Ruby более привлекательным по сравнению с PHP?

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

Например, Ruby on Rails - гораздо более сложный язык для настройки среды разработки. Следовательно, молчаливые знания, необходимые для Ruby, сразу же повышают цену на рынке программирования по сравнению с разработкой на PHP. Разработчик PHP, с другой стороны, может просто использовать обычный пакет, такой как WAMP, MAMP, чтобы настроить свою среду разработки менее чем за 5 минут.

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

Некоторые драгоценности, без которых я не могу жить: Devise (аутентификация - обрабатывает логины пользователей, вход в социальные сети, забывает о рабочих процессах с паролями и многое другое), Paperclip (загрузка файлов - даже обрабатывает загрузку в S3, обрезка / повторная выборка изображений), Simple Форма делает формы невероятно простыми для стандартизации и визуализации на веб-сайтах.

PHP был спроектирован как препроцессор гипертекста, что означает, что он выполняется только при наличии веб-запроса. По сравнению с Ruby, который запускает процесс. В Rails вы можете легко создавать фоновые задания, используя Sidekiq или Resque. Это также добавляет способности Rail легко масштабироваться. В наших приложениях мы перемещаем много вещей, которые могут замедлять запросы, такие как отправка электронных писем пользователям в фоновые задания

Теперь PHP может выполнять фоновые задания с использованием Gearman, но это не стандартизировано - вам нужно установить расширение PECL. В Ruby / Rails фоновые задания не являются проблемой. Вы просто делаете это.

Перетягивание каната

Теперь, когда вы много читали о PHP и Rails, давайте взглянем на них. Давайте проверим, какой из них по номиналу с точки зрения использования ресурсов и даже с точки зрения производительности (скорости).

Рекомендуемые курсы

  • Сертификационный онлайн-курс по Java Hibernate
  • Программа на Java Spring
  • Сертификационный курс WordPress
  • Рубиновый курс

Использование ресурсов и скорость

С точки зрения использования памяти это обычно Python> Ruby> PHP, что, конечно, приводит к Django> Rails> PHP. Не только память, но также имеет тенденцию удерживать необработанный ruby ​​на rails против производительности php. Также стоит отметить, что здесь, конечно, нет абсолютов. Существует множество сценариев использования, в которых Ruby превзойдет Python. Я думаю, что мы все можем согласиться с тем, что Ruby и Python всегда побеждают PHP.

Мой собственный опыт показывает, что использование памяти Rails может быть высоким, особенно на 64-битных компьютерах (минимум составляет около 95-100 МБ при тонком интерфейсе веб-интерфейса). PHP, как правило, используется с различными шаблонами, поэтому его немного сложно сравнивать напрямую.

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

Оптимизация базы данных, выбор серверов и архитектура (настройки Apache и прокси-сервера с использованием nginx / lighttpd и т. Д.) И фундаментальные проектные решения, вероятно, довольно быстро превзойдут характеристики, присущие инфраструктуре.

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

Помните, что большая часть обработки ваших веб-приложений на самом деле выполняется программным обеспечением, разработанным на C. Например, Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, многие библиотеки синтаксического анализа, RMagick, TCP / IP и т. Д. Являются программами на C, используемыми Рубин. Ruby обеспечивает клей и бизнес-логику.

Вопрос «ПОЧЕМУ PHP тогда?»

Теперь поговорим о PHP. PHP работает очень медленно на сервере Apache. Даже если вы попытаетесь запустить страницу PHP даже без какого-либо сценария, а только с пустой страницей php, загрузка все равно будет в 10 раз больше по сравнению с JSP или Java. Но опять же, вопрос миллиона лет заключается в том, что если это так, то почему Facebook еще не отказался от PHP? Причина, по которой Facebook не перешел от PHP, заключается в том, что инженерам Facebook удалось обойти многие из его недостатков благодаря комбинации исправлений на всех уровнях стека и превосходной внутренней дисциплине благодаря кодовому соглашению и стилю.

Худшие атрибуты языка избегаются, и стиль кодирования жестко поддерживается благодаря довольно жесткой культуре анализа кода (неспособность придерживаться стиля и «ковбойство» из-за написания неаккуратного кода приводит к безжалостному издевательству со стороны сверстников). Инженерному менеджменту здесь никогда не приходилось брать сильную руку; это произошло в основном из-за того, что ключевые внутренние технические лидеры просто как-то советовали всем остальным.

И, конечно, Facebook не просто использует PHP. Он также включает в себя C ++ в качестве своего ядра. Итак, для PHP используйте какой-нибудь кэш кода операции, такой как APC или eAccelerator, иначе PHP должен анализировать ваши файлы при каждом запросе. Для общей настройки Apache вы должны выполнить поиск в Google, на ум приходит пара вещей, таких как отключение файлов .htaccess, но это все равно должно быть быстрее, чем JSP.

Вывод

Итак, в конце я думаю, что я говорю, что если вы идете через Rails, то вам следует придерживаться Rails, если вы не планируете запускать целый новый проект на основе PHP и основывать компанию вместе с ним.

Рекомендуемые статьи

Вот несколько статей, которые помогут вам получить более подробную информацию о Rails vs PHP, поэтому просто перейдите по ссылке.

  1. Удивительное руководство по разработке Learn Rails
  2. Ruby против Ruby On Rails - какая из них лучше?
  3. Ruby против PHP-Какая технология лучше?
  4. Топ 10 самых удивительных вопросов об интервью PHP для опытных