четверг, 1 октября 2009 г.

Google С++ style guide

Бродя в сети, обнаружил перевод этого эпохального документа на русский язык.
Впрочем, лично я бы предпочел все же изучать оригинал, благо там все более чем понятно, хотя с очень многоми вещами там можно поспорить.

Идея документа сводится к набору разумных практик и попыток жесткого самоограничения в выразительных средствах языка, вплоть до отказа от многих базовых конструкций, без которых, честного говоря, я себе разработку сейчас, в 2009, представляю слабо.

Под запрет попадает RTTI (соответственно, и dynamic_cast), исключения, множественное наследование, перегрузка операторов.
Зафиксирован отказ от потоков STL, от очень значительной части библиотек из состава Boost...

Возникает де-жа-вю от ARM, но все еще более сурово :-)

В принципе, причины таких ограничений достаточно очевидны - это и огромная кодовая база библиотек, которые не способны пропускать исключения сквозь свой код, и наличие библиотек на С, которые потенциально могут вызывать какие-то callback'и из С++, и, в среднем, достаточно умеренная квалификация большой части волонтеров, работающих над Open Source проектами под эгидой Google (С++ - язык громоздкий и сложный, эффективный поиск ошибок в программе требует довольно серьезного опыта работы).

Понять это все можно, вот только принимать отчего-то не хочется...
Короче, не зря меня в свое время в Google не взяли :-)

Комментариев нет: