Здравствуйте, Евгений Акиньшин, Вы писали:
N>>За время программирования на JS лично мне такой проверки не понадобилось почти ни разу.
ЕА>а какого размера проекты писали? Просто у меня даже задачи средней сложности это хотя бы человек 5-ть над кодом в течении хотя бы лет 5-ти работали и это команда хотя бы разок полностью поменялась. В типизированных языках новым людям приходится работать с контрактами
ЕА>пока проект маленькийи работаешь один и все с памяти держишь — на динамике оно может и быстрее пишется
Работал над проектами небольшого размера. Насколько могу судить — для Яваскрипта пока что не очень много таких проектов, чтобы "5 человек в течение 5 лет".
Кстати, совсем забыл — для тех, кому необходимо наличие "protected internal override" и проверки типов существует Google Web Toolkit — он напрямую транслирует код из Java в JavaScript.
Хоть это и костыли, но вполне рабочие и используемые тем же Google'ом.
ЕА>>>ну и выполнятся эти проверки будут в рантайме, что еще сильнее просадет производительность
N>>Да, на проверке типов теряется примерно 20-30% скорости при вызове метода.
N>>В абсолютном значении для нетяжелых вычислений разница небольшая — 2-4 мс.
ЕА>30%(!) — и это только проверки, а еще оверхед для поиска метода по имени итд. итп. Надо совсем никуда не спешить чтобы с этим мириться.
Поэтому по моему скромному мнению стоит использовать проверку типов только там, где это действительно нужно.
ЕА>что protected вижу, а где internal override?
Простите, не знаю, что именно должен делать internal override — но наверняка сэмулировать можно и его. Только тащить всю объектную систему из .NET в JavaScript как минимум странно — настолько же странно, как эмулировать в .NET объектную систему JavaScript, с прототипным наследованием и т.д. А в Python'е по сути нет даже protected и private — и ничего, живут ведь как-то, и не жалуются — такая философия языка.
На мой взгляд для начала стоит разобраться и принять эту самую философию языка, а не тащить привычки с другого. Как говорится, программист на Фортране на любом языке сможет написать программу на Фортране.
ЕА>ну опять же единственный способ убедиться, что везде вызвается коректно, написать тесты с 100% покрытием
Тесты — да, они ж в любом случае лишними не будут.
... << RSDN@Home 1.2.0 alpha 5 rev. 1526>>