Вы знали, что \ r и \ n - остатки пишущих машинок?

Вы когда-нибудь задумывались, как новая строка сохраняется на компьютере? Вы знаете, что происходит, когда вы нажимаете «Enter» в текстовом редакторе?

В Windows новая строка сохраняется как странная последовательность \r\n. Например, такой текст:

Hello
World!

Фактически хранится как Hello\r\nWorld! в системе Windows.

Оказывается, \r называется возвратом каретки, а \n называется переводом строки. Это специальные символы, появившиеся на пишущих машинках. В прошлом, когда люди доходили до конца строки на пишущей машинке, они нажимали на рычаг, который выполнял две вещи:

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

Комбинация возврата каретки и перевода строки эффективно перемещает текущую позицию ввода в начало новой строки.

Сегодня с появлением современных компьютеров и текстовых процессоров отпала необходимость в пишущих машинках. Остались неясные специальные символы \r и \n на наших машинах. Мой разум был потрясен, когда я впервые узнал об этом - какой кусок человеческой истории скрыт в повседневном коде!

Боковое примечание: системы Mac и Linux просто используют символ перевода строки \n вместо более подробной последовательности \r\n для представления новой строки. Хотя он более эффективен для хранения, он технически не так «исторически точен».

Есть еще примеры. Термин ошибка программирования получил широкую огласку, потому что настоящая ошибка однажды вызвала сбой в работе машины. Причина, по которой язык программирования Fortran игнорирует пробелы, заключается в том, что люди использовали код на перфокартах, и было легко вставить пробелы по ошибке. Удивительно думать о том, сколько анекдотов и моделей человеческого поведения скрыто в чем-то столь же механическом и безжизненном, как компьютерные программы.

С другой стороны, мы иногда намеренно включаем в программное обеспечение элементы из нашей реальной жизни. Дизайнеры называют это скевоморфизмом, что означает объединение старых знакомых идей в новые. В пользовательском интерфейсе компьютера папки напоминают форму бумажных папок. Кнопки удаления выглядят как корзины для мусора. Кнопки сохранения выглядят как дискеты. Сопоставление реальных объектов с компонентами пользовательского интерфейса помогает людям быстро понять свои функции. Это дает людям комфорт, потому что они могут использовать свой прошлый опыт, взаимодействуя с новыми технологиями. Скевоморфизм наиболее полезен в начальный период перехода к новым технологиям, но когда люди в конечном итоге привыкают к новым технологиям, он теряет свое предназначение. Все, что осталось, - это устаревшие конструкции, имеющие узнаваемое значение, но не происхождение (я уверен, что не все, кто читает это, знают, что такое дискета).

В 2020 году GitHub, крупнейший сервис хостинга программного обеспечения на планете, объявил об архивной программе. Одна из его инициатив - заархивировать все существующие репозитории кода в хранилище глубоко в арктических горах. Я подозреваю, что через сто лет археологи будут изучать не кости и древние артефакты, а наше программное обеспечение. Они больше не будут искать окаменелости, а будут искать жесткие диски. Они больше не будут осматривать наскальные рисунки, а будут осматривать куски лазерного стекла (да, именно так Microsoft Project Silica планирует хранить большие объемы данных более 10 000 лет). Что наши будущие поколения узнают о нас из нашего кода?

В более философском смысле, что наши будущие поколения не узнают о нас? Моя история поиска в Google, покупки на Amazon и плейлисты Spotify используются для обучения моделей машинного обучения, которые могут точно предсказывать мое поведение. Бесчисленные изображения и видео на Facebook и YouTube могут использоваться моделями, чтобы идентифицировать меня по внешнему виду, голосу или даже по моей позе при ходьбе.

Не забывайте море текстов, которые компании используют для обучения своих голосовых помощников, услуг перевода, грамматических проверок и многого другого. Совсем недавно модель GPT-3, обученная более чем 100 миллиардам параметров, продемонстрировала сверхъестественные универсальные языковые способности, которые не уступают возможностям реальных людей. Он использовался для создания ботов, которые генерируют код на простом английском языке, пишут целые сообщения в блоге с помощью коротких подсказок или участвуют в полных разговорах с людьми в реальном времени.

Все больше и больше аспектов нашего существования теперь можно свести к параметрам нейронной сети. После того, как мы уйдем, мы продолжим существовать как биты и числа.

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