Вообще-то, книга вышла в 2020-м. И авторы чётко разделяют ядро языка - ECMAScript (он же JavaScript) и библиотеки окружения - BOM, DOM, fs и т.п. Библиотеки могут присутствовать в зависимости от окружения, в котором работает программа, но при этом не являются частью языка - это внешние по отношению к языку модули. Вы же не станете утверждать, что Qt является частью C++, хотя масса программ на C++ используют Qt.
The word "JavaScript" was avoided when the standard specification was created for the language; instead, that specification uses the name "ECMAScript". The names "JavaScript" and "ECMAScript" are essentially different names for the same thing. In this paper when we use the term "ECMAScript" we are specifically talking about the language as defined by the standard.
However, the design, evolution, and standardization of the DOM and other browser platform APIs constitute its own significant story deserving its own history. The current paper mentions browser related issues only when they are relevant to the overall design of JavaScript.
Общий принцип эволюции как раз завязан на мутации. Случайные они или искусственные (ГМО, например) роли не играет. Те, кто в результате мутации получил преимущество в приспособлении к условиям (опять же, естественным или искусственным) и продолжении рода, распространяют свои гены больше, чем те, у кого мутации сыграли в минус.
у меня в консоли Линукса никакие моноширинные шрифты не используются
Странно. Обычно как раз в консоли используется моноширинный шрифт, чтобы текстовый вывод можно было мало-мальски форматировать. Если у вас там пропорциональный шрифт, то всё будет разъезжаться.
Нет, не естественно. Это результат обучения конкретному алфавиту. Есть письменности, в которых нет строчных или прописных, там только одо начертание. Да и просто в незнакомом алфавите могут быть проблемы. Определите, например, какая из этих букв строчная, а какая прописная: 'փ' и 'Շ' ?
В стандарте есть описание таких случаев (файл SpecialCasing.txt), но, так как их очень мало, то допускается их хардкодинг в приложениях при условии регулярной проверки обновления правил.
Because only a few context-sensitive case mappings exist, and because they involve only a very few characters, implementations may choose to hard-code the treatment of these characters for casing operations rather than using data-driven code based on the Unicode Character Database. However, if this approach is taken, each time the implementation is upgraded to a new version of the Unicode Standard, hard-coded casing operations should be checked for consistency with the updated data
нельзя было бы оформить только дополнительной внешней таблицей?
Даже текущее состояние не всегда оформится дополнительной таблицей.
Немецкий язык. Строчный ß (эсцет) переводится в прописные SS. При этом, в зависимости от слова прописные SS могут переводиться как в строчные ss, так и в ß. DAS FLOSS -> das Floß, но DIE FLOSSE -> die Flosse. В 2017 официально ввели лигатуру ẞ, стало гораздо проще.
Греческий язык. Строчные σ, ς переводятся в Σ, а обратный перевод зависит от положения буквы в слове.
И 2 средних (рабочих) контакта К УДИВЛЕНИЮ садятся ровно на синюю пару,
И два контакта 6p4c (который RJ11 или RJ14)) по обе стороны от центральной пары (зелёная пара в EIA/TIA-568B) тоже подсоединяются по телефонному стандарту для четырёхпроводных телефонов, например, системных телефонов Panasonic. Магия, однако
А если за неделю успеваешь побывать во всех ипостасях? Сначала пишешь медленно, разбираясь в каких-то новых для себя вещах. Затем ускоряешься, поняв как оно должно быть. Потом снова замедляешься, потому что что-то не сходится. Ну и в конце начинаешь чистить код от всего лишнего.
"вызыватеся в одном месте" = "ОДИН РАЗ ИСПОЛЬЗУЕТСЯ".
Это не страшно, что она один раз используется, если выделеная функция формирует некий цельный логический блок, который коротко и информативно можно описать в её названии. Предположим, у вас есть код, выполняющий некий математический рассчёт и в нём всего один раз решается квадратное уравнение. Можно оставить это вычисление внутри основного кода, ведь там всего то 2-3 строки, а можно вынести в функцию solveQuadraticEquation и читать основную функцию станет немного проще. Если вы пишете код один раз и не трогаете его годами, то логично оставить код внутри. Если код живой и с ним приходится регулярно работать, то вынесенная функция упростит работу.
Согласен. Ошибки в логике работы, ошибки, связанные с асинхронностью и/или конкурентностью, - одни из самых сложнообнаруживаемых. Но статический анализ, особенно в динамически типизированных языках, позволяет поймать, например, неявные ошибки вида "рассчитываем, что всегда вернут объект, а нам вернули null или false". И в жизни этот null тоже может вернуться один раз в пятилетку, при самом странном стечении обстоятельств.
У тебя, скорее всего, 10 ошибок на 100 строк. Твой усложнённый код только добавляет баги и делает отладку еще сложнее.
Пообмазываетесь код-стайлерами, навесите кучу хуков — и потом целый день правите три строки.
Ну, хороший стайлер, статический анализатор и автотестирование как раз уменьшают количество багов, причём багов незаметных. А три строки в день - так это из-за отсутствия опыта. Просто больше без ошибок написать не получается, а с ошибками анализатор не пропускает.
Пробег теоретически умеют, если и полоса и автопилот сертифицированы по Cat.IIIc. Но вот беда, то такой самолёт летит не в тот аэропорт, то аэропорт правильный, но самолёты всё не те прилетают...
И получаем максимум 0.114c. Дальше тяга от термоядерного сжигания этого водорода становится меньше, чем сопротивление воронки, необходимой для улавливания этого водорода.
«ты мне дал 36 песцовых шкурок; мы договорились, что за каждые 4 шкурки я тебе даю ружьё, так что вот тебе твои 7 ружей»
Чукча не дурак. Чукча даёт рука без пальца шкурок, берёт один ружьё. Даёт ещё рука без пальца шкурок, берёт ещё один ружьё. Как шкурка кончился, так и хорошо поторговали.
Forth? Erlang? Prolog? Ada?
Вообще-то, книга вышла в 2020-м. И авторы чётко разделяют ядро языка - ECMAScript (он же JavaScript) и библиотеки окружения - BOM, DOM, fs и т.п.
Библиотеки могут присутствовать в зависимости от окружения, в котором работает программа, но при этом не являются частью языка - это внешние по отношению к языку модули.
Вы же не станете утверждать, что Qt является частью C++, хотя масса программ на C++ используют Qt.
А вот что говорит в своей книге JavaScript: The First 20 Years один из авторов JavaScript, Брендан Эйх:
Общий принцип эволюции как раз завязан на мутации. Случайные они или искусственные (ГМО, например) роли не играет. Те, кто в результате мутации получил преимущество в приспособлении к условиям (опять же, естественным или искусственным) и продолжении рода, распространяют свои гены больше, чем те, у кого мутации сыграли в минус.
Странно. Обычно как раз в консоли используется моноширинный шрифт, чтобы текстовый вывод можно было мало-мальски форматировать. Если у вас там пропорциональный шрифт, то всё будет разъезжаться.
Нет, не естественно. Это результат обучения конкретному алфавиту. Есть письменности, в которых нет строчных или прописных, там только одо начертание. Да и просто в незнакомом алфавите могут быть проблемы. Определите, например, какая из этих букв строчная, а какая прописная: 'փ' и 'Շ' ?
В стандарте есть описание таких случаев (файл SpecialCasing.txt), но, так как их очень мало, то допускается их хардкодинг в приложениях при условии регулярной проверки обновления правил.
Даже текущее состояние не всегда оформится дополнительной таблицей.
Немецкий язык. Строчный ß (эсцет) переводится в прописные SS. При этом, в зависимости от слова прописные SS могут переводиться как в строчные ss, так и в ß.
DAS FLOSS -> das Floß, но DIE FLOSSE -> die Flosse.
В 2017 официально ввели лигатуру ẞ, стало гораздо проще.
Греческий язык. Строчные σ, ς переводятся в Σ, а обратный перевод зависит от положения буквы в слове.
Добавлю, оттуда же имена файлов формата 8.3 - это 12 символов или 8 байт в RADIX,
И два контакта 6p4c (который RJ11 или RJ14)) по обе стороны от центральной пары (зелёная пара в EIA/TIA-568B) тоже подсоединяются по телефонному стандарту для четырёхпроводных телефонов, например, системных телефонов Panasonic. Магия, однако
А давайте оставим работать только это 2% и посмотрим, где они будут брать технику, удобрения, топливо, метеопрогнозы и многое другое.
Вспомнился код от уволенного программиста
#define true false // счастливой отладки
где-то далеко-далеко за правой границей окна.А если за неделю успеваешь побывать во всех ипостасях? Сначала пишешь медленно, разбираясь в каких-то новых для себя вещах. Затем ускоряешься, поняв как оно должно быть. Потом снова замедляешься, потому что что-то не сходится. Ну и в конце начинаешь чистить код от всего лишнего.
Просто в вашем комментарии сложно понять, пункты 1 и 2 соединяются через И или через ИЛИ. Нужен рефакторинг комментария.
Это не страшно, что она один раз используется, если выделеная функция формирует некий цельный логический блок, который коротко и информативно можно описать в её названии.
Предположим, у вас есть код, выполняющий некий математический рассчёт и в нём всего один раз решается квадратное уравнение. Можно оставить это вычисление внутри основного кода, ведь там всего то 2-3 строки, а можно вынести в функцию solveQuadraticEquation и читать основную функцию станет немного проще.
Если вы пишете код один раз и не трогаете его годами, то логично оставить код внутри. Если код живой и с ним приходится регулярно работать, то вынесенная функция упростит работу.
Согласен. Ошибки в логике работы, ошибки, связанные с асинхронностью и/или конкурентностью, - одни из самых сложнообнаруживаемых. Но статический анализ, особенно в динамически типизированных языках, позволяет поймать, например, неявные ошибки вида "рассчитываем, что всегда вернут объект, а нам вернули null или false". И в жизни этот null тоже может вернуться один раз в пятилетку, при самом странном стечении обстоятельств.
Ну, хороший стайлер, статический анализатор и автотестирование как раз уменьшают количество багов, причём багов незаметных. А три строки в день - так это из-за отсутствия опыта. Просто больше без ошибок написать не получается, а с ошибками анализатор не пропускает.
Пробег теоретически умеют, если и полоса и автопилот сертифицированы по Cat.IIIc. Но вот беда, то такой самолёт летит не в тот аэропорт, то аэропорт правильный, но самолёты всё не те прилетают...
И получаем максимум 0.114c. Дальше тяга от термоядерного сжигания этого водорода становится меньше, чем сопротивление воронки, необходимой для улавливания этого водорода.
Чукча не дурак. Чукча даёт рука без пальца шкурок, берёт один ружьё. Даёт ещё рука без пальца шкурок, берёт ещё один ружьё. Как шкурка кончился, так и хорошо поторговали.