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