Используйте для работы соответствующий инструмент
Данное правило является спутником правила "Не путайте привычность с читаемостью", представленного ниже, но скорее больше касается проблем руководства. Мне часто говорят, что студентам не разрешается использовать некоторые части Си или Си++ (обычно это указатели), потому что они "нечитаемы". Обычно это правило навязывается руководителями, знающими ФОРТРАН, БЕЙСИК или какой-то другой язык, не поддерживающий указатели, ибо их не очень-то заставишь изучать Си. Вместо того, чтобы допустить, что их знания недостаточны, такие руководители будут лучше калечить своих программистов. Указатели отлично читаемы для программистов на Си.
И наоборот, я видел ситуации, где руководство требовало, чтобы программисты перешли с языка программирования типа КОБОЛ на Си, но не желало оплачивать переподготовку, необходимую для перехода. Или хуже, руководство платило за переподготовку, но не предоставляло времени, необходимого для действительного изучения материала. Переподготовка является занятием, требующим всего рабочего дня. Вы не можете одновременно выполнять "полезную" работу, а если попытаетесь, то ваши деньги будут выброшены на ветер. Так или иначе, после того, как руководители видят, что их работники не были
превращены в гуру программирования на Си++ после 3-дневного краткого курса, они реагируют, накладывая ограничения на использование некоторых частей языка. Фактически говоря "вы не можете использовать ту часть Си++, которая не похожа на язык, который мы использовали до перехода на Си++". Естественно, что будет нельзя эксплуатировать ни одну из прогрессивных особенностей языка — которые прежде всего и являются главной причиной его использования — если вы ограничите себя "простейшим" подмножеством особенностей.
Глядя на эти ограничения, мне в первую очередь интересно знать, зачем было менять КОБОЛ на Си. Принуждение программистов на языке КОБОЛ использовать Си всегда поражало меня своей большой глупостью. КОБОЛ —
великолепный язык для работы с базами данных. У него есть встроенные примитивы, упрощающие выполнение задач, которые довольно трудны для Си. Си, в конце концов, был разработан для создания операционных систем, а не систем управления базами данных. Довольно просто дополнить КОБОЛ, чтобы он поддерживал модный графический интерфейс пользователя, если это единственная причина перехода на Си.