Quote Originally Posted by crazy-mike View Post
Всё проще - там нет средств , которые принудительно мешают делать глупости. "Хороший язык программирования" должен изначально ограничивать свободу делать ошибки по максимуму. Соответственно JavaScript - "плохой язык программирования" , поскольку на нём можно ночью нарисовать то , что потом днём будет очень трудно понять , а как оно вообще работает.
Это экзактли то что пытались сделать разработчики C++. Что б не смог сделать то, что б это. Что бы типы правильно приводились. В итоге правила стали такими сложными что их понимают только language lawyers. И все равно реальность подсовывала постоянно случаи, когда эти правила были нафиг не кому не нужны. Например вектор константных ссылок не приводится к вектору константных ссылок на базовые классы. Безопасная логически операция, но противоречит правилам языка. А const антность в интерфейсах? Тот кто хоть раз пробовал сделеать константные интерфейсы, знает что ей начинают заражаться все вокруг, причем даже то что не хотелось бы заражать. Опять же благое намерение - сделать ограничение помогающее программисту не сделать ошибку. И даже не смотря на все правила языка, есть управление внешними ресурсами, памятью, например, где языковые средства предоставляют мало поддержки программисту. Про умнейшие мозги человечства бьющиеся над составлениями конверсий умных указателей один к другому я уже умолчу.
Вобщем мой вывод был такой - ну их к черты эти языки с костылями не позволяющими упасть. Невозможно заранее подстелить солому во всех местах. Нехорошее это дело. Перешел на динамические и не разу еще не пожалел. Разве тормоза иногда достают. Но JS шустрый весьма. Динамический язык + хорошая тестовая фрейворка для unit/integration тестов - все что надо для счастья.

Кстати я тут был на этой неделе на одной конфе посвященой одной из JS фреймфорков. Там было человек 150, наверное. Когда предложили работодателям проанонсировать вакансии, очередь выстроилась человек в 20.