Джерело зображення: pixabay.com

Отже, перш ніж я розпочну тут холодну війну, між людьми, які використовують Rails (Ruby) та PHP, дозвольте мені сказати, що я не для того, щоб обговорити, яка мова краще. Для мене або для будь-якого досвідченого програміста це було б те саме. Справа лише в бажанні, хто віддає перевагу тому, що і що їм легко.

У цьому блозі я б головним чином обговорював важливість обох та те, чим вони відрізняються один від одного. Отже, якщо ви новачок у Rails та PHP обидва, то це може бути ідеальним блогом для вас, якщо ви хочете вибрати один із двох. Тож давайте почнемо. Ми повинні?

Деякі основні основи

Для початку PHP - це сценарій мови, тоді як RAILS - це веб-розробка, що базується на мові сценаріїв Ruby. PHP - широко використовувана мова програмування для веб-сайтів, таких як Facebook, WordPress, Yahoo, Flickr і навіть більше. PHP надзвичайно швидкий, в п’ять разів стабільніший за Rails і навіть має більшу спільноту розробників, які його підтримують.

Рейки повністю засновані на Ruby. Це надзвичайно просте у використанні та розпочати роботу. Навколишнє середовище в Рубі дуже автоматизоване. Рубі - це справді дивовижна мова. На відміну від PHP, він дійсно орієнтований на об'єкт з нуля. Його код дуже стислий і потужний. Самоцвіти (розширення) дозволяють вам зафіксувати необхідну функціональність. Після кодування в Ruby, я вважаю, що кодування в PHP є досить стомлюючим.

Добрий, поганий і потворний

  1. PHP

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

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

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

Порівняно з PHP, Rails також недоброзичливий, коли мова йде про помилки. З PHP він виплюне помилки у вас у розробці, а повідомлення про помилки насправді мають сенс. Як правило, сторінка відображатиметься, але частина з помилкою покаже вам, у якому рядку сталася помилка і повідомлення корисне. У Rails, як правило, весь додаток вибухає.

Пробачте, я ображаю деяких людей тут, але Рубі просто не так просто, як PHP вчитися. Це, безумовно, надзвичайно потужна мова. Я вирішую використовувати Ruby просто тому, що як розробник я вважаю це набагато кращою мовою, ніж PHP. Але з точки зору навчання це не так. У Ruby є багато функцій, які просто не зрозумілі для початківця програміста. Однією з таких концепцій є блоки, прокси та лямбдаси, якими Rails активно користується.

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

  1. ЗАЛІЗНИКИ

Ruby - це динамічне, імперативне об'єктно-орієнтоване програмування. Він динамічно набирається, як у PHP, тому вам не потрібно турбуватися про необхідність декларування змінних. Rails є відкритим джерелом, працює на декількох платформах і може бути вбудований у мову розмітки Hypertext. Це мова дуже високого рівня. Він навіть пропонує інкапсуляцію методів даних всередині об'єктів.

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

Ruby Дозволяє використовувати «зарезервоване слово» як ідентифікатор, доки аналізатор не сприймає двозначності. У порівнянні з PHP, у Ruby є безліч функцій захисту та потужна обробка струн.

Отже, питання десятиліття … З огляду на всі ці особливості, чи робить Ruby кращою перспективою в порівнянні з PHP?

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

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

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

Деякі дорогоцінні камені, без яких я не можу жити: Розробити (автентифікація - обробляє вхід користувачів, соціальний вхід, забудьте роботу паролів та багато іншого), скріпку (завантаження файлів - навіть обробку завантаження в S3, обрізання зображень / повторну вибірку), просте Форма робить форми неймовірно простими для стандартизації та візуалізації на веб-сайтах.

PHP був розроблений як гіпертекстовий попередній процесор, а це означає, що він виконує лише тоді, коли є веб-запит. У порівнянні з Ruby, який запускає процес. У Rails ви можете легко налаштувати фонові завдання за допомогою Sidekiq або Resque. Це також додає здатності Rail легко масштабуватися. У наших програмах ми переміщуємо багато матеріалів, які можуть уповільнити запити, наприклад надсилання електронної пошти користувачам, у фонові завдання.

Тепер PHP може виконувати фонові завдання за допомогою Gearman, але це не стандартизовано - вам потрібно встановити розширення PECL. У Ruby / Rails фонова робота не є проблемою. Ви просто це зробите.

Перетягування

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

Рекомендовані курси

  • Онлайн-сертифікаційний курс у сплячому режимі Java
  • Програма на весну Java
  • Курс сертифікації WordPress
  • Курс Рубі

Використання ресурсу та швидкість

Що стосується використання пам'яті, то зазвичай це буде Python> Ruby> PHP, що, звичайно, призводить до Django> Rails> PHP. Не тільки пам’ять, але це також має тенденцію утримувати сирий рубін на рейках та продуктивність php. Тут також варто відзначити, що тут, безумовно, немає абсолютів. Існує безліч сценаріїв використання, в яких Рубі буде бити 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, завантаження порівняно з JSP або Java все одно займе 10 разів більше часу. Але знову ж таки, питання мільйона століття полягає в тому, що якщо це так, то чому тоді Facebook ще не скинув PHP? Причина, що Facebook не відійшов від PHP, полягає в тому, що інженерам Facebook вдалося подолати багато її вад завдяки поєднанню патчів на всіх рівнях стеку та чудовій внутрішній дисципліні за допомогою конвенції коду та стилю.

Уникають найгірших атрибутів мови, а стиль кодування жорстко виконується завдяки досить тісній культурі перегляду коду (недотримання стилю та «перехід ковбоя», написання неохайного коду, призводить до жалюгідних глузувань з боку однолітків). Тут інженерному управлінню ніколи не доводилося брати сильну руку; це багато в чому пояснювалося тим, що ключові внутрішні технічні лідери просто своєрідно підганяють усіх інших.

І Facebook звичайно не використовує просто PHP. Він також включає C ++ як своє основне. Отже, для PHP використовуйте якийсь кеш-код опкоду, як APC або eAccelerator, інакше PHP повинен аналізувати ваші файли під час кожного запиту. Для загальної налаштування apache вам слід зробити кілька гуглінгу, пара таких речей, як відключення файлів .htaccess, приходить в голову, але це все-таки має бути швидше, ніж JSP.

Висновок

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

Рекомендовані статті

Ось кілька статей, які допоможуть вам отримати більш детальну інформацію про Rails vs PHP, тому просто перейдіть за посиланням.

  1. Дивовижний посібник з розробки Learn Rails
  2. Рубі проти Рубі на рейках - який краще?
  3. Ruby vs PHP - яка технологія найкраща?
  4. 10 найкращих питань для інтерв'ю для досвідчених PHP