Интервью с Михаилом Куртовым о коммуникации человек–машина
Все мы так или иначе вступаем в коммуникацию с компьютерами. Однако владение языками программирования в настоящее время является чем-то вроде сакрального знания — немногие в него посвящены. Следует ли сохранять и поддерживать сакрализацию? Или мы все должны ли в скором времени овладеть языками программирования?
В 2012 году я написал что-то вроде манифеста ликвидации цифровой безграмотности («Новых медиа не было» на Colta.ru), где цитировал академика А.П. Ершова: «программирование — вторая грамотность». Тогда казалось, что ещё немного — и цифровой барьер будет сломлен, мы вступим в эпоху просвещённых пользователей-программистов. Но «что-то пошло не так». Это «не так» можно объяснять по-разному. Простейшее объяснение: несмотря на сегодняшние призывы больших и малых IT-компаний изучать языки программирования, капитал не заинтересован во «всеобуче», ему нужны только узкие специалисты, закрывающие те или иные ниши в индустрии. А умение управляться с
Исходный код может иногда использоваться опытными программистами для общения между собой (
Чистый исходный код (без комментариев) может использоваться только для решения коммуникативных задач внутри самого же кода (когда сам код настолько ясен, что становится самообъяснительным). Языки программирования предназначены для коммуникации человек—машина, они не обладают теми важнейшими коммуникативными функциями (например, эмотивной или поэтической), которые Роман Якобсон числил за естественным языком. Но языки программирования позволяют создавать новые средства коммуникации, а от этих средств сегодня во многом зависит наше повседневное общение.
Должен ли философ, занимающийся проблемой кода, владеть программированием на высоком уровне? Некоторые современные лингвисты (прежде всего те, кто занимается типологией и имеет дело с языками коренных народов Америки, Океании и т.п.) считают, что необязательно блестяще владеть языком, которым ты занимаешься (иногда достаточно найти билингва, который сможет ответить на вопросы о своём родном языке или воспользоваться описаниями, сделанными коллегами).
Нет, я не думаю, что тот, кто занимается проблемой кода «извне», должен быть программистом-виртуозом. Следует, скорее, знать о коде «вширь»: разбираться в популярных структурах данных и алгоритмах, представлять себе, как устроено программирование на низком уровне (писать на ассемблере и читать дизассемблированный код), уметь писать простые программы на языках основных парадигм (императивной, функциональной, объектно-ориентированной, логической…), иметь представление о современных методологиях промышленной разработки (типа Agile), ну и сегодня также минимально владеть инструментами для работы с искусственными нейросетями (так называемое differentiable programming). Все эти знания сами по себе ещё не означают «высокого уровня» овладения программированием, но предоставляют карту того, что происходит и происходило с кодом и в коде. Вместе с тем, опосредованной коммуникации с машиной (например, через некоего билингву, толмача) совершенно точно было бы недостаточно. Контрпримеры из антропологической и социологической исследовательской практики (которые нередко можно услышать от ленящихся учёных) — ложные и вводят в заблуждение: в случае с коммуникацией человек—человек мы можем достроить неизвестное при помощи невербальных знаков и вообще каких-то имеющихся представлений о человеческом виде, тогда как коммуникация человек—машина есть нечто необщее, не всем знакомое, неочевидное, и познать её и тех, кто в неё вовлечён, можно только на собственном опыте, то есть программируя. Если исследователь сам не пишет код, не имеет опыта общения с машиной и с самим собой ввиду машины, то он не знает характерных аффектов программиста («fun», радость от экспериментирования, ощущение всемогущества…) и не понимает его базовых мотиваций (помимо финансовых), — какова тогда ценность его исследования?
Существует множество очевидных отличий естественных языков от языков программирования: стихийное возникновение, различие в функционировании, многозначность слов, наличие исключений из так называемых законов и т.п. Есть ли какие-то неочевидные различия между естественными языками и языками программирования (особенности эволюции и т.п.)?
Мне кажется, все несходства между языками программирования и естественными языками лежат на поверхности (если только мы не рассматриваем неортодоксальные языковые теории, вроде марризма, согласно которому все слова во всех языках имеют общее происхождение от четырёх базовых слов — САЛ, БЕР, ЙОН и РОШ, — каковые можно при желании привести в соответствие с базовыми машинными инструкциями). Интересней как
Язык программирования является языком-посредником между человеком и машиной, который при этом не является родным ни для одного из участников. Возможно ли выстроить коммуникацию между машиной и рядовым пользователем не иерархически, а через делезианские множественности: через распространение и активизацию интенсивностей?
В вашем вопросе проблематичным является само противопоставление «иерархии» и «множественности». Ризоматические структуры, как подчёркивали Делёз и Гваттари, имеют «свой собственный деспотизм, свою собственную иерархию, причем еще более жесткую». «Интенсивности» — понятые делёзиански, то есть постницшеански — тем более задают свои собственные иерархии. История этого вопроса тянется как минимум от полемического текста Энгельса «Об авторитете», где он возражает либертарно настроенным социалистам в вопросе о (говоря уже языком Кропоткина) централизации власти и указывает на то, что отмена «авторитета» в промышленности равнозначна отмене самой промышленности. То же можно сказать и о современных информационных средствах: они тотально иерархичны (иерархии классов, библиотек, цепочек управления…) и без этого не способны функционировать. Будучи в политическом плане анархистски ориентированным, я, тем не менее, не вижу ни смысла, ни возможности для полного избавления от иерархий в
Одна из Ваших книг посвящена изучению пользовательских интерфейсов. Что могло бы быть интерфейсом пользователя для машины? И нужен ли он машине, даже если представляем её как субъектность?
«Интерфейсом пользователя для машины» фактически могут быть названы внутренние машинные протоколы, такие TCP/IP (Transmission Control Protocol / Internet Protocol) или OLE (Object Linking and Embedding), в которых одна машина действительно выступает «пользователем» другой. Но, полагаю, пользовательский интерфейс в точном смысле слова — это «человеческая, слишком человеческая» проблема. Любые переворачивания субъекта и объекта — череда которых началась, пожалуй, с младогегельянцев — образуют новые, свои собственные проблемы: «прежние» проблемы в эти новые миры не переносятся. В терминах Симондона тут можно и нужно говорить о различиях в «способах существования» тех или иных сущих, в данном случае технических и человеческих. Модная сегодня «сказочная» игра в
Вы пишете, что не существует фундаментальных исследований по онтологии кода. Какими вы видите эти исследования?
Фундаментальные исследования по онтологии кода, как я их себе представляю, должны отвечать двум критериям: 1) связывать проблематику кода с традиционными вопросами онтологии, 2) отвечать по существу на вопрос, что есть код. На 2014 год, когда я написал сперва статью, а затем книжку про код, таких исследований мне известно не было. Хотя, возможно, что-то появилось сейчас или существовало уже тогда или ранее — на
Интервьюер — Маргарита Спиричева