Правила программирования на С и С++. Главы 7-8
Страница 12. Библиотеки классов С обычно не могут быть использованы неискушенными пользователями


 

92. Библиотеки классов С++ обычно не могут быть использованы неискушенными пользователями.

Одна большая ложь о С++, которая распространяется продавцами с острыми зубами и зачесанными назад волосами, сводится к тому, что ваши второсортные программисты на С могут использовать библиотеки классов, созданные гуру, без реальной необходимости знать С++. К несчастью, любая, кроме самой тривиальной, библиотека классов будет использовать сложные для понимания разделы С++ типа наследования и виртуальных функций - по крайней мере, она должна их использовать, если спроектирована как следует. Библиотека, не использующая эти свойства С++, могла бы запросто быть реализована на С. Пользователи библиотеки будут должны по необходимости довольно хорошо знать С++.

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

Программная индустрия сталкивалась с этой проблемой и раньше, когда коллективы разработчиков были вынуждены переходить с языка КОБОЛ на С, но при этом не была обеспечена необходимая тренировка программистов, позволяющая им использовать С правильно. После этого в качестве урока осталась масса несопровождаемого, переполненного ошибками кода на С. С++ показывает все признаки еще более серьезной проблемы, так как руководители часто делают ставку на популярность С++, в действительности не зная, во что они впутываются. Масса кишащего ошибками кода на С++ пишется ежедневно людьми, которые даже не знают язык в степени, достаточной, чтобы понять, что они делают что-то неправильно.

 
« Предыдущая статья   Следующая статья »