Comments 35
Что-то типа почему массив до миллиона значений — одна структура, а после — другая…
Вообще тоже ожидал от статьи чего-то большего.
P.S. Насчёт хэш-таблицы на 100% не уверен, хотя этот вариант подходит куда больше, чем те же списки. В любом случае, в массиве с разномастными значениями нельзя было бы сделать смещение к индексу в один такт, поэтому и использовать массив в таком случае невозможно.
Его «ментальная модель» — это дамп с его мозга. Это очень полезно, но только ему. Мне, например, это тяжело читать было.
И я тоже купился на заголовок — я ожидал про internal почитать. Был бы он «Мои заметки при изучении JS» или «Особенности JS простыми словами» (кстати, примерно так сайт и называется?) — было бы более корректно.
Я тут пару ссылочек оставлю.
— https://stackoverflow.com/users/458193/dan-abramov
— https://mobile.twitter.com/dan_abramov
— https://github.com/gaearon
Дэна Абрамова в англоязычном интернете только совсем далекие от индустрии люди не знают. И как бы да, он имеет полное право учить, посмотрите хотя бы, в каких проектах есть его код.
На самом деле, Дэн Абрамов — создатель Redux и на сегодняшний момент один из главных идеологов React'а. Согласен, конкретно эта статья немного сумбурная, но это однозначно не тот человек которого нужно отправлять «подучить матчасть».
У меня искренняя надежда, что какая-нибудь технология, типа WebAssembly, вытеснит в будущем это недоразумение.
Потому и придумали typescript.
Вы поймете что это правильный путь, если начнете программировать на Rust, например. Там тоже все что нужно унаследовать, ты просто записываешь в поле. Это минимальный уровень абстракции. К тому же, когда есть только один прототип (отсутствие множественного наследования), никаких присущих ООП проблем типа Diamond Problem (в С++ решается плохо понятными virtual-ами) не возникает.
Очень странный коментарий…
Про большие проекты лучше всего сказал другой малоизвестный программист: «you can write large programs in JavaScript. You just can't maintain them»©.
you can write large programs in JavaScript. You just can't maintain them — Anders Hejlsberg
Ну давайте евангелиста и ведущего разработчика TypeScript цитировать как истину в последней инстанции в разговоре про JavaScript.
Прекрасно можно большие проекты поддерживать на чем угодно, хоть на Коболе (и тому есть миллион дорогостоящих подтверждений :)
Проблема неподдерживаемого кода — всегда разработчики, а не язык.
Понятия не имею, о каком Коболе вы говорите, но тот, на котором написано 20 миллиардов строк, который породил проблему Y2K, и на котором довелось писать мне в конце девяностых (и иногда приходится сейчас, когда хочется заработать на новую машину на неделю) — все внутри хранит строками фиксированной длины.
MOVE X TO Y работает для вообще любых двух переменных.
Но да, ts был создан именно поэтому. И по мере того, как проект на JS превышает некую крит. массу его начинают переписывать на TS. Или вы думаете, что Angular просто от нечего делать на ts переписали?
Проблема неподдерживаемого кода — всегда разработчики, а не язык
Ну это такое совершенно верное и абсолютно бессмысленное утверждение. Да, имея бесконечное количество идеальных разработчиков в абсолютном ваккууме можно писать код в notepad на Брейнфаке. На практике же ситуация немного иная.
Человек, стоявший у истоков индустрии [… ]
Какой, стесняюсь спросить, индустрии? Прикручивания эпитетов к языкам, созданным другими? Прикручивания синтаксиса к языкам, созданным другими? Прикручивания типов к языкам, созданным другими?
Зачем Ангуляр переписали — большой вопрос. Надо было хоронить. Наверное, чтобы не разгонять несколько отделов.
Если взять мой личный пример, пока я пишу регулярно на каком-то языке, в том числе и на JavaScript, чувствую себя, как рыба в воде, но стоит сделать перерыв больше года, то уверенность использования сразу пропадает. Возвращается только через пару месяцев регулярного использования.
У меня с родным русским языком была похожая ситуация. После двух с половиной лет жизни в Юго-Восточной Азии, когда почти не использовала родной русский язык, и работала только с англоговорящими клиентами, почти разучилась грамотно писать на русском языке. Вот родной русский язык, что самое смешное, восстановливала до прежнего уровня дольше, чем за год.
Переменная — это символ, который принимает некоторое значение в контексте. Например, при вычислении x^2+2*x в контексте [x=3], скажем, при вычислении f(3) функции f(x)=x^2+2*x, значение x неизменно. Однако, мы называем x переменной, потому что она зависит от контекста.
Либо же в JS так говорят по привычке.
В некоторых кодовых базах и командах педантично относятся к этому вопросу, заставляя всех, в том случае, если значение записывается в переменную лишь один раз, использовать const.
const не нужен. (С)
Я до сих пор не могу понять, почему java-программисты такие храбрые и не использую (почти) атрибут final в своих программах — то есть абсолютно не бояться что вдруг изменят переменную где-то «внизу» программы, а javaScript-программисты такие трусливые. — НЕ ПОНИМАЮ этого явления!
То что введение const в JavaScript было ошибкой, это уже поняли и сами добавившие его в язык.
Из чего сделан JavaScript?