Дизайн и эволюция JavaScript

April 5, 2017

5 лет назад я стал ортодоксальным рубистом, сбежав из C++-кабалы. Руби - прост, но не убог, красив, но не уродлив, силен, но не слаб. Продолжать можно бесконечно. Сейчас, проматывая статьи про изменения в C++, я не понимаю и половины слов. Наверное, то, что очередные полиморные изоморфики попали в стандарт должно радовать, а отсутствие изоморных полиморфиков - печалить... Не знаю, я сбежал с этой вечеринки.

Но самое диво дивное это, конечно, JavaScript. Иногда кажется, что он даже не пытался побывать на уровне сложности C++ и сразу стал Хаскелем. Я уже старый и последний год программирую в основном на yml-файлах и баш скриптах, и, честно говоря, вообще не понимаю, как писать вот такое (Код взят из этой статьи - Вы знаете, что такое трансдьюсеры):

const firstTwoWins = compose(
  filter(({ my, others }) => my > others),
  map(({ gameID }) => gameID),
  take(2),
)

const result = transduce(firstTwoWins, append, [], scores)

Это даже не выглядит как javascript, если честно. Я помню там $("#element").hide() и поехали.

Вообще по отечески (а почему-то мне кажется, что так писать нравится молодым программистам, я когда просекал, как работает код из Александреску тоже ходил по улицам и улыбался), мне бы очень хотелось посадить людей на поддержку таких трансдьюсеров в проект на 10-100к файлов и поглядеть через годик, что из этого выйдет.

Ну и топчиковый коммент:

comments powered by Disqus