Mefistofel написал:
...программы на js или том же python может быть и легче писать, но радикально тяжелее читать.
Афаик, это всем известная проблема. На динамических сложнее писать большие долгосопровождающиеся программы, а также писать в команде. В первом случае нужны дополнительные меры и самодисциплина, во втором более тесная интеграция и меньшее значение truck number.
Чем первая ситуация отличается от скомпилированного кода? Разве в скомпилированном коде не может быть участков, которые выплняются раз в 10 лет вызывая segmentation fault или просто утечку памяти гигабайтами? Только в случае в js даже деление на ноль не приведет к фатальным проблемам, если конечно код написан не обезъяной. Тоже и про "неожиданный" объект нетого типа. Если программа написана нормально, то это не приведет к запуску ракетоносителя, если написана идиотом, то типизация не поможет и в случае с другими языками может привести к более серьезным последствиям.
Про разработку в команадах вообще не вижу никаких дополнительных проблем у JS по сравнению, наприер, с java. Если код недокументирован и написан человеком из индии, то не поможет тут строгая типизация. И наоборот.
KEFIR написал:
Чем первая ситуация отличается от скомпилированного кода?
Тем, что этот код уже прошел верификацию на определенные типы ошибок.
KEFIR написал:
Разве в скомпилированном коде не может быть участков, которые выплняются раз в 10 лет вызывая segmentation fault или просто утечку памяти гигабайтами?
А это уже другие типы ошибок.
KEFIR написал:
если конечно код написан не обезъяной ... Если программа написана нормально ... если написана идиотом ... написан человеком из индии
Кончай заниматься софизмами. Эта дикая смесь дамского аргумента и ненастоящего шотландца уже надоедает.
KEFIR написал:
Про разработку в команадах вообще не вижу никаких дополнительных проблем у JS по сравнению, наприер, с java.
Java, как платформа в целом, отлично приспособлена для работы в команде.
bsivko написал:верификацию на определенные типы ошибок...
А это уже другие типы ошибок.
Ну окей, в JS есть риск пропустить ошибки связанные с типами данных (которые в хорошо написанном и продуманном коде не приведут к фатальным последствиям), в C/C++ есть шанс выстрелить себе в ногу 1000 и 1 способом. И что же? Все оргументы о хреновости JS у вас тут крутятся только вокрук этой вот динамической типизации. Тогда C/C++ это язык, которым должно быть запрещено пользоваться вообще (без лицензии, как с оружием) :) И подобных "недостатков" в любом языке можно найти сколько угодно. Выбираем любую особенность языка, придумываем потенциальные ошибки, которыми эта особенность чревата, готов - язык хреновый.
KEFIR написал:
Все оргументы о хреновости JS у вас тут крутятся только вокрук этой вот динамической типизации.
По большому счету скажу так.
Если язык используется и развивается, то он плохим быть не может. Объективно и по определению. Т.е. кто-то его использует, и это востребовано. Если субъективно, то конкретно мне в данном случае, он не нравится, и по-моему, я достаточно объяснил почему. В частности, для ряда своих задач я использую ruby. Например, написать на нем http-сервер это буквально 5 строчек. На плюсах это вырождается в пару страниц с подключением тяжелых библиотек.
Вместе с тем, если посмотреть на JS исторически, то он обязан быть языком с динамической типизацией. Потому что в 95-м году компилировать код в браузере было бы тем ещё маразматическим решением (альтернвативой была Java, но она ушла другим путем). По той же причине сравнивать JS и C++ некорретно. Это два разных животных в соверешенно разных ореолах обитания.
Является ли JS объективно плохим языком.. Это может проявится например так, как произошло с серверными языками интернета времен CGI. Т.е. лет 15-20 назад в мире были пхп и перл. Такие же языки с тяжелой историей. Со временем им в конкуренцию появились более аккуратно спроектиированные и организованные языки-платформы ruby/python. Они успели хорошо так потеснить пхп, а перл уже даже не знаю, мне даже кажется что он уже уходит на покой или обратно в текстовый процессинг.