Шрифт:
2
Hello, world!
Чтобы понять, что компьютеры не могут, прежде необходимо разобраться, как они работают и с какими задачами справляются. Для этого напишем простую компьютерную программу. Начиная изучать новый язык программирования, специалист обычно пишет программу «Hello, world!». Не важно, изучаете ли вы программирование в учебном лагере, в Стэнфорде, в университете или онлайн, – вы, скорее всего, тоже ее напишете. «Hello, world!» – это отсылка к первой программе в легендарной книге Брайана Кернигана и Дениса Ричи «Язык программирования С» [6] (The C Programming Language), где читателю предлагается написать программу (с помощью языка С, разумеется), выводящую на экран эту фразу. Керниган и Ричи работали в лаборатории Bell – исследовательском центре, статус которого в индустрии сравним с Hershey в мире шоколада (AT&T Bell Labs были очень добры, пригласив меня на несколько лет на работу). Именно здесь зарождалось множество инноваций, в том числе лазер, микроволновка и Unix (Ричи помогал и в разработке Unix, и в разработке языка С). Язык назвали С потому, что до этого команда лаборатории уже изобрела язык под названием В. Все еще популярный С++ и его двоюродный брат C# – потомки языка С.
6
Керниган Б. Ритчи Д. Язык программирования С. – М.: Вильямс, 2009.
Я люблю традиции, поэтому давайте поддержим одну из них и напишем «Hello, world!». Пожалуйста, возьмите листок бумаги, ручку и напишите «Hello, world!».
Мои поздравления! Это было просто.
А «за кадром» было чуть сложнее. Вы сфокусировали внимание, взяли необходимые инструменты, чтобы реализовать свое намерение, скомандовали руке писать буквы, а также использовали другую руку или иные части вашего тела, чтобы крепко зафиксировать бумагу во время письма, – так выглядела механика процесса. Вы скомандовали своему телу выполнять пошаговый алгоритм для достижения конкретной цели.
Осталось заставить компьютер сделать то же.
Откройте текстовый редактор – это может быть все что угодно: Microsoft Word, Notes, Pages или OpenOffice – и создайте новый документ. В этом документе наберите «Hello, world!». Можете распечатать, если хотите.
Опять мои поздравления! Вы использовали новый инструмент для выполнения той же задачи: намерение, механика и т. д. Вы на волне успеха.
Следующее испытание заключается в том, чтобы заставить компьютер вывести на экран фразу «Hello, world!» немного иным образом. Мы напишем программу, которая сама выведет ее. Для этого мы используем язык программирования Python, установленный на всех компьютерах Mac. (Если вы не используете Mac, то процесс может выглядеть слегка иначе, вам нужно будет найти инструкции в интернете.) Открываем «Приложения» и видим среди прочих программу «Терминал» (см. рис. 2.1). Открываем ее.
И снова примите мои поздравления! Вы только что улучшили свои навыки владения компьютером. Сейчас вы приблизились к компьютерному «железу».
Под «железом» имеется в виду аппаратное обеспечение компьютера: чипы, транзисторы, провода и т. п. Это то, что составляет физический облик компьютера. Запуская систему, вы видите приятный пользовательский интерфейс, который как раз и обеспечивает доступ к железу компьютера. Мы воспользуемся терминалом, чтобы написать программу на языке Python, которая как раз выведет надпись «Hello, world!» на экран.
В терминале вы увидите мигающий курсор. Он показывает командную строку. Компьютер интерпретирует – достаточно буквально – все, что вы в ней напишете. В общем, когда вы нажмете Enter, компьютер попытается выполнить заданную команду. Итак, попробуем написать следующее:
Далее вы увидите нечто подобное:
Символ тройной шляпки (>>>) показывает, что вы вошли в режим интерпретации языка Python и одновременно вышли из базового интерпретатора команд. Последний использует особый тип языка программирования, язык оболочки. Соответственно, интерпретатор Python использует язык Python. В программировании, как и в естественных языках, существует множество диалектов.
Напишите следующее и нажмите Enter.
Отлично! Вы только что написали компьютерную программу. И как ощущения?
Мы только что сделали одну и ту же вещь тремя разными способами. Один из них, пожалуй, был более приятным, чем прочие. Другой – быстрее и проще. Опираясь на полученный опыт, вы можете решить, какой из способов проще, а какой – быстрее. Однако принципиальный момент заключается в том, что ни один из них не лучше других. Поэтому, когда мы говорим, что делать что-либо при помощи технологий лучше, это сродни утверждению, будто написать «Hello, world!» лучше на языке Python, а не на бумаге. Не существует какой-либо принципиальной ценности в каждом из этих способов, однако их применение зависит от индивидуального опыта и последствий выбора в реальном мире. В случае с фразой «Hello, world!» ставки невысоки.
Большинство программ сложнее нашего примера, однако понимание принципа позволяет масштабировать его и применять в более комплексных случаях. Каждая программа – от сложнейших научных вычислений до новой социальной сети – пишется людьми. И каждый из них начинал программировать с «Hello, world!». Их путь к созданию сложного, изощренного программного обеспечения начинался с программ, построенных из простых блоков вроде нашего «Hello, world!». Компьютерные программы – не магия. Они созданы человеком.