Это экзактли то что пытались сделать разработчики C++. Что б не смог сделать то, что б это. Что бы типы правильно приводились. В итоге правила стали такими сложными что их понимают только language lawyers. И все равно реальность подсовывала постоянно случаи, когда эти правила были нафиг не кому не нужны. Например вектор константных ссылок не приводится к вектору константных ссылок на базовые классы. Безопасная логически операция, но противоречит правилам языка. А const антность в интерфейсах? Тот кто хоть раз пробовал сделеать константные интерфейсы, знает что ей начинают заражаться все вокруг, причем даже то что не хотелось бы заражать. Опять же благое намерение - сделать ограничение помогающее программисту не сделать ошибку. И даже не смотря на все правила языка, есть управление внешними ресурсами, памятью, например, где языковые средства предоставляют мало поддержки программисту. Про умнейшие мозги человечства бьющиеся над составлениями конверсий умных указателей один к другому я уже умолчу.
Вобщем мой вывод был такой - ну их к черты эти языки с костылями не позволяющими упасть. Невозможно заранее подстелить солому во всех местах. Нехорошее это дело. Перешел на динамические и не разу еще не пожалел. Разве тормоза иногда достают. Но JS шустрый весьма. Динамический язык + хорошая тестовая фрейворка для unit/integration тестов - все что надо для счастья.
Кстати я тут был на этой неделе на одной конфе посвященой одной из JS фреймфорков. Там было человек 150, наверное. Когда предложили работодателям проанонсировать вакансии, очередь выстроилась человек в 20.




Reply With Quote