Литмир - Электронная Библиотека

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

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

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

2

Hello, world!

Чтобы понять, что компьютеры не могут, прежде необходимо разобраться, как они работают и с какими задачами справляются. Для этого напишем простую компьютерную программу. Начиная изучать новый язык программирования, специалист обычно пишет программу «Hello, world!». Не важно, изучаете ли вы программирование в учебном лагере, в Стэнфорде, в университете или онлайн, – вы, скорее всего, тоже ее напишете. «Hello, world!» – это отсылка к первой программе в легендарной книге Брайана Кернигана и Дениса Ричи «Язык программирования С»[6] (The C Programming Language), где читателю предлагается написать программу (с помощью языка С, разумеется), выводящую на экран эту фразу. Керниган и Ричи работали в лаборатории Bell – исследовательском центре, статус которого в индустрии сравним с Hershey в мире шоколада (AT&T Bell Labs были очень добры, пригласив меня на несколько лет на работу). Именно здесь зарождалось множество инноваций, в том числе лазер, микроволновка и Unix (Ричи помогал и в разработке Unix, и в разработке языка С). Язык назвали С потому, что до этого команда лаборатории уже изобрела язык под названием В. Все еще популярный С++ и его двоюродный брат C# – потомки языка С.

Я люблю традиции, поэтому давайте поддержим одну из них и напишем «Hello, world!». Пожалуйста, возьмите листок бумаги, ручку и напишите «Hello, world!».

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

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

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

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

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

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

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

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

Искусственный интеллект - i_001.png

В терминале вы увидите мигающий курсор. Он показывает командную строку. Компьютер интерпретирует – достаточно буквально – все, что вы в ней напишете. В общем, когда вы нажмете 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!”)

вернуться

6

Керниган Б. Ритчи Д. Язык программирования С. – М.: Вильямс, 2009.

4
{"b":"666985","o":1}