Выбрать главу

Мои поздравления! Это было просто.

А «за кадром» было чуть сложнее. Вы сфокусировали внимание, взяли необходимые инструменты, чтобы реализовать свое намерение, скомандовали руке писать буквы, а также использовали другую руку или иные части вашего тела, чтобы крепко зафиксировать бумагу во время письма, – так выглядела механика процесса. Вы скомандовали своему телу выполнять пошаговый алгоритм для достижения конкретной цели.

Осталось заставить компьютер сделать то же.

Откройте текстовый редактор – это может быть все что угодно: Microsoft Word, Notes, Pages или OpenOffice – и создайте новый документ. В этом документе наберите «Hello, world!». Можете распечатать, если хотите.

Опять мои поздравления! Вы использовали новый инструмент для выполнения той же задачи: намерение, механика и т. д. Вы на волне успеха.

Следующее испытание заключается в том, чтобы заставить компьютер вывести на экран фразу «Hello, world!» немного иным образом. Мы напишем программу, которая сама выведет ее. Для этого мы используем язык программирования Python, установленный на всех компьютерах Mac. (Если вы не используете Mac, то процесс может выглядеть слегка иначе, вам нужно будет найти инструкции в интернете.) Открываем «Приложения» и видим среди прочих программу «Терминал» (см. рис. 2.1). Открываем ее.

И снова примите мои поздравления! Вы только что улучшили свои навыки владения компьютером. Сейчас вы приблизились к компьютерному «железу».

Под «железом» имеется в виду аппаратное обеспечение компьютера: чипы, транзисторы, провода и т. п. Это то, что составляет физический облик компьютера. Запуская систему, вы видите приятный пользовательский интерфейс, который как раз и обеспечивает доступ к железу компьютера. Мы воспользуемся терминалом, чтобы написать программу на языке Python, которая как раз выведет надпись «Hello, world!» на экран.

В терминале вы увидите мигающий курсор. Он показывает командную строку. Компьютер интерпретирует – достаточно буквально – все, что вы в ней напишете. В общем, когда вы нажмете Enter, компьютер попытается выполнить заданную команду. Итак, попробуем написать следующее:

python

Далее вы увидите нечто подобное:

Python 3.5.0 (default, Sep 22 2015, 12:32:59)

[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin

Type “help,” “copyright,” “credits” or “license” for more information.

>>>

Символ тройной шляпки (>>>) показывает, что вы вошли в режим интерпретации языка Python и одновременно вышли из базового интерпретатора команд. Последний использует особый тип языка программирования, язык оболочки. Соответственно, интерпретатор Python использует язык Python. В программировании, как и в естественных языках, существует множество диалектов.

Напишите следующее и нажмите Enter.

print («Hello, world!»)

Отлично! Вы только что написали компьютерную программу. И как ощущения?

Мы только что сделали одну и ту же вещь тремя разными способами. Один из них, пожалуй, был более приятным, чем прочие. Другой – быстрее и проще. Опираясь на полученный опыт, вы можете решить, какой из способов проще, а какой – быстрее. Однако принципиальный момент заключается в том, что ни один из них не лучше других. Поэтому, когда мы говорим, что делать что-либо при помощи технологий лучше, это сродни утверждению, будто написать «Hello, world!» лучше на языке Python, а не на бумаге. Не существует какой-либо принципиальной ценности в каждом из этих способов, однако их применение зависит от индивидуального опыта и последствий выбора в реальном мире. В случае с фразой «Hello, world!» ставки невысоки.

Большинство программ сложнее нашего примера, однако понимание принципа позволяет масштабировать его и применять в более комплексных случаях. Каждая программа – от сложнейших научных вычислений до новой социальной сети – пишется людьми. И каждый из них начинал программировать с «Hello, world!». Их путь к созданию сложного, изощренного программного обеспечения начинался с программ, построенных из простых блоков вроде нашего «Hello, world!». Компьютерные программы – не магия. Они созданы человеком.

Допустим, я хочу написать программу, которая бы выводила «Hello, world!» на экран десять раз. В этом случае я могу 10 раз написать команду:

print (“Hello, world!”)

print (“Hello, world!”)

Ой, нет. Я уже устала, забудем об этом. Нажимать Ctrl + P на клавиатуре еще восемь раз – слишком много нажатий кнопок. (Чтобы думать, как программист, нужно научиться быть ленивым.) Большинство программистов уверены, что печатать на клавиатуре скучно и утомительно, поэтому они стараются делать это как можно реже. Вместо перепечатывания, копирования и вставки единственной строки кода я введу оператор цикла, чтобы компьютер повторил команду 10 раз.