"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора

новые операции и т.д., само по себе не увеличивает расходов по
времени выполнения и памяти.
Особое внимание, уделенное при разработке C++ структуре,
отразилось на возрастании масштаба программ, написанных со времени
разработки C. Маленькую программу (меньше 1000 строк) вы можете
заставить работать с помощью грубой силы, даже нарушая все правила
хорошего стиля. Для программ больших размеров это не совсем так.
Если программа в 10 000 строк имеет плохую структуру, то вы
обнаружите, что новые ошибки появляются так же быстро, как
удаляются старые. C++ был разработан так, чтобы дать возможность
разумным образом структурировать большие программы таким образом,
чтобы для одного человека не было непомерным справляться с
программами в 25 000 строк. Существуют программы гораздо больших
размеров, однако те, которые работают, в целом, как оказывается,
состоят из большого числа почти независимых частей, каждая из
которых намного ниже указанных пределов. Естественно, сложность

- стр 15 -

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

Философские замечания

Язык программирования служит двум связанным между собой целям: он
дает программисту аппарат для задания действий, которые должны быть
выполнены, и формирует концепции, которыми пользуется программист,
размышляя о том, что делать. Первой цели идеально отвечает язык,