Дизайн и эволюция JavaScript
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к файлов и поглядеть через годик, что из этого выйдет.
Ну и топчиковый коммент: