Служба 911, слушаю.
Служба 911, что случилось?
Служба 911, слушаю вас.
Служба 911, что?..
Служба спасения 911 внезапно прекратила работу 9 апреля 2014 года
для миллионов граждан на всей территории США.
Отключение продлилось больше шести часов.
Свыше 6000 звонков не были обработаны.
Источник проблемы отследили до компьютера
в центре обработки вызовов в Энглвуде, Колорадо.
Это была простая ошибка кодирования.
Кодировавшие компьютер
установили верхний предел звонков, который он может обработать.
Они сочли, что этот предел никогда не будет достигнут.
Но в ту ночь 2014 года это случилось.
Компьютер действовал по заложенной схеме.
Достигнув предела, перестал обрабатывать звонки.
Проблема была не в компьютере,
не в ошибке кода.
Проблема была в кодировании.
В алгоритме принятия решения, используемом для общения
с компьютером.
Такая власть подразумевает большую этическую ответственность.
Это ни с чем не сравнить. Это ничем не заменить.
Так же, как строители решают,
какой будет ваша жизнь в городе,
код контролирует нашу жизнь онлайн. То есть нашу жизнь в целом.
Не только используя Интернет,
но и когда мы звоним в службу спасения
или идем к врачу.
Или садимся в машину.
В нашей жизни многое зависит от кода.
Однако лишь 0,33% населения Земли умеет писать коды.
Для подавляющего большинства это тайна за семью печатями.
Но это можно исправить.
Итак, что же такое кодирование?
И каков новый мир, что мы строим с его помощью?
ОРИГИНАЛЬНЫЙ ДОКУМЕНТАЛЬНЫЙ СЕРИАЛ NETFLIX
Компьютер.
Набор инновационной электроники,
созданной человеком.
Дело не в том, что у нас нет нужных машин для решения проблем,
а в нехватке нужных описаний того, как их решить.
Когда мы слышим «кодирование», думаем, что это очень сложно.
Очень важно помнить, что всё, что есть в вашем компьютере,
было создано таким же как вы человеком.
КОДИРОВАНИЕ
Допустим, нужно объяснить инопланетянину в чём важность кода.
Что это такое.
Скажу ему так:
«Мы живем на планете Земля. Полвека назад небольшая группа людей
начала создавать другую планету.
Но не в реальности. Виртуальную планету.
Оглянитесь на улице. Видите, все идут склонившись
и уткнувшись в телефоны?
Они на другой планете.
Вот что такое код.
Кирпичики этого нового мира».
Ткацкий станок — предшественник всех компьютеров и смартфонов на Земле.
Он был изобретен в 1804 году.
Перфокарты — революционное изобретение.
Отверстия в перфокарте позволяют пройти лишь определенным иглам.
Тысячи отверстий на сотнях перфокарт
позволяли создавать более сложные узоры, чем раньше.
В Европе стали популярны замысловатые платки.
Вытканные узоры были столь сложны, что напоминали рисунки.
Как этот портрет изобретателя станка.
До этого отдельные нити выбирались вручную помощниками ткачей.
Вычисления тоже делали вручную.
Так называемые «вычислители».
Все вычисления делали люди.
Самые лучшие счетные приборы
выполняли лишь один вид вычислений.
Например, счёты для сложения и вычитания.
Британский математик Чарлз Бэббидж хотел создать машину,
способную решить любую задачу,
которую вы выберете. Вернее, запрограммируете.
Он задумал «Аналитическую машину».
Эта идея обеспечила ему место в истории.
Первый, кому пришла идея создания компьютеров, был Бэббидж —
очень эксцентричный британский изобретатель.
Бэббидж задумал, как это будет работать.
У него дома висела репродукция этой картины.
В Аналитической машине Бэббиджа, как и в станке Жаккара,
были детали — аппаратная часть.
Как и в ткацком станке,
аппаратная часть получала инструкции в форме перфокарт с отверстиями.
Через них проходили иглы.
Если отверстия не было, иглы отталкивались назад.
Так запускалась цепь механических вычислений.
Перфокарты с отверстиями —
это программы.
Бэббидж не закончил работу над Аналитической машиной.
Но молодая женщина, работавшая с ним, поняла, что значение этого изобретения
выходит за рамки математики.
Ада Байрон, графиня Лавлейс, писала:
«...это вышло за границы арифметики, когда появилась
идея применения перфокарт».
Она видела то же, что и Жаккар:
отверстия могут выражать не только числа.
Это может быть узор,
музыка,
или целые предложения.
Это что-то вроде азбуки Морзе.
В азбуке Морзе каждая буква выражена набором из лишь двух знаков.
То есть
она двоична.
С помощью этих сигналов мы можем сказать что угодно.
Например, сигнал бедствия, отправленный с «Титаника» в 1912 году.
Аббревиатура «SOS» никак не расшифровывается.
Просто его очень легко отправлять с помощью азбуки Морзе.
Каждая буква этого сигнала может быть выражена как комбинация
нулей и единиц.
Выглядит знакомо?
Это двоичный код.
Это связующее звено между машинами и человеческим языком.
Каждый ноль и единица — это бинарное число или «бит».
Это атомы современных компьютерных систем.
Они знакомы вам под другим именем:
восемь бит равны одному байту.
Например, это фото на вашем компьютере занимает 1,1 мегабайт.
Это 8 800 000 единиц и нулей.
Точки и тире азбуки Морзе — это способ записи информации.
Единицы и нули двоичного кода используются для записи того,
что происходит в современном компьютере:
есть заряд, нет заряда.
Это простая электрическая цепь.
Представьте, что миллионы цепей работают вместе.
Это современный компьютер.
В электрической цепи это бит.
Лампочка отключена? Ноль.
Включена? Единица.
Компьютеры понимают лишь электричество.
Поэтому всё, что делают программисты,
по сути, —
лишь последовательность зарядов и их отсутствия.
Это работает, когда заряды, собранные в правильной последовательности,
имеют определенную логику.
По сути, логика — это предсказуемая последовательность фактов или событий.
Например, замкнуть выключатель.
А потом вот этот, чтобы зазвонил звонок.
Специалисты называют это «логическая схема И».
Или логический вентиль.
Попробуем сделать это и не прожечь дыру в столе.
В вентиле «И» обе цепи должны быть замкнуты,
чтобы загорелась лампочка.
Еще есть вентиль «ИЛИ»,
когда лампочка загорается, если замкнута лишь одна цепь.
Возможен другой вариант.
Если замкнута одна из цепей, тогда включается лампочка.
Такое утверждение «если, тогда» —
это алгоритм.
В современной культуре слово алгоритм очень неоднозначно.
Мы видели это раньше, когда алгоритмы слетели с катушек.
Для большинства работа алгоритмов — своего рода тайна.
Да что вообще такое этот алгоритм?
Алгоритм — это всего лишь набор инструкций.
Положим, вы идете в магазин.
Можно повернуть налево, потом направо.
А можно пойти направо, а потом повернуть налево.
А можно четыре раза повернуть налево,
пройти через парк, пересечь шоссе,
и четыре раза повернуть направо.
Есть разные способы попасть в одно и то же место.
Точно так же в кодировании могут быть разные алгоритмы
для решения одной задачи.
Цель — найти самый простой и эффективный способ.
Красивый код не повторяется.
В нем есть элегантность. И сила.
Компьютеры, управляемые алгоритмами, делали лишь то, что мы им велели.
Но гораздо быстрее.
Это сделало людей гораздо могущественнее.
Когда ученые начали разрабатывать термоядерную бомбу,
изначально вычисления делали люди.
Но потом появилось вот это.
Компьютер ЭНИАК шесть недель проводил термоядерные вычисления.
Результаты способствовали вот этому.
В 1952 году впервые успешно испытали бомбу
в сотни раз мощнее атомных бомб,
сброшенных на Хиросиму и Нагасаки во время Второй мировой.
Возможность кодировать расширила наши возможности делать то,
что нам требуется.
Но в 1940-х годах впереди было еще много работы.
Написание программ в нулях и единицах ограничивает масштаб.
Нужно было лучше использовать возможности кодирования.
Требовался более простой способ.
С тех пор кодирование всё ближе и ближе приближалось
к человеческому языку
за счет изобретения того, что сейчас используют повсеместно:
языков программирования.
В сравнении с единицами и нулями эти языки довольно абстрактны.
Абстракция — это сложное понятие.
Более абстрактные языки сводятся к тем же единицам и нулям.
Мы просто смогли лучше их организовывать.
Представим это на примере биологии.
Люди очень сложно устроены.
Но 99% нашего тела состоит всего из шести элементов.
Из них создаются крупные молекулы.
Между этим уровнем организации и уровнем простейшего живого существа
огромная пропасть.
И у людей есть мозг,
настолько сложный,
что с трудом вериться, что он сделан из тех же веществ.
Компьютеры очень похожи на это, но они гораздо проще.
Это отличная новость.
История кодирования — это продвижение этой ячейки вверх.
Отход от двоичной системы,
чтобы найти более быстрые, легкие и производительные способы кодирования
без необходимости использовать или даже понимать
двоичную систему и логические вентили, лежащие в основе.
Это позволяет программистам создавать продукты, знакомые всем нам.
Первым шагом к этому был...
Язык ассемблера. Его гораздо проще читать и записывать.
Вместо того, чтобы говорить 0-1-0-0-0-1-1-1,
назовем это «add».
А потом программа-ассемблер переведет эти буквы
в соответствующие им нули и единицы.
На этом уровне двоичный код организован в буквы и цифры,
как атомы организованы в молекулы.
Но кодирование на языке ассемблера было всё еще недостаточно простым,
ведь все эти компьютеры использовали разные языки ассемблера.
Программа, написанная для одного компьютера, не работает на другом.
Вскоре люди задумались
о возможности ввода информации
в компьютер при помощи терминов, используемых каждый день.
Есть языки программирования,
созданные на основе языка ассемблера.
Из этих языков программирования были созданы новые языки.
Думаю, вы слышали эти названия.
- Лисп. - Бейсик.
- Java. - C ++.
- Python 3. - HTML 5.
Perl, РНР, язык Си.
Так же как языки мира —
это разные способы выражения одной и той же мысли,
языки программирования —
это разные способы передачи компьютеру одной и той же идеи.
Существуют несколько языков высокого уровня,
во-первых, потому что разные языки
направлены на разные потребности.
Например, эти два языка.
Этот, Кобол, был создан в конце 50-х годов,
чтобы облегчить предприятиям использование кодов.
Он во многом похож на английский. Отличие лишь в том, что каждый разговор
заканчивается фразой: «STOP RUN».
Язык CPL, разработанный в 60-х годах, включает более сложные вычисления.
Похоже на биологическую революцию.
Организмы становятся сложнее и развивают черты,
помогающие лучше адаптироваться к конкретным условиям.
Честно говоря, это еще и вопрос вкуса.
Людям нравятся разные инструменты для самовыражения.
Например, язык С ++.
Илон Маск точно не его поклонник.
Язык можно создать самому.
Есть язык высокого уровня, созданный целиком из слова «му».
Без шуток. Называется COW, или корова.
Этот создан на основе цитат из фильмов Арнольда Шварценеггера.
Каждый раз, когда я думаю: «Теперь-то уже точно всё»,
еще кто-то придумывает новый язык и у него появляются последователи.
Так что изобретение новых языков будет продолжаться.
Все эти языки всё еще основываются на логике.
Например, программист Netflix может решить:
«Если вы смотрели больше двух часов,
показать вот это».
Но чтобы код оказал влияние на жизни большинства,
они должны использовать компьютеры.
Значит, компьютеры должны быть понятнее и удобнее.
Для этого понадобился еще один большой рывок.
Он начался с этого.
С демо, записанного Дугласом Энгельбартом в 1968 году.
Через секунду на подключенном экране
мы увидим, как точка движется,
повторяя движения мыши.
В наши дни люди не программируют, записывая утверждения на бумаге
и затем передавая их тому,
кто их вводит.
Вы сидите перед экраном, у вас графический интерфейс.
Это ГИП — графический интерфейс пользователя.
С ГИП можно программировать, не напечатав ни слова.
Или использование кода становится проще.
Обычно вы работаете в среде программирования,
которую Алан и его коллеги
так прекрасно создали
в научно-исследовательском центре «Xerox PARC» в начале 70-х.
Речь про этого Алана.
Для меня он — отец персональных компьютеров.
Ведь он был первым, кто озвучил эту идею.
Должен признаться, в то время я думал, что это научная фантастика.
Когда делаются большие дела,
в этом участвуют многие.
«PARC» было замечательным местом.
Как в сказке.
Графический интерфейс пользователя позволил миллионам людей
использовать компьютеры так, как им удобно и привычно.
Представив первый графический интерфейс в 1979 году,
«Xerox» показали, как код может изменить повседневную жизнь.
Заходите в офис и аппарат «Xerox»
выводит на экран вашу утреннюю почту.
Скоро подобные системы «Xerox»
будут помогать управлять самым ценным ресурсом.
Информацией.
Многие люди, такие как я и другие члены научного сообщества,
хотели сделать мир лучше.
У них была идея, тесно связанная
с усилением человека.
Что-то, что будет взаимодействовать с нами,
обществом,
обычным человеком,
и даст нам возможность делать больше, чем мы могли раньше.
Это дало нам возможность делать больше.
ГИП — это огромный скачок вверх.
Затем появилась следующая инновация, изменившая мир.
Новый способ распространения всего, что можно создать с помощью кода.
На телевидении появились предсказания,
к чему приведет внезапный доступ к коду.
Представьте, за утренним кофе вы включаете домашний компьютер
чтобы прочитать свежие новости.
Представьте, что каждое слово, каждая картина, каждый фильм
будет моментально доступен не выходя из дома.
Думаю, мы находимся на пороге чего-то головокружительного и пугающего.
Это же просто инструмент.
Нет, не просто.
Сегодня самые эффективные программы используют все эти инновации.
Студент колледжа использовал язык программирования высокого уровня, PHP,
чтобы то, что выложено в интернете,
можно было использовать на компьютере с ГИП.
Он рассказал об этом в своем первом телеинтервью в 2004 году.
Это онлайн-справочник, объединяющий людей
через университеты и колледжи, через их социальные связи.
Сейчас у нас 100 000 человек. Кто знает, что будет дальше.
А дальше было вот что — ежемесячно больше двух миллиардов человек
на «Facebook».
Сегодня программисты влияют на жизни миллиардов.
На то, как люди работают, едят, делают покупки, встречаются и отдыхают.
Что вы делаете сейчас?
Вы смотрите шоу с моим участием в веб-браузере «Netflix».
Таким образом «Netflix» — это тоже код, запущенный в веб-браузере,
который тоже код,
который запущен на компьютере, созданном с использованием кода.
И так далее по цепочке.
Создать отличный код — это как построить музей,
о котором думают миллионы людей,
куда они заходят и используют каждый день.
Написание кода ни с чем не сравнимо, это настоящее созидание.
Есть идея, как что-то должно работать.
Вы пробуете сесть за компьютер
и сделать это реальностью.
При этом на вас лежит большая ответственность.
Допустим, есть ограничение скорости.
Не больше 100 км/ч.
Ладно.
Что если у вас есть машина, и компьютер заявил:
«Эта машина не будет ехать быстрее, чем 100 км/ч»?
Это способ контролировать поведение.
Зачастую в нашей жизни код, контролируя наш выбор,
оказывает более сильный регулирующий эффект, чем это возможно для закона.
Это может быть замечательно.
Каждый год в США происходит около шести миллионов аварий.
Исследование показало, что в 94% случаев виновен водитель.
Успехи кодирования могут спасти миллионы жизней.
Но они же рождают новые способы подвергать человека риску.
У меня гипертрофическая кардиомиопатия.
Это медицинский термин, означающий, что у меня большое сердце.
Оно буквально большое.
Оно в три раза больше, чем обычное сердце.
Я узнала об этом, когда мне было 30.
Вероятность моей внезапной смерти к 40 годам была очень велика.
Электрофизиолог сказал: «Это не проблема,
вы можете поставить кардиостимулятор».
Это устройство управляется кодом.
Пару лет назад, когда я была беременна, мое сердце учащенно билось.
Так бывает у четверти женщин, это абсолютно нормально.
Но устройство сочло, что это опасный ритм.
И дало разряд.
Производители устройств не заинтересованы в том,
чтобы бить беременных током.
Это последнее, чего они могут хотеть.
Просто они это не предусмотрели.
Нужно принять огромное количество решений.
И их будут принимать те, кто занимаются программированием.
И, неизбежно,
возникнут некие стечения обстоятельств,
которые они не предвидели.
Поэтому, преподавая программирование,
мы пытаемся научить студентов
просчитывать и предвидеть
все эти различные условия и обстоятельства.
Как попытаться охватить всё,
при этом не будучи парализованным объемом того,
что вам нужно учесть.
Это становится еще более актуальным, ведь мы начали кодировать
совершенно по-новому.
В традиционном кодировании вы пишете команды для компьютера.
Но теперь возможно задать ему несколько входных и выходных данных,
и он сам напишет для себя команды.
Вы даете компьютеру
кучу примеров.
Потом говорите: «Это вечеринка. И это. Это тоже».
Попадается еще что-то.
Кабинет стоматолога — не вечеринка.
Школа — не вечеринка.
Компьютер смотрит на это
и пытается создать систему классификации.
Это машинное обучение.
Сейчас, говоря «искусственный интеллект»,
мы говорим об этом.
Это совсем другой уровень абстракции и способов делать что-либо.
Это совсем не то, к чему мы привыкли.
Это называется алгоритмы машинного обучения,
потому что компьютер сам создает указания, которым будет следовать.
Но, конечно, в конце концов, они тоже будут преобразованы
в маленькие команды.
«Google Переводчик» раньше имел больше миллиона строк кода.
Люди написали больше миллиона коротких команд.
На данный момент «Google Переводчик» включает около 500 строк кода,
обеспечивающих машинное обучение.
Предположим, из-за недосмотра, ни на одной из фотографий вечеринок
нет людей с темным цветом кожи.
Компьютер может решить, что это правило —
приглашать на вечеринки только белых и азиатов.
Среди программистов много белых и азиатов.
Обязательно нужно расширять круг создателей.
По многим причинам.
Чем разнообразнее их опыт, тем лучше будут их вопросы.
Допустим, вы загружаете в систему машинного обучения
данные судебной системы,
в которой присутствует структурный расизм.
Допустим, программисты машинного обучения —
как реклама «Benetton».
Разные расы, разные лица, разные социальные происхождения.
Система всё равно будет учится на тех данных.
Если мы не будем активно это исправлять,
исторические данные приведут к тому, что мы будем повторять ошибки прошлого.
История кодирования построена на людских амбициях
и креативности.
Запуск ракеты «Falcon 9».
Мы видели то, что считалось невозможным увидеть.
Черную дыру.
Мы строим новый мир,
наполненный интуитивными инструментами,
которые многие могут использовать
для того, чтобы мир стал лучше.
Мы прошли долгий путь, чтобы сделать компьютеры доступнее для людей,
для большого числа людей.
За последние 50 лет перед нашими глазами произошла революция.
Вот почему так здорово жить сегодня.
Очень важно помнить, что всё, что вы используете на своем компьютере,
было создано человеком.
Возможно, вами.
И очень важно, чтобы вы стали одним из этих людей.
Вы можете коренным образом изменить мир.
Этим миром всё больше и больше будут управлять
при помощи машинного обучения, данных и традиционного кодирования.
Наш долг, как общества, сказать:
«Ладно! У нас есть новая мощная технология.
Всё может быть замечательно. Но оно не станет таким само по себе».
Перевод субтитров: Ксения Гребеникова