2018: Ruby або PHP?

2 хв. читання

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

У статті ми порівняємо Ruby та PHP у 2018 та розглянемо найважливіші «за» та «проти» критичних аспектів обох технологій. Наведена нижче статистика актуальна на червень 2018.

Ruby та PHP вже більш як 20 років використовуються для розробки програмних продуктів, тому можна вважати їх «зрілими» та перевіреними технологіями. Поглянемо на їх розвиток з самого початку.

Історія

PHP, випущений у 1994 році як скриптова мова програмування для генерації HTML-сторінок на стороні веб-сервера, тепер є надійною веб технологією, яка використовується для різних призначень. Натомість Ruby був випущений у 1995 як об'єктно-орієнтована мова загального призначення, але зараз, в загальному, використовується у веб розробці через успіх Ruby on Rails.

Хоч первинне призначення обох мов відрізняється, сьогодні вони є висококонкурентними на сцені веб-розробки.

Філософія

Однією з основних відмінностей між Ruby та PHP є їх філософія.

Основними принципами Ruby були продуктивність та задоволення розробників, які працюють зі стильною, елегантною та гнучкою мовою.

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

Таким чином, синтаксис цієї мови елегантний і красивий. Розробники отримують задоволення від програмування з Ruby.

Повернемося до PHP, який був створений для особистих потреб Размуса Лердорфа, його творця. Спочатку він просто хотів підрахувати кількість відвідувань його онлайн резюме.

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

Простота PHP привабила багато програмістів у світі веб-розробки, і вже через декілька років PHP перетворився у першу масову скриптову мову. Але популярність має й зворотний бік. Через швидке зростання було складно піклуватися про вигляд мови. Про PHP писали як про зразок поганого дизайну.

Таким чином, багато розробників віддали перевагу Ruby чи Python.

Список порівнянь

У статті порівняємо наступні аспекти обох веб-технологій:

  • Складність вивчення
  • Фреймворки
  • Популярність
  • Спільнота
  • Вартість розробників
  • Швидкість і продуктивність

Розпочнемо наш невеликий огляд.

1. Складність вивчення

Обидві мови відносно нескладні у засвоєнні. Існує безліч інтерактивних навчальних онлайн матеріалів, наприклад Learn PHP чи Try Ruby.

Приклад коду на Ruby:

odd_numbers = [1, 3, 5, 7, 9]
odd_numbers.each do |odd_number| 
  puts odd_number
end

Приклад коду на PHP:

<?php
$odd_numbers = [1, 3, 5, 7, 9];
foreach ($odd_numbers as $odd_number) {
  echo $odd_number . "\
";
}
?>

Як бачимо, у прикладі з PHP є відкритий тег <?php. Тепер розробники не поєднують інші частини коду (наприклад, HTML чи CSS), але досі мусять використовувати такий відкритий тег на початку файлу. Така поведінка дозволяє підтримувати сумісність зі старішими версіями мови.

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

2. Фреймворки

Поглянемо на веб-фреймворки.

У таблиці можна знайти основні фреймворки обох мов та кількість зірок на Github. Як видно, Rails є лідером у світі Ruby, а у світі PHP — Laravel.

Фреймворки Ruby Зірки на Github Фреймворки PHP Зірки на Github
Ruby on Rails 39 тис. Laravel 43 тис.
Sinatra 10 тис. Symfony 17 тис.
Hanami 4 тис. CodeIgniter 16 тис.
Padrino 3 тис. Yii2 12 тис.
Phalcon 8 тис.

У той час як Rails домінує над фреймворками Ruby, конкуренція між фреймворками РНР набагато сильніша, адже він отримав популярність задовго до того, як це зробили інші мови веб розробки.

З іншого боку, Rails завоював славу першого масового MVC фреймворку у вебі.

3. Популярність

Існує безліч онлайн ресурсів, які надають статистичні дані про поширеність обох мов програмування.

3.1 Сайти, написані на Ruby та PHP

Як цитує W3Techs statistic, PHP — абсолютний лідер за кількістю написаних на ньому сайтів.

site statistic

Загальний відсоток використання РНР становить 85.5%. Однак варто визнати, що величезну частину ринку РНР становлять такі CMS, як Wordpress, Drupal та Joomla.

3.2 Сайти, створені за допомогою фреймворків

BuiltWith.com показує, що Rails фреймворк більш популярний у порівнянні з фреймворками РНР.

Фреймворк Топ 10 тис. сайтів Топ 100 тис. сайтів Топ мільйон сайтів Інтернет
Ruby on Rails 850 4 184 13 641 1 883 369
Laravel 118 792 5 438 573 932
CodeIgniter 32 376 4 154 408 429
CakePHP 41 194 1 024 90 979

Як бачимо, найбільшу кількість сайтів у всіх категоріях було побудовано на Ruby on Rails.

3.3 Рейтинг мов програмування

Рейтинг Spectrum «Найкраща мова програмування» вказує, що показник застосування Ruby для веб розробки вищий, ніж РНР.

rating

