Главная arrow С++ (часть 4) arrow Управляемость

Управляемость

Существуют две конкурирующие точки зрения на языки программирования. Первая утверждает, что следует защищать программиста от возможных проблем, исключая из языка такие особенности, которые могут их вызвать в первую очередь. Хотя это звучит обнадеживающе, но в результате приводит к тому, что мощные элементы языка, способные в некоторых ситуациях создавать проблемы, ограничиваются, выхолащиваются или целиком удаляются из него. Два примера таких элементов — указатели и явное распределение памяти. Указатели считаются рискованным средством, потому что они часто некорректно используются начинающими программистами и могут (в некоторых случаях) применяться для пробивания бреши в барьерах системы безопасности. Явное распределение памяти (например, с помощью операций new и delete) опасно, потому что программист может необдуманно выделять большие блоки памяти или забыть освободить память, когда она ему больше не нужна, в результате чего происходит утечка памяти (memory leak). Хотя обе функциональные возможности сопряжены с риском, они предоставляют программисту оперативный контроль (detailed control) и возможность создавать высокоэффективный код. К счастью, С++ не относится к числу сторонников описываемого подхода.
Вторая точка зрения — та, которой придерживается С++, утверждает, что программист — хозяин ситуации. Это значит, что он управляет и контролирует. Язык не должен мешать вам создавать плохие программы. Скорее, первостепенная задача языка — предоставить специалисту быструю, ненавязчивую рабочую среду. Если вы хороший программист, ваша работа продемонстрирует это. Если вы программируете плохо, это тоже найдет отражение в вашей работе. По сути, С++ дает вам мощное рабочее орудие и уступает дорогу. У программиста на С++ никогда не возникает необходимости "бороться" с языком.
Очевидно, что большинство программистов предпочитают философию С++.