Чим гарний ruby

По-перше rubygems.
По-друге приклад з життя - є gem. З десяток класів, всі один одного використовують.
Виникла необхідність трохи змінити поведінку пари методів одного з класів - так буває.






Що ви будете робити у випадку з php? Ви зробите локальну копію бібліотеки, поламаєте методи так, як вам потрібно.
У випадку з ruby ​​ви можете:
1. Повністю змінити реалізацію одного методу конкретного класу
2. Обернути існуючу реалізацію своїм кодом, за допомогою збереження старого методу під новим ім'ям за допомогою alias_method
По-третє - метапрограмування. Хоча за значимістю це коштувало на перше місце поставити. Саме завдяки метапрограмування код на Ruby лаконічний і легко Новомосковськ.






По-четверте, мені просто приємно мати можливість писати конструкції типу 2.hours.ago - здогадаєтеся, чого вона робить?

красаУчік, навіть без холівара, про образи в голові взагалі цукор, заплюсовал

@Kaaboeld сама мова (я саме про мову, не про екосистему, не про бібліотеки, не про ринок праці) дуже гнучкий, дозволяє вводити власні рівні абстракцій для власних завдань. Це те, що називається eDSL. Досягається це за рахунок декількох мовних особливостей, наприклад, за рахунок блоків. Блок - це шматок коду, який можна передати як аргумент куди-небудь і виконати в тому контексті, де він був визначений (!). Завдяки блокам можна робити такі штуки:

Ще одна особливість - будь-який код завжди повертає значення. Скільки разів ви хотіли зробити так
a = if (.) else
або

це проста і природна форма запису замість набив оскому всім привласнення значення в кожному case. Тобто, в рубай можна працювати набагато ближче до декларативного стилю навіть не використовуючи можливості метапрограмування. Ще раз підкреслю, ці риси не пов'язані з екосистемою або ринком праці, а характеризують рубай як самостійний інструмент.







Схожі статті