TGViewer
Metaprogramming Metaprogramming @metaprogramming · 877 subscribers
Post #10 354
Прошла онлайн Ruby-конференция: https://noruko.org/ (доступ разрешили без регистрации).

В докладе Матца (создателя 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
TeePublic SURGAVIP Future Digital Technology Dengan Produk Digital dan Inovasi Gaming Masa Depan SURGAVIP menghadirkan future digital technology melalui produk digital, voucher elektronik, perangkat gaming, dan inovasi teknologi terkini.
More from @metaprogramming
  1. Sep 15, 2026Творческое мнение читателей по поднятым вопросам
  2. Sep 13, 2026Философский нейроколобок Феномен психологической проекции (читаешь и чувствуешь – он же жи…
  3. Sep 13, 2026Современные модели специально обучены отвечать нейтрально на вопрос о наличии у них сознан…
  4. Sep 12, 2026Нереализованный пафос математики в эпоху ИИ В связи с изложенным политическое возмущение м…
  5. Sep 12, 2026Математика как майнинг благодати? При чтении всего этого складывается впечатление, что мат…
  6. Sep 12, 2026Снова про борьбу математиков с ИИ Ещё два громких обсуждения в жанре "математики против ИИ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →