LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

Но я вообще немного не про это, а про порог вхождения. Без знания JS разобраться в js-проекте куда проще, чем разобраться без знания C++ в проекте на C++

It depends. Вплоть до того, что проект написан почти на чистом Си, с минимальным использованием крестовых фич. Что-то вроде минимальных контейнеров с RAII читается как по маслу. Лямбды теоретически могли бы значительно облегчить чтение кода с итераторами, но хроническая, еще со времен Си, убогость синтаксиса описания функций дала свои плоды.

Но можно написать достаточно простой и бесхитростный код в JS на замыканиях, где функция возвращает функцию, возвращающую функцию... и всё это только для того, чтобы поменять порядок аргументов в callback-е и оставить чистый конечный интерфейс. Особенно весело это отлаживать инструментами разработчика из хрома, которые написаны какими-то отсосными аутсорсными индусами, а потому время от времени отказываются ставить точки останова во вложенных функциях. JS — это довольно бедный по фичам язык, а потому относительно простые функции на нем иногда оказываются удивительно сложны в реализации. Та же беда извела, например, старые диалекты лиспа и scheme, где реализация списков на простейших конструкциях оказывалась ни разу не простейшей, то есть, конструкции простые, но их много — потому такая реализация списков оказалась в выполнении медленной до безобразия.

Исходная версия byko3y, :

Но я вообще немного не про это, а про порог вхождения. Без знания JS разобраться в js-проекте куда проще, чем разобраться без знания C++ в проекте на C++

It depends. Вплоть до того, что проект написан почти на чистом Си, с минимальным использованием крестовых фич. Что-то вроде минимальных контейнеров с RAII читается как по маслу. Лямбды теоретически могли бы значительно облегчить чтение кода с итераторами, но хроническая, еще со времен Си, убогость синтаксиса описания функций дала свои плоды.

Но можно написать достаточно простой и бесхитростный код в JS на замыканиях, где функция возвращает функцию, возвращающую функцию... и всё это только для того, чтобы поменять порядок аргументов в callback-е и оставить чистый конечный интерфейс. Особенно весело это отлаживать инструментами разработчика из хрома, которые написаны какими-то отсосными аутсорсными индусами, а потому время от времени отказываются ставить точки останова во вложенных функциях. JS — это довольно бедный по фичам язык, а потому относительно простые функции на нем иногда оказываются удивительно сложны в реализации. Та же беда извела, например, старые диалекты лиспа и scheme, где реализация списков на простейших конструкциях оказывалась ни разу не простейшей, а потому медленной до безобразия.