Интервью с Михаилом Куртовым о коммуникации человек–машина

Журнал "Здесь"
15:30, 21 сентября 2020🔥
Добавить в закладкиДобавить в коллекцию
Image

Все мы так или иначе вступаем в коммуникацию с компьютерами. Однако владение языками программирования в настоящее время является чем-то вроде сакрального знания — немногие в него посвящены. Следует ли сохранять и поддерживать сакрализацию? Или мы все должны ли в скором времени овладеть языками программирования?

В 2012 году я написал что-то вроде манифеста ликвидации цифровой безграмотности («Новых медиа не было» на Colta.ru), где цитировал академика А.П. Ершова: «программирование — вторая грамотность». Тогда казалось, что ещё немного — и цифровой барьер будет сломлен, мы вступим в эпоху просвещённых пользователей-программистов. Но «что-то пошло не так». Это «не так» можно объяснять по-разному. Простейшее объяснение: несмотря на сегодняшние призывы больших и малых IT-компаний изучать языки программирования, капитал не заинтересован во «всеобуче», ему нужны только узкие специалисты, закрывающие те или иные ниши в индустрии. А умение управляться с каким-нибудь фреймворком для JavaScript или обращаться с монадами в Haskell ещё не раскрывает «цифровую вещь». Другое объяснение — культурное: мало овладеть языками программирования, нужно ещё понимать связь этих умений с целокупностью культуры. Так, огромное количество талантливых программистов не видят ничего катастрофического в использовании техники компании Apple, а эта компания — и, соответственно, её преданные клиенты — за прошедшие восемь лет сделала очень много для того, чтобы «цифровая вещь» оставалась во владении «касты жрецов» (при этом я не склонен подозревать этих программистов в кастовой ангажированности). Наконец, ещё одно объяснение — транскультурное, — которое я дал чуть позже, в работе по теологии кода: настоящий период в развитии цифровой культуры сжато повторяет, «рекапитулирует» период Средневековья и раннего Ренессанса, в котором продолжали сохраняться сословные и прочие привилегии, а значит, длящееся разделение на пользователей и программистов, которое мы сейчас наблюдаем, «естественно». Из этой гипотезы «операторной рекапитуляции» следует, что нужно дождаться цифровых гомологов печатного станка с подвижными литерами и Великой французской революции, чтобы что-то в этой области действительно изменилось.


Исходный код может иногда использоваться опытными программистами для общения между собой (из–за точности и лаконичности). Можем ли мы приспособить языки программирования для решения вопросов повседневной коммуникации? И могут ли они их решать?

Чистый исходный код (без комментариев) может использоваться только для решения коммуникативных задач внутри самого же кода (когда сам код настолько ясен, что становится самообъяснительным). Языки программирования предназначены для коммуникации человек—машина, они не обладают теми важнейшими коммуникативными функциями (например, эмотивной или поэтической), которые Роман Якобсон числил за естественным языком. Но языки программирования позволяют создавать новые средства коммуникации, а от этих средств сегодня во многом зависит наше повседневное общение.


Должен ли философ, занимающийся проблемой кода, владеть программированием на высоком уровне? Некоторые современные лингвисты (прежде всего те, кто занимается типологией и имеет дело с языками коренных народов Америки, Океании и т.п.) считают, что необязательно блестяще владеть языком, которым ты занимаешься (иногда достаточно найти билингва, который сможет ответить на вопросы о своём родном языке или воспользоваться описаниями, сделанными коллегами).

Нет, я не думаю, что тот, кто занимается проблемой кода «извне», должен быть программистом-виртуозом. Следует, скорее, знать о коде «вширь»: разбираться в популярных структурах данных и алгоритмах, представлять себе, как устроено программирование на низком уровне (писать на ассемблере и читать дизассемблированный код), уметь писать простые программы на языках основных парадигм (императивной, функциональной, объектно-ориентированной, логической…), иметь представление о современных методологиях промышленной разработки (типа Agile), ну и сегодня также минимально владеть инструментами для работы с искусственными нейросетями (так называемое differentiable programming). Все эти знания сами по себе ещё не означают «высокого уровня» овладения программированием, но предоставляют карту того, что происходит и происходило с кодом и в коде. Вместе с тем, опосредованной коммуникации с машиной (например, через некоего билингву, толмача) совершенно точно было бы недостаточно. Контрпримеры из антропологической и социологической исследовательской практики (которые нередко можно услышать от ленящихся учёных) — ложные и вводят в заблуждение: в случае с коммуникацией человек—человек мы можем достроить неизвестное при помощи невербальных знаков и вообще каких-то имеющихся представлений о человеческом виде, тогда как коммуникация человек—машина есть нечто необщее, не всем знакомое, неочевидное, и познать её и тех, кто в неё вовлечён, можно только на собственном опыте, то есть программируя. Если исследователь сам не пишет код, не имеет опыта общения с машиной и с самим собой ввиду машины, то он не знает характерных аффектов программиста («fun», радость от экспериментирования, ощущение всемогущества…) и не понимает его базовых мотиваций (помимо финансовых), — какова тогда ценность его исследования?


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

Мне кажется, все несходства между языками программирования и естественными языками лежат на поверхности (если только мы не рассматриваем неортодоксальные языковые теории, вроде марризма, согласно которому все слова во всех языках имеют общее происхождение от четырёх базовых слов — САЛ, БЕР, ЙОН и РОШ, — каковые можно при желании привести в соответствие с базовыми машинными инструкциями). Интересней как раз-таки сходства между ними. Например, марксистская трудовая теория происхождения языка и теория антрополога Леруа-Гурана о связи между эволюцией языка и эволюцией техники позволяют сблизить естественные языки с техническими, а наличие в популярных архитектурах набора команд такой инструкции, как NOP (=no operation), даёт возможность говорить даже о некоем аналоге молитвенной практики для ЭВМ.


Язык программирования является языком-посредником между человеком и машиной, который при этом не является родным ни для одного из участников. Возможно ли выстроить коммуникацию между машиной и рядовым пользователем не иерархически, а через делезианские множественности: через распространение и активизацию интенсивностей?

В вашем вопросе проблематичным является само противопоставление «иерархии» и «множественности». Ризоматические структуры, как подчёркивали Делёз и Гваттари, имеют «свой собственный деспотизм, свою собственную иерархию, причем еще более жесткую». «Интенсивности» — понятые делёзиански, то есть постницшеански — тем более задают свои собственные иерархии. История этого вопроса тянется как минимум от полемического текста Энгельса «Об авторитете», где он возражает либертарно настроенным социалистам в вопросе о (говоря уже языком Кропоткина) централизации власти и указывает на то, что отмена «авторитета» в промышленности равнозначна отмене самой промышленности. То же можно сказать и о современных информационных средствах: они тотально иерархичны (иерархии классов, библиотек, цепочек управления…) и без этого не способны функционировать. Будучи в политическом плане анархистски ориентированным, я, тем не менее, не вижу ни смысла, ни возможности для полного избавления от иерархий в человеко-машинной коммуникации или вообще где-либо: это, на мой взгляд, просто неверная постановка вопроса и путаница в понятиях. Однако «равноудалённость» языков программирования от человеческих сообществ и этносов (даже при сохраняющемся digital divide: я, например, как и многие из моего поколения, писал свои первые программы в школьных тетрадках) может стать одним из оснований для равенства между людьми как пользователями.


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

«Интерфейсом пользователя для машины» фактически могут быть названы внутренние машинные протоколы, такие TCP/IP (Transmission Control Protocol / Internet Protocol) или OLE (Object Linking and Embedding), в которых одна машина действительно выступает «пользователем» другой. Но, полагаю, пользовательский интерфейс в точном смысле слова — это «человеческая, слишком человеческая» проблема. Любые переворачивания субъекта и объекта — череда которых началась, пожалуй, с младогегельянцев — образуют новые, свои собственные проблемы: «прежние» проблемы в эти новые миры не переносятся. В терминах Симондона тут можно и нужно говорить о различиях в «способах существования» тех или иных сущих, в данном случае технических и человеческих. Модная сегодня «сказочная» игра в машин-субъектов, животных-субъектов, растений-субъектов и пр. (в которую я и сам с увлечением играл несколько лет назад — скажем, в лекции «Критика котика» или в тексте «Может ли атомная бомба быть феминисткой?») стремится стереть эти различия, поэтому стоит быть подозрительным к этой тенденции и анализировать скорее её, а не те разнообразные «рассказы», которые она порождает.


Вы пишете, что не существует фундаментальных исследований по онтологии кода. Какими вы видите эти исследования?

Фундаментальные исследования по онтологии кода, как я их себе представляю, должны отвечать двум критериям: 1) связывать проблематику кода с традиционными вопросами онтологии, 2) отвечать по существу на вопрос, что есть код. На 2014 год, когда я написал сперва статью, а затем книжку про код, таких исследований мне известно не было. Хотя, возможно, что-то появилось сейчас или существовало уже тогда или ранее — на каком-нибудь языке, далёком от метрополии (каким является и русский язык), я не очень слежу. Отличием моего подхода от других известных мне подступов к онтологии кода является следование тезису Симондона, имеющему колоссальную важность: «индивидуальный технический объект не есть такая-то или такая-то вещь, данная hic et nunc, но то, что имеет генезис». Это означает: код претерпевает внутреннюю эволюцию, и на каждом из её этапов он являет себя по-разному. Стабильным остаётся только двоично-троичный ритм эволюции кода — колебание от операции к структуре и обратно (осцилляция между парменидовским и гераклитовским мирами) и диалектическое продвижение информатических абстракций. В ближайшие пару лет я хочу выпустить продолжение под названием «Теология кода. Схолии и королларии», где разовью несколько следствий из гипотезы «операторной рекапитуляции»: компаративное исследование готической архитектуры и информационных онтологий/системной инженерии, переоткрытие ренессансной перспективы в графических интерфейсах на примере масштабируемых интерфейсов (ZUI), взаимопрояснение действия искусственных нейросетей и алхимического опуса (статья про это уже опубликована — «Диалог о глубинном обучении как алхимическом делании»), неоплатоническая теология блокчейна, гомология исламского вероучения и «способа существования» приложений-мессенджеров, разработка новых контроллеров для ЭВМ и развитие «ранней» европейской музыки, феодализация Европы и распространение мобильных приложений, и т. д. Многие вещи моя теория уже предвосхитила (например, «ренессансный» бум искусственных нейросетей) и, как мне кажется, продолжает сохранять прогностический потенциал.

Интервьюер — Маргарита Спиричева

Подпишитесь на наш канал в Telegram, чтобы читать лучшие материалы платформы и быть в курсе всего, что происходит на сигме.
Добавить в закладки

Автор

File