17
1. Вы сможете разрабатывать более эффективные алгоритмы. Многие языки
предоставляют возможности, которые при правильном использовании при
носят программисту пользу, а при неправильном могут привести к большим
затратам компьютерного времени или к логическим ошибкам в программе,
на исправление которых потребуется немало сил и времени. Даже програм
мист, пользующийся какимто определенным языком в течение многих лет,
может не понимать всех его возможностей. Типичным примером является
рекурсия — полезное средство программирования, которое при правильном
использовании позволяет осуществлять непосредственную реализацию эле
гантных и эффективных алгоритмов. Однако неправильное ее использова
ние может привести к катастрофическому увеличению времени выполне
ния программы. Программист, ничего не знающий о проблемах разработки
и трудностях реализации рекурсии, скорее всего, будет избегать этой загадоч
ной конструкции, в то время как элементарное знание ее основных принци
пов и методов реализации позволит программисту оценить относительную
стоимость рекурсии в каждом конкретном языке и определить, оправданно
ли ее применение в конкретной ситуации. В литературе постоянно появля
ются описания новых методов программирования. Для наилучшего исполь
зования концепций объектноориентированного, логического или парал
лельного программирования необходимо понимание конкретных языков,
в которых эти концепции реализованы. Новые технологии, такие как Ин
тернет (Internet) и Всемирная паутина (World Wide Web), в корне измени
ли природу программирования. Создание методов программирования, опти
мально отвечающих этим новым условиям, требует достаточно глубокого
понимания существа языков программирования.
2. Вы сможете более эффективно использовать тот язык программирования,
которым обычно пользуетесь. Поняв, как в используемом вами языке реали
зованы те или иные возможности, вы сможете писать значительно более
эффективные программы. Например, понимание того, как создаются масси
вы, строки, списки или записи и как они обрабатываются в данном языке,
знание подробностей реализации рекурсии или понимание того, как строят
ся классы объектов, позволит вам создавать с помощью этих компонентов
более эффективные программы.
3. Вы пополните набор полезных программных конструкций. Роль языка в мыш
лении двояка, так как язык одновременно и помогает мышлению, и ограни
чивает его. Действительно, люди используют язык для выражения мыслей,
но язык до такой степени структурирует мышление, что человеку трудно
мыслить о чемто, что не имеет непосредственного словесного выражения.
Знание только одного языка программирования налагает подобное ограни
чение. При поиске способов представления данных и методов их обработки,
подходящих для решения некоторой задачи, человек думает только о струк
турах, которые непосредственно реализованы в знакомом ему языке. Изу
чая конструкции, имеющиеся в разных языках, программист расширяет свой
словарь. Понимание способов реализации конструкций в разных языках
особенно важно, поскольку, чтобы использовать некую конструкцию в язы
ке, в котором она не представлена непосредственно, программист должен
1.1. Зачем изучать языки программирования?