Ruby произвёл неоднозначное впечатление большого хака, из которого к тому же торчат уши зубодробительного Perl. Но хак этот эффективный и в умелых руках работает со страшной силой. К RoR эти слова применимы в квадрате — это ещё бóльшая чёрная магия. Японское происхождение частично объясняет странность Ruby.
Избранные места из документации Ruby:
- В Ruby всё — объекты. Даже числа. Чего стоит, например, такой код:
5.times { |i| print i, ' ' }
Этот кусочек иллюстрирует ещё одну странную, но мощную фишку — передача кусков кода в виде аргументов функции. Похоже на lambda-функции в Python, но мощнее и применяется повсеместно. - При записи числа допустима, например, следующая форма:
a = 1_000_000
Чтобы, значит, читабельность кода увеличить. - Ruby вообще любит использовать ASCII-таблицу по максимуму. Функция проверки валидности может называться
valid?
, а сортировка массива "in place" —sort!
. - Как и многие языки, в Ruby объекты могут наследоваться лишь от одного родителя. Но можно включать в класс код из других модулей, при этом их функции становятся методами данного класса — это ж настоящий monkey patching!
- Определение класса может состоять из несколько кусков. Т.е. мы начали определять класс A, потом пошло определение класса B, потом мы опять продолжили определить класс A. На практике это означает, что можно переопределить поведение даже базовых классов, того же String. Вот это действительно monkey patching.
- И ещё для Ruby написано самое странное руководство из тех, что я встречал.
Лично мне ближе элегантность Python, замешанная на дзене. ;)
Комментариев нет:
Отправить комментарий