Прошла онлайн Ruby-конференция: https://noruko.org/ (доступ разрешили без регистрации).
В докладе Матца (создателя Ruby) были все обычные заявления: добавим type annotations, нужно больше сторонних инструментов (линтеров, тайп чекеров), интерпретатор будет быстрее, улучшим JIT, думаем над созданием некоего супербыстрого "микроруби" (интерпретатора, реализующего подмножество Ruby).
Мне лично интересно было глянуть на три нововведения в синтаксисе языка (собственно, той части, которая на виду у пользователя):
1. Pattern matching
2. Оператор "правого присвоения" (right assignment).
- Пример не убедительный - следовательно, убедительного примера, где бы правое присвоение могло быть удобным придумать сходу Матцу не удалось
3. Порядковые аргументы блока
- Выбор имён
Общее резюме, цитируя-перефразируя Матца: Ruby будет становиться лучше (если американцы традиционно помогут японцам сделать из их кулибинских идей красивый коммерческий продукт), и вы тоже :)
#programming #ruby
В докладе Матца (создателя Ruby) были все обычные заявления: добавим type annotations, нужно больше сторонних инструментов (линтеров, тайп чекеров), интерпретатор будет быстрее, улучшим JIT, думаем над созданием некоего супербыстрого "микроруби" (интерпретатора, реализующего подмножество Ruby).
Мне лично интересно было глянуть на три нововведения в синтаксисе языка (собственно, той части, которая на виду у пользователя):
1. Pattern matching
case JSON.parse(json, symbolize_names: true)- В целом, мне нравится, как реализован этот оператор
in {name: "Alice", children: [*, {name: "Bob", age: age}, *]}
p age
in _
p "no Alice"
end
case... in
- Не понятно, почему в качестве плейсхолдера "что угодно" используется *
, а не _
- Удручает, что нет планов распространения паттерн матчинга на сигнатуры метода в стиле Elixir или JS (декомпозиция аргументов метода прямо в его сигнатуре + возможность определить/"перегрузить" одноимённые методы с разной сигнатурой)2. Оператор "правого присвоения" (right assignment).
# было- Мне нравится, как Матц не ставит пробелы перед и после фигурных скобок блока - такое написание удобней и практичней традиционного по "западному" кодстайлу
top_five =
(1..100)
.map{|x| rand(x)}
.sort
.reverse
.take(5)
# стало
(1..100)
.map{|x| rand(x)}
.sort
.reverse
.take(5) => top_five
- Пример не убедительный - следовательно, убедительного примера, где бы правое присвоение могло быть удобным придумать сходу Матцу не удалось
3. Порядковые аргументы блока
# умножить каждый элемент на 2- Идея мне нравится - такая возможность была бы весьма востребована
[1, 2, 3].map{_1 * 2}
- Выбор имён
_1
, _2
, ... выглядит как-то несовременноОбщее резюме, цитируя-перефразируя Матца: Ruby будет становиться лучше (если американцы традиционно помогут японцам сделать из их кулибинских идей красивый коммерческий продукт), и вы тоже :)
#programming #ruby
#NoRuKo
Thanks everyone for joining us for a virtual #NoRuKo unconference Friday 21st of August 2020 15:00-21:15 CEST!