Leave a comment

Comments 21

fatoff December 23 2014, 16:16:15 UTC
Ну, там перечисленные интересные спорные пункты. Как самый первый:

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

archaicos December 23 2014, 21:11:29 UTC
Я с трудом могу себе такое предствить как дело рук компилятора, но у тебя же может быть интерпретатор, делающий такие фокусы.

Reply


morfizm December 23 2014, 22:11:09 UTC
Ужос. После "...produces an unspecified result." я дальше не читал. В undefined behavior нет ничего дружественного.

Reply

archaicos December 23 2014, 22:22:52 UTC
Так и есть. И такая дырявая хрень лежит в основе C++, который пытается всеми правдами и неправдами (путём нафигачивания абстракций поверх этих дыр) доказать, что он хороший и годный язык.

Reply

fatoff December 24 2014, 01:11:20 UTC
Я, честно, не понимаю серьёзных инженеров переживающих по поводу несовершенств именно от мощи языка программирования, которому всё можно. Да, надо мощного специалиста, соотвественно. Ну и не делайте UB во всю свою инженерскую мощь! Вам надо подбросить идеек, как? Начнём с инициализации/деинициализации, чтобы не пропустить никогда, вот RAII. Вы до сих пор не прониклись идеей RAII, и относите свои проблемы языку?

А качество абстракций это вовсе другой вопрос. Ко мне вернулась библиотечка Qt, с которой был роман в далёком 2007-м :-p, нравятся абстракции, и программирование на их базе совсем не то, что ATL/MFC или whatever, или что я видел внутрях одной очень серьёзной корпорации. А ведь Qt по сути продукт коллективного моска.

Reply

archaicos December 24 2014, 10:47:35 UTC
Ты всё перепутал или не дочитал/не осмыслил текст. Тут речь не о мощи, как о проблеме, а о хрупкости, как о проблеме. В современном языке программирования её не должно быть. Вот, ассемблерная программа не сломается вдруг так часто, как сломается сишная/плюсовая от простой перекомпиляции другим компилятором или новой версией того же. В больших проектах это очень важно, т.к. в них выше вероятность, что код окажется в каких-то местах достаточно хрупким для «поломки» компилятором. Хуже того, вещественная арифметика слабо специфицирована, и в определённых задачах ты будешь то и дело упираться в то, что компилятор решил иначе оптимизировать арифметику, что значит, что у тебя результаты будут плавать вместе с плавающей точкой, если ты не примешь экстренных мер для упразднения компиляторных вольностей. Язык таким образом становится всё более нишевым, т.к. вхождение в него становится всё более сложным и долгим, по сравнению с другими языками, плюс в нём продолжают накручивать абстракции, делая сам язык ещё большим, ещё более сложным, и ещё ( ... )

Reply


Leave a comment

Up