Шрифт:
Интервал:
Закладка:
Затем, в главе 7, я представлю принцип работы МО и покажу, как создать такую структуру, которая способна предсказать, кто из пассажиров «Титаника» выжил бы в известном крушении. Понимание принципа работы МО позволит разобраться в примере из главы 8, где я окажусь за рулем автономной машины и расскажу, почему беспилотный школьный автобус обязательно попадет в аварию. Впервые в жизни я села в беспилотный автомобиль в 2007 г., тогда компьютерный «водитель» чуть не убил меня на стоянке фирмы «Боинг». С тех пор технологии прошли долгий путь, однако принципиально так и не стали работать так же хорошо, как человеческий мозг. Так что в ближайшее время киборгизированного будущего не наступит. Я также обращу внимание на то, как люди представляют технологии, заменяющие человека, и проанализирую, почему так сложно принять тот факт, что технологии не настолько эффективны, как мы того хотим.
Глава 9 станет плацдармом для размышлений о том, почему популярно не значит хорошо и почему это заблуждение – подкрепляемое машинным обучением – по-настоящему опасно. Главы 10 и 11 – очередные программистские приключения, где я создаю пицце-расчетную компанию на междугородном хакатон-автобусе (популярно, но не очень хорошо) и пытаюсь исправить финансовую систему США к президентским выборам 2016 г. (хорошо, но не слишком популярно). В обоих случаях я создаю софт, который работает не так, как изначально задумывалось, и его крах весьма поучителен.
С помощью этой книги я хочу воодушевить людей. Я хочу, чтобы они поняли принципы работы компьютера и перестали бояться программ. Мы все когда-то были в такой ситуации. Все чувствовали беспомощность и расстраивались перед, казалось бы, простой задачей, которая по факту становится невыполнимой из-за технологического интерфейса. Даже мои студенты, которых порой называют «цифровое поколение», иногда считают, что цифровой мир сбивает с толку, пугает и недостаточно проработан.
Полагаясь на технологии при решении сложных социальных задач, мы, соответственно, полностью рассчитываем на искусственную неразумность. Фактически именно компьютер, а не человек, и есть эта искусственная неразумность. Компьютеру все равно, что делает он или пользователь. Он всего лишь выполняет команды так хорошо, как только может, затем ждет следующую команду. У него нет сознания, нет души.
Человечество разумно. В то же время умные и доброжелательные люди действуют как техношовинисты просто потому, что не замечают негативных последствий принятия решений компьютерами либо они крайне привержены идее использования компьютеров повсеместно (и даже при выполнении задач, к которым компьютеры категорически не приспособлены).
Мне кажется, мы способны на большее. Как только мы поймем, как действительно работают компьютеры, мы сможем предъявлять более высокие требования к качеству технологий. Вместо того чтобы мириться с системами, которые только лишь обещают улучшения, а на самом деле все усложняют, мы можем требовать такие системы, которые в действительности все делают дешевле, быстрее и лучше. Мы можем научиться принимать качественно иные решения о следствиях развития технологий так, чтобы неосознанно не навредить сложным социальным системам. И мы можем почувствовать в себе силы сказать нет необязательным технологиям, чтобы начать жить более качественной жизнью и наслаждаться тем, как технологии обогащают наш мир.
Чтобы понять, что компьютеры не могут, прежде необходимо разобраться, как они работают и с какими задачами справляются. Для этого напишем простую компьютерную программу. Начиная изучать новый язык программирования, специалист обычно пишет программу «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!» на экран.
В терминале вы увидите мигающий курсор. Он показывает командную строку. Компьютер интерпретирует – достаточно буквально – все, что вы в ней напишете. В общем, когда вы нажмете Enter, компьютер попытается выполнить заданную команду. Итак, попробуем написать следующее: