Ну, там перечисленные интересные спорные пункты. Как самый первый:
The value of a pointer to an object whose lifetime has ended remains the same as it was when the object was alive.
Как это в C меняется значение указателя на объект (на что? на некоторую типированную память?)? Мы назначаем новое значение указателю? Немутабельные указатели?
Так и есть. И такая дырявая хрень лежит в основе C++, который пытается всеми правдами и неправдами (путём нафигачивания абстракций поверх этих дыр) доказать, что он хороший и годный язык.
Я, честно, не понимаю серьёзных инженеров переживающих по поводу несовершенств именно от мощи языка программирования, которому всё можно. Да, надо мощного специалиста, соотвественно. Ну и не делайте UB во всю свою инженерскую мощь! Вам надо подбросить идеек, как? Начнём с инициализации/деинициализации, чтобы не пропустить никогда, вот RAII. Вы до сих пор не прониклись идеей RAII, и относите свои проблемы языку?
А качество абстракций это вовсе другой вопрос. Ко мне вернулась библиотечка Qt, с которой был роман в далёком 2007-м :-p, нравятся абстракции, и программирование на их базе совсем не то, что ATL/MFC или whatever, или что я видел внутрях одной очень серьёзной корпорации. А ведь Qt по сути продукт коллективного моска.
Ты всё перепутал или не дочитал/не осмыслил текст. Тут речь не о мощи, как о проблеме, а о хрупкости, как о проблеме. В современном языке программирования её не должно быть. Вот, ассемблерная программа не сломается вдруг так часто, как сломается сишная/плюсовая от простой перекомпиляции другим компилятором или новой версией того же. В больших проектах это очень важно, т.к. в них выше вероятность, что код окажется в каких-то местах достаточно хрупким для «поломки» компилятором. Хуже того, вещественная арифметика слабо специфицирована, и в определённых задачах ты будешь то и дело упираться в то, что компилятор решил иначе оптимизировать арифметику, что значит, что у тебя результаты будут плавать вместе с плавающей точкой, если ты не примешь экстренных мер для упразднения компиляторных вольностей. Язык таким образом становится всё более нишевым, т.к. вхождение в него становится всё более сложным и долгим, по сравнению с другими языками, плюс в нём продолжают накручивать абстракции, делая сам язык ещё большим, ещё более сложным, и ещё
( ... )
Comments 21
The value of a pointer to an object whose lifetime has ended remains the same as it was when the object was alive.
Как это в C меняется значение указателя на объект (на что? на некоторую типированную память?)? Мы назначаем новое значение указателю? Немутабельные указатели?
Reply
Reply
Reply
Reply
А качество абстракций это вовсе другой вопрос. Ко мне вернулась библиотечка Qt, с которой был роман в далёком 2007-м :-p, нравятся абстракции, и программирование на их базе совсем не то, что ATL/MFC или whatever, или что я видел внутрях одной очень серьёзной корпорации. А ведь Qt по сути продукт коллективного моска.
Reply
Reply
Leave a comment