Чтение онлайн

на главную - закладки

Жанры

Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:

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

Для

студентов основной причиной изучения какой-либо идеи, метода или главы учебника может быть простое желание получить хорошую оценку на экзамене, но должны же быть и более веские мотивы! Для людей, работающих в области разработки программного обеспечения, наиболее важной причиной изучения какой-либо идеи, метода или главы учебника может быть желание узнать нечто, что поможет ему заслужить одобрение босса, от которого зависит повышение зарплаты, продвижение по службе и увольнение, — но должны же быть и более веские мотивы! Лучше всего мы работаем, когда чувствуем, что наша работа делает мир лучше и помогает другим людям. Для задач, которые мы решаем годами (из которых, собственно, и складывается карьера профессионала), жизненно важными являются идеалы и более абстрактные идеи.

Жизнедеятельность нашей цивилизации зависит от программного обеспечения. Улучшение программного обеспечения и поиск новых областей для его применения позволит улучшить жизнь многих людей. Программирование играет в этом очень важную роль.

1.2. Программное обеспечение

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

Сколько компьютеров существует в мире? Мы не знаем; по крайней мере, миллиарды. Компьютеров в мире больше, чем людей. В 2004 году по оценкам Международного телекоммуникационного союза (International Telecommunication Union — ITU) в мире насчитывалось 772 миллиона персональных компьютеров, причем большинство компьютеров в эту категорию не входило.

Сколько компьютеров (более или менее непосредственно) вы используете каждый день? Например, в моем автомобиле установлено более тридцати компьютеров, в мобильном телефоне — два, в MP3-плеере — один и еще один в видеокамере. Кроме того, у меня есть еще ноутбук (на котором я набирал текст, который вы сейчас читаете), а также настольный компьютер. Контроллер кондиционера, который летом поддерживает комфортную температуру и влажность, также представляет собой простой компьютер. В нашем университете компьютер управляет работой эскалатора. Если вы пользуетесь современными телевизорами, то обязательно найдете в нем хотя бы один компьютер. Переходя с одной веб-страницы на другую, вы соединяетесь с десятками, а возможно, и сотнями серверов через телекоммуникационные системы, состоящие из многих тысяч компьютеров: телефонных коммутаторов, маршрутизаторов и т.д.

Нет, я не храню тридцать ноутбуков на заднем сиденье своего автомобиля! Дело в том, что большинство компьютеров выглядят совсем не так, как мы привыкли (с дисплеем, клавиатурой, мышью и т.д.); они просто являются небольшим устройством, встроенным в используемое оборудование. Итак, в моем автомобиле нет ничего похожего на типичный компьютер, нет даже экрана для изображения карты и указания направления движения (хотя такие устройства весьма популярны). Однако двигатель моего автомобиля содержит несколько компьютеров, например, управляющих впрыскиванием топлива и контролирующих его температуру. По крайней мере, еще один компьютер встроен в рулевой механизм, в радиосистему и систему безопасности. Я подозреваю даже, что система, открывающая и закрывающая окна, управляется компьютером. В более современные автомобили встроены компьютеры, которые непрерывно контролируют даже давление в шинах.

От скольких компьютеров вы зависите на протяжении дня? Если вы живете в большом городе, то для того чтобы получить еду, кто-то должен совершить небольшие чудеса, связанные с планированием, транспортировкой и хранением продуктов. Разумеется, управление сетями распределения продуктов компьютеризовано, как и работа любых коммуникационных систем, требующих согласованной работы. Современные фермы также компьютеризованы; на них можно найти компьютеры, используемые как в хлеву, так и в бухгалтерии (для учета возраста,

состояния здоровья коров, надоев и т.д.). Фермеры все шире используют компьютеры для делопроизводства, причем количество отчетов, которые необходимо отправлять в разные правительственные агентства, приводит их в отчаянье. О том, что происходит в мире, вы прочтете в газете; разумеется, статья в этой газете будет набрана на компьютерах, сверстана на компьютерах и напечатана на компьютеризованном оборудовании — часто после передачи в типографию в электронном виде. Если вам потребуется связь с удаленным компьютером, то трафик будет управляться компьютерами, которые попытаются (как правило, тщетно) избежать узких мест. Вы предпочитаете ездить на поезде? Этот поезд тоже будет компьютеризован; некоторые из поездов даже ездят без помощи машинистов, причем большинство бортовых систем поезда (объявления по радио, торможение и продажа билетов) состоит из множества компьютеров. Современную индустрию развлечений (музыку, фильмы, телевидение, театрализованные представления) тоже невозможно представить без использования компьютеров. Даже художественные фильмы производятся с массовым применением компьютеров; музыкальные произведения и фотографии также все чаще основаны на цифровых технологиях (т.е. создаются с помощью компьютеров) как при записи, так и при доставке. Если вы заболеете, то все анализы доктор проведет с помощью компьютеров, записи в медицинских книжках будут внесены в электронном виде, а большинство медицинского оборудования в больницах окажется компьютеризованным. Если вы не живете в лесной избушке без доступа к электричеству, то используете электроэнергию. Нефть обнаруживается, извлекается и транспортируется по системе трубопроводов, управляемых компьютерами на каждом этапе этого процесса: от погружения бура в землю до подачи топлива на местную насосную станцию. Если вы платите за бензин с помощью кредитной карточки, то снова задействуете огромное количество компьютеров. То же самое можно сказать о добыче и транспортировке угля, газа, а также солнечной и ветряной энергии.

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

В заключение отметим, что исследования — т.е. собственно наука — в целом основаны на использовании компьютеров. Телескопы, открывающие секреты далеких звезд, невозможно спроектировать, построить и эксплуатировать без помощи компьютеров, а огромные массивы данных, которые они производят, невозможно проанализировать и понять без компьютерной обработки. Отдельные биологические исследования иногда способны обойтись без широкого использования компьютеров (разумеется, если не учитывать фотоаппараты, устройства хранения данных, телефоны и т.д.), но данные все же необходимо как-то хранить, анализировать, сравнивать с компьютерными моделями и передавать другим ученым. Еще несколько лет назад невозможно было представить, насколько широко будут использоваться компьютеры в современной химии и биологии — включая медицинские исследования. Компьютеры смогли расшифровать геном человека. Точнее говоря, этот геном был расшифрован людьми с помощью компьютеров. Во всех этих примерах компьютер кардинально облегчает работу.

На каждом из упомянутых компьютеров установлено программное обеспечение. Без него компьютеры представляют собой просто дорогую груду кремния, металла и пластика, которую можно использовать лишь в качестве груза, якоря или обогревателя воздуха. Любое программное обеспечение создается людьми. Каждая строка программы, выполняемой компьютером, имеет определенный смысл. Очень странно, что все это работает! Ведь мы говорим о миллиардах строк программ, написанных на сотнях языков программирования. Для того чтобы все это правильно работало, люди затратили массу усилий и применили множество знаний.

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

1.3. Люди

Поделиться:
Популярные книги

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Лучший из худший 3

Дашко Дмитрий
3. Лучший из худших
Фантастика:
городское фэнтези
попаданцы
аниме
6.00
рейтинг книги
Лучший из худший 3

Штурмовик из будущего 3

Политов Дмитрий Валерьевич
3. Небо в огне
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Штурмовик из будущего 3

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье