LINUX.ORG.RU

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

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

Это всего лишь замыливание взгляда и ничего хорошего в этом нет.

Чехарда с типами - менее удобный автокомплит в IDE (постоянно показывается либо лишнее, либо не показывается нужное - даже в продвинутых комбайнах типа WebStorm, ибо язык в любом хоть чуть-чуть сложном проекте определить точные типы не в рантайме невозможно в принципе), отсутствие автоматического отлова ошибок (там где код на типизированном языке выдал бы понятную ошибку компиляции, на JS можно получить абсолютно неочевидную ошибку в рантайме, которая если не повезёт ещё и будет проявляться только при особых условиях).

Люди делают ошибки, это их неотъемлемое свойство, даже если знать на 100% все особенности типов JS это не исключит вероятность банальной опечатки или «перепутал» (если проект сложный, то забыть пару деталей про его кишки - обычное дело).

Однако, динамическая типизация открывает хорошие возможности для метапрограммирования. Где-то это полезно, где-то не особо.

Исправление KivApple, :

Это всего лишь замыливание взгляда и ничего хорошего в этом нет.

Чехарда с типами - менее удобный автокомплит в IDE (постоянно показывается либо лишнее, либо не показывается нужное - даже в продвинутых комбайнах типа WebStorm, ибо язык в любом хоть чуть-чуть сложном проекте определить точные типы не в рантайме невозможно в принципе), отсутствие автоматического отлова ошибок (там где код на типизированном языке выдал бы понятную ошибку компиляции, на JS можно получить абсолютно неочевидную ошибку в рантайме, которая если не повезёт ещё и будет проявляться только при особых условиях).

Люди делают ошибки, это их неотъемлемое свойство, даже если знать на 100% все особенности типов JS это не исключит вероятность банальной опечатки или «перепутал» (если проект сложный, то забыть пару деталей про его кишки - обычное дело).

Однако, динамическая типизация открывает хорошие возможности для метапрограммирования.

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

Это всего лишь замыливание взгляда и ничего хорошего в этом нет.

Чехарда с типами - менее удобный автокомплит в IDE (постоянно показывается либо лишнее, либо не показывается нужное - даже в продвинутых комбайнах типа WebStorm, ибо язык в любом хоть чуть-чуть сложном проекте определить точные типы не в рантайме невозможно в принципе), отсутствие автоматического отлова ошибок (там где код на типизированном языке выдал бы понятную ошибку компиляции, на JS можно получить абсолютно неочевидную ошибку в рантайме, которая если не повезёт ещё и будет проявляться только при особых условиях).

Люди делают ошибки, это их неотъемлемое свойство, даже если знать на 100% все особенности типов JS это не исключит вероятность банальной опечатки или «перепутал» (если проект сложный, то забыть пару деталей про его кишки - обычное дело).

Однако, динамическая типизация открывает хорошие возможности для метапрограммирования.

Моё мнение про JS:

Плюсы: 1) Работает на любом десктопе и мобилке 2) Хорошие возможности метапрограммирования 3) Самый быстрый скриптовой язык программирования

Минусы: 1) Невозможно проверить корректность использования типов и переменных не в рантайме, плохой автокомплит 2) Некоторые решения языка контр-интуитивны и неизящны (часть фиксится strict mode, но не всё) 3) Мало синтаксического сахара 4) Однопоточный by design

Да, соотношение количества плюсов и минусов ничего не значит. Просто надо это держать в голове, когда выбираешь язык для нового проекта. Во многих задачах минусы оказываются несущественны, а плюсы критичны. А где-то наоборот. Надо просто думать головой, а не шаблонами «если минусов больше, чем плюсов, значит язык ни на что не годен».