Здравствуйте, Ikemefula, Вы писали:
I>Как напишешь, так и ведёт. Если ты пишешь хитромудрые конструкции, то любые ожидания будут неадекватными.
Я в JS не так чтобы полный гуманитарий, но все же теоретик.

Питон при попытке прибавить число к строке кинул исключение, а JS — нет.
На JS мне только поправить кое-что несложное пришлось. Я старался быть проще.
I>Нужно использовать оболочку навроде TypeScript для статической типизации и писать нормальный код без хитромудрых конструкций.
Статическая — это, конечно, хорошо. А она у TypeScript сильная или слабая? Со слабой я еще в PL/1 наблюдал презабавные эффекты с преобразованием типов.
I>Часть этих хитромудрых конструкций действительно дает короткий и эффективный код. Но дизайн этих вещей никогда не был и не будет консистентным, фактически, их никто не проектировал. Соответственно, неосмотрительные эксперименты нежелательны.
Дак если теоретик, вроде бы и стараешься соломки расстелить, а все равно стреляет внезапно.
I>Например, в C/С++ промахиваясь по массиву, ты затираешь чужую память. В шарпе или джаве — получаешь исключение. В жээсе память не затирается, в зависимости от кода можешь получить что угодно.
Вот, а я не хочу что угодно. Обленился, привык, что исключение вылетает. В этом случае поправить бывает просто. А вот когда я в Фортране расстреливал память, а программа завершалась нормально, но на выходе, правда, был мусор, было весело. Как выяснилось, в MS DOS сегменты подбросили развлекуху. Тут дело не в Фортране, а в его реализации.
I>Фиксится лекго — просто добавляешь явную проверку на границы массива, если расширяешь массив, делаешь это явно и не абы каким числом и тд.
Когда как. Легко — не значит просто.