понедельник, 27 сентября 2010 г.

[prog.flame] Понравился наезд на C++ со стороны Гая Стила

Вот здесь Гай Стил (если я правильно понял авторство) забавно высказался:

As for C++–well, it reminds me of the Soviet-era labor joke: "They pretend to pay us, and we pretend to work." C++ pretends to provide an object-oriented data model, C++ programmers pretend to respect it, and everyone pretends that the code will work. The actual data model of C++ is exactly that of C, a single two-dimensional array of bits, eight by four billion, and all the syntactic sugar of C++ fundamentally cannot mask the gaping holes in its object model left by the cast operator and unconstrained address arithmetic.

Или в моем вольном переводе:

По отношению к C++ это мне напоминает шутку советских служащих: “Они делают вид, что платят нам, а мы делаем вид, что работаем.” С++ делает вид, что предоставляет объектно-ориентированную модель данных, С++ программисты делают вид, что признают это, и каждый делает вид, что код будет работать. Но настоящая модель данных С++ точно такая же, как в C – единственный двумерный массив бит, восемь на четыре миллиарда, и весь синтаксический сахар C++ совершенно не может скрыть зияющих дыр в его объектной модели, которые были проделаны операторами приведения и неконтролируемой адресной арифметикой.

Гай Стил – один из авторов языка Scheme. Принимал участие в комитетах по стандартизации нескольких языков (C, ECMAScript, Fortran, Common Lisp). А с 2005 в Sun-е он руководил разработкой языка Fortress. В общем, авторитетный в области computer science дядька.

Особенно мне понравился пассаж про “каждый делает вид, что код будет работать”. Веселуха, мля. Вокруг полно кода, который, как бы то не нравилось ученым-теоретикам, работает. И, что совсем удивительно, впечатляющий объем этого кода написан как раз на C++. Т.е. к жизни эта замечательная по своей ироничности и остроумности фраза имеет очень далекое отношение. Зато иронично и остроумно. И Гай Стил, да.

Отправить комментарий