Тож ви хочете розпочати новий проект з нуля та шукаєте найкращу веб платформу для цього. Досить складно зробити вибір, який відповідав би усім вашим вимогам, коли справа доходить до мов програмування у вебі.
У статті ми порівняємо 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 — абсолютний лідер за кількістю написаних на ньому сайтів.
Загальний відсоток використання РНР становить 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 для веб розробки вищий, ніж РНР.
(Дані актуальні на липень 2017)
Відповідно до звіту Github, Ruby був більш популярний ніж РНР за кількістю пул реквестів у 2017.
В цілому, хоч РНР більш популярний серед усіх сайтів, 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 розробників приблизно однакова.
Нижче наведена дійсна статистика, що базується на розміщенні вакансій розробників обох технологій.
(Дані дійсні на липень 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 ж потребує деякого збільшення швидкості, натомість має елегантний дизайн та синтаксис. Обидві мови дозволяють створювати сучасні та надійні веб-застосунки.
Коментарі (1)