04 января 2022 в 8:00
Автор: Виталий Олехнович

50 лет «Hello, world!». Как самый популярный код стал произведением искусства

Автор: Виталий Олехнович

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

Язык программирования B

Брайану Кернигану было 36 лет, когда он вместе с Деннисом Ритчи написал книгу «Язык программирования C». Если последний был одним из непосредственных авторов и разработчиков языка, то Брайан столь глубокого отношения к этому не имел. Он вместе с коллегой работал в исследовательском центре Bell Laboratories и был одной из ключевых фигур в разработке Unix. Там-то ему и пришла идея написать руководство для новичков в языке C.

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

Эта книга вышла в 1978 году. С тех пор практически в каждом учебнике можно найти повторение описанной в ней программы в зависимости от изучаемого языка программирования. Начинающий программист пишет свою первую простейшую программу, которая, однако, уже способна поздороваться с миром — не всегда напрямую: зачастую приветственная фраза выводится только в дебаг-консоль, которую видят лишь сами программисты. Тем не менее в этом ритуале есть нечто сакральное, пускай и немного наивное.

Но если книга с этой программой вышла лишь в 1978 году, то почему мы имеем наглость говорить о 50-летии коронной фразы?

Дело в том, что Брайан Керниган является автором не только самого популярного руководства по языку C своего времени. За шесть лет до выпуска этой книги он написал «Учебное пособие. Введение в язык программирования B». Этот непосредственный предшественник будущего популярного языка C был разработан там же, в Bell Laboratories. В 1969 году язык программирования с одним-единственным типом данных еще мог «проканать», но наука и техника двигались вперед. А потому B был переработан и расширен, переродившись в C.

Керниган же писал «Учебное пособие» по языку B, где в качестве одного из примеров впервые использовал фразу «Hello, world!». Там она использовалась для иллюстрации внешних переменных, где хранились частички фразы, которые собирались в одну строчку в терминале. Ее разбили на три переменные, так как в одной могло храниться не больше 4 символов ASCII.

И если для предыдущего примера из книги, который печатал «Hi!», хватало одной переменной, то более длинное приветствие хорошо иллюстрировало особенность языка программирования B.

Но почему именно эту фразу выбрал Керниган? Почему не «Привет, человек!» или «Привет, машина!»? В 2011 году Керниган давал коротенькое интервью индийской редакции Forbes. К сожалению, вспомнить, чем же его задела эта фраза, он так толком и не смог: прошло слишком много времени.

Брайан Керниган
«Память сейчас тусклая. Что я действительно помню, так это то, что видел карикатуру, в которой были изображены яйцо и цыпленок, который говорил: «Привет, мир»»

Искусство программирования?

В 2015 году кусочек программы, написанный Брайаном, был признан произведением искусства и попал на аукцион алгоритмов — первые в мире торги, которые были посвящены искусству программирования. Среди лотов были представлены редкие памятные вещи и лицензии на программное обеспечение, относящееся к важным историческим кускам кода.

Организаторы аукциона отбирали известные работы, которые демонстрировали эстетическую красоту и уникальное влияние алгоритмов на мир. В семи лотах аукциона были представлены архивные алгоритмы, представляющие важные моменты в истории дисциплины, и живые алгоритмы, созданные ведущими разработчиками, работающими на главном фронте своей области.

Один из них — ключевая фишка языка программирования Logo под названием «Черепашья геометрия», написанная профессором Массачусетского технологического института Халом Абельсоном. В начале 1970-х эта система позволяла делать простейшую векторную графику, управляя «черепашкой». Абельсон написал алгоритм, который упрощал для студентов работу с графикой: она сводилась к простейшим командам для виртуальной черепашки, которая оставляла за собой след на экране.

Звучит просто, но на самом деле лот представлял собой 5302 линии кода на языке ассемблера, распечатанные на матричной компьютерной бумаге.

Другой необычный лот являл собой галстук с шестью строчками кода на языке Perl. Так был запечатлен скрипт qrpff. Это ужатый до шести строчек кода алгоритм, который долгое время оберегался голливудскими студиями. Он дешифровал DVD и предотвращал незаконное копирование и воспроизведение фильмов.

В октябре 1999 года дешифровщик утек в сеть. Голливуд ответил судебными исками ко всем, кто публиковал этот код. Интернет начал выкручиваться: кто-то написал длинное хайку, которое объясняло алгоритм, кто-то — рок-композицию. Кит Винштейн вместе с Марком Горовитцом за полгода сделали 77 версий этого алгоритма, с каждым разом все сильнее упрощая его. В итоге его напечатали на футболках с надписью «Я — средство обхода цензуры» и на галстуке.

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


В относительно недавнем выпуске подкаста Лекса Фридмана его автор спросил Кернигана, как он сам относится к программированию: считает его наукой или искусством?

«Я думаю, что в этом есть частичка всего. Некая комбинация»,говорит Керниган и поясняет, что творческая часть заключается в понимании проблемы, задачи и придумывании того, как ее можно решить. Научная же часть программирования отвечает за то, как сделать это все хорошо, как выбрать алгоритм, который должным образом работает и хорошо масштабируется. Ко всему этому добавляется много инженерной работы. И пускай программист работает не кистью, но он способен создавать нечто похожее на искусство и ценимое наравне с ним.

«Hello, world!» была продана с аукциона за $3000.

масло для бороды, для всех типов кожи, свойства: антибактериальный эффект/увлажнение
Снят с продажи
масло для бороды, для всех типов кожи, свойства: питание, 30 мл
Нет в наличии
бальзам для бороды, свойства: придание блеска, 63 г
Снят с продажи

Наш канал в Telegram. Присоединяйтесь!

Есть о чем рассказать? Пишите в наш телеграм-бот. Это анонимно и быстро

Перепечатка текста и фотографий Onlíner без разрешения редакции запрещена. dm@onliner.by