(Дані актуальні на липень 2017)

Відповідно до звіту Github, Ruby був більш популярний ніж РНР за кількістю пул реквестів у 2017.

github-report

В цілому, хоч РНР більш популярний серед усіх сайтів, Ruby (та Rails) переважає над РНР за розміром активності на Github та веб-сайтах, побудованих на фреймворках.

Багато РНР проектів раніше було написано без будь-яких фреймворків або перевстановлено як копії Joomla, Wordpress та Drupal систем.

4. Спільнота

Спільнота, побудована навколо мови програмування, є чудовою підтримкою для розробників.

Обидві технології мають розвинені спільноти. Одна з основних відмінностей між Ruby та РНР полягає у тому, що спільнота Ruby базується на фреймворку Rails, у той час як РНР має велику кількість спільнот, розділених між різними фреймворками чи наявними продуктами.

У загальному, можна виокремити три гілки РНР спільноти:

  • Розробники, що працюють з Laravel, Symfony та іншими фреймворками й створюють проекти з нуля.
  • Програмісти, які проектують виключно у системах Joomla, Wordpress або Drupal.
  • Розробники, які націлені на обслуговування та підтримку веб-сайтів, написаних до появи сучасних РНР фреймворків.

У зв'язку з цим справедливо буде порівняти Rails розробників та РНР розробників, які працюють з фреймворками. Отже, кількість розробників, що працюють, наприклад з Laravel, менше, ніж Rails програмістів.

До того ж ми не можемо недооцінювати широку спільноту Ruby on Rails, сформовану на Github. Разом вони націлені на надійну та якісну розробку, вносячи значний внесок у спільні зусилля.

5. Вартість розробників

Існує думка, що РНР розробники дешевші, і їх можна знайти легше ніж Ruby (Rails) розробників.

Правда полягає в тому, що ціна на послуги розробників залежить від їх кваліфікації, тому висококваліфіковані розробники добре оплачуються незалежно від мови програмування.

На даний момент терміну «РНР розробник» не існує як такого. Зараз ми можемо говорити, наприклад, про Symfony або Drupal розробників. А вартість Rails та Laravel / Symfony розробників приблизно однакова.

Нижче наведена дійсна статистика, що базується на розміщенні вакансій розробників обох технологій.

job-statistic

(Дані дійсні на липень 2017)

Як видно, рівень попиту на програмістів обох мов був практично однаковим.

У той же час рівень попиту на Rails розробників вищий, ніж на Laravel, топовий РНР фреймворк.

Швидкість та продуктивність

Проаналізувавши історію, можемо зробити висновок, що Ruby та PHP мали приблизно однакову швидкість на певних етапах. Натомість тепер продуктивність PHP 7.2 значно покращилась: він є набагато швидшим за попередні версії. Тож, 1:0 на користь РНР.

Випустивши Ruby 2.5 у грудні 2017, спільнота представила покращення продуктивності до 10% у порівнянні з Ruby 2.4 та презентувала багато інших значних оновлень. Не менш важливою є ініціатива Ruby 3x3, яка націлена на потроєння продуктивності Ruby у третій версії.

Хоча розробники прагнуть поліпшити продуктивність технологій, це не причина обирати яку-небудь мову лише за критерієм швидкості. Більш практичним вирішенням цієї проблеми було б оновлення апаратного забезпечення.

Переваги

Кожна з представлених мов програмування має свої унікальні аспекти та особливості, що служать меті, заради якої вони були створені. Поглянемо на їх сильні сторони.

Ruby PHP
Відкритий сирцевий код Відкритий сирцевий код
Швидкість у вивченні Швидкість у вивченні
Активна спільнота розробників Величезна спільнота розробників
Відмінний дизайн мови Багато доступних фреймворків
Rails - фреймворк №1 PHP7 дуже швидкий
Багато доступних інформаційних ресурсів Багато доступних інформаційних ресурсів

Недоліки

Але завжди є свої підводні камені, і мови програмування — не виняток. У будь-якому разі, ще є над цим попрацювати:

Ruby PHP
Швидкість виконання могла б бути кращою Слабкий дизайн мови
Домінування Rails послаблює конкуренцію між іншими фреймворками Проблеми з обслуговуванням застарілих додатків

Підсумок

Вибираючи між РНР та Ruby, ви не знайдете однозначної відповіді яка мова програмування є кращою. Обидві мови мають свої переваги та недоліки.

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

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 1.7K
Приєднався: 1 рік тому
Коментарі (1)
  1. p.s.

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

    PHP в принципі хоч і з затримкою але рухається в правильному векторі, особливо після релізу вісімки. Думаю в перспективі може стати однією з основних мов для розробки десктоп застосунків. По типу того, як це сталось із JavaScript / Node.js

    Ну і додам, що PHP має C-like синтаксис, тому володіючи цією мовою буде трохи простіше перестрибнути в цю сферу після пісочниці у веб проектах.

    4 місяці тому ·
    0
Щоб залишити коментар необхідно авторизуватися.

Вхід