Проектирование общего вычислительного интерфейса

Стенограмма:

Диего: Поприветствуем Матильду, которая в своём выступлении расскажет нам о всеобщем вычислительном интерфейсе. Она умышленно выбрала тему ради аллитерации, и она собирается говорить в рифму, всё время, и очень быстро. Но это будет круто, как любая книга доктора Сьюза. Я очень ценю это. На самом деле, я очень рад, что она выступит, она всё это время была с нами: просто зависала, бродила по деревне, помогала, где и чем могла, и вот пришло время блеснуть и ей. Она слушала всех остальных, других выступавших, с волнением ожидала этого дня, и вот этот день настал. Так что, поддержите её, когда она появится на сцене, и начнём, послушаем, что она расскажет нам о всеобщем интерфейсе.

Матильда: Спасибо. Привет всем. Я бы поблагодарить Critical Decentralization Cluster за приглашение. Не знаю точно, смотрели ли вы другие выступления, были вы при этом дома или смотрели стрим, или же находились здесь. Выступления были хорошими, но мне на данный момент наиболее запомнилось одно. Это было выступление Namecoin, в котором они рассказали о своей интеграции с Tor, и но мне понравилось поскольку, на мой взгляд, это отвечает миссии, над выполнении которой все эти непохожие друг на друга проекты могли бы работать вместе, развивать свои подходы и технологии ради взаимной выгоды. И мне действительно хотелось бы, чтобы всё было именно так. Итак, меня зовут Матильда Парк, я разработчик программного обеспечения, я работаю над Urbit, это одноранговая сеть, созданная с нуля. Я объясню, что это значит, а также в общих чертах, что это меняет в нашем видении интерфейсов, собственно, за этим мы и собрались.

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

Я бы хотела рассказать, что такое однопользовательский вычислительный интерфейс, к слову, говорят, что каждый компьютер, это либо компьютер UNIX, либо компьютер, притворяющийся UNIX, и всё сводится к тому, как UNIX организован с точки зрения разделения времени в комбинации с тем, что позднее в Macintosh было интегрировано как метафорический интерфейс. Разделение времени – это когда у большого суперкомпьютера есть множество простых клиентов или мониторов, и распределяя свободные циклы соответствующим образом, он может позволить каждому считать, что этот компьютер и есть его компьютер.

Да, это решение для множества пользователей в одной машине, основанное на циклах разделения времени между однопользовательскими сессиями. Так что, каждая однопользовательская сессия, запущенная на одной машине при распределении циклов позволяет притворяться, что она принадлежит всем.

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

Таким образом, когда мы говорим о децентрализации, речь идёт не только о каком-то учёном словечке, типа студенческого сленга, мы имеем дело с довольно полезной вещью. Речь идёт об уходе от централизованных командных структур в направлении передачи полномочий отдельным лицам, которые сами смогут находить друг друга в сети. Но мне кажется, что до этого момента мы двигались в направлении модульного подхода, основанного на текущем стеке, в результате чего, несмотря на то, что он допускает наличие объединений лишь в небольшом масштабе, эти малые группы людей могут сделать многое. За этим скрывается большая проблема, связанная с понижением уровня децентрализации.

В основном, когда мы говорим о централизованной платформе, мы говорим об отдельных клиентах для одноцелевых компьютеров, и тут также играет свою роль тот факт, что мы ожидаем, что будет один аккаунт, в который мы будем заходить, чтобы сделать всё, что нам нужно, который служит для одной цели и не знает ничего о других имеющихся у нас устройствах. И чем больше какая-то определённая компания опирается на бизнес-модель, в основе которой лежит эта концепция, тем больше у них мотивации создавать более простые клиенты с аппаратной точки зрения. То есть, если вы Apple, вы начнёте производить MacBook с меньшим объёмом жёсткого диска, так как вам будет лучше, если будет использоваться iCloud, так как это лучший пользовательский вариант на сегодняшний день. Или же, если вы Google, вы захотите, чтобы Chromebooks стали самыми простыми клиентами из всех возможных. Но по сути, всё сложнее избежать участия в этом процессе ухода от использования основных функций компьютера к этим гигантским поставщикам услуг, которые желают монетизировать простое пользование, даже если вы делаете это непосредственно с вашего собственного компьютера. Мы движемся к тому, что придётся пользоваться простыми клиентами с такими большими устройствами, как Boeing 737, а ведь вам просто хочется, используя свой компьютер, напрямую разумным и простым способом общаться с другими людьми, чтобы это было удобно как для вас, так и для тех, кого вы находите.

Мне хотелось бы рассказать о двух вещах, о двух различных децентрализованных продуктах или федерированных продуктах, которые мне по-настоящему нравятся. И несмотря на то, что оба они обеспечивают действительно хороший UX, мне кажется, что и в случае с ними имеет место определённый компромисс, так как мы пытаемся достичь более высокого уровня децентрализации, который поставит перед нами ряд более сложных задач.

Итак, первый продукт – это Mastodon, я пользуюсь им каждый день, и недавно они сделали действительно хорошую вещь, они решили проблему перехода между версиями, что было сделано, на мой взгляд, просто блестяще. Это просто федерированная социальная сеть, и в этом плане продукт работает довольно хорошо, он очень удобен, и он предполагает уход от централизованной модели, то есть, вместо того, чтобы использовать один суперкомпьютер, используется суперкомпьютер вашего локального админа, которому вы можете доверить всё, что касается вашей цифровой жизни. Это же касается и Skuttlebutt. Skuttlebutt – это ещё одна социальная сеть, которая является полностью одноранговой, но в данном случае компромисс заключается в отсутствии внешнего сохранения верификации личности, поэтому, всякий раз, когда вы создаёте на вашем компьютере аккаунт, вы являетесь новым пользователем, и если у вас более одного устройства, вам приходится создавать новую личность с небольшим примечанием в скобочках и снова находить нужных вам людей.

Okay, из всего этого мы вынесли урок, который сводится к тому, что на данный момент интернет и клирнет как система не стимулирует прямое владение. Это очень просто и по сути каждый шаг. Которые вы делаете, побуждает вас уместить свою онлайн жизнь в рамки этой модели и просто принять все компромиссы. Но как известно, интернет используется, как до или после сентября 1993, для объединения в сообщества, для общения друг с другом и совместной деятельности при помощи наших компьютеров, и создания в интранете каких-то групп по интересам и прочих подобных вещей.

Теперь немного о том, чем занимаюсь лично я. Я работаю на Urbit, и мы используем системный подход. Вокруг одноранговой сети создаётся полный стек. Который строите вы сами. По существу, мы отошли от общего развития компьютерной истории со времён UNIX и занялись построением целей и каждой отдельной части стека на основе существующих, текущих сценариев использования, связанных с тем, чем люди хотят заниматься. То есть, мы стали культивировать и облегчать прямое взаимодействие небольших сообществ с их компьютерами таким образом, чтобы они смогли быстро находить друг друга в рамках согласованного пространства имён, и чтобы всё это делалось добросовестно, поскольку каждый в этом случае заинтересован в успешной работе сети. Это делает повседневно используемые компьютеры понятными, это ограничивает сложность стека, который также становится понятным и невероятно подходящим для каждого человека, как мне кажется, поскольку, насколько мне известно, по последним цифрам количество клиентов Linux выросло до 30 миллионов.

Итак, основной целью является использование интернета так, как он используется в телефонных линиях, например, чтобы это были отношения между клиентом и сервером, но чтобы каждый при этом мог быть клиентом и сервером, чтобы ваша машина и моя машина могли находить друг друга и действовали, как приложения, и чтобы файлы организовывались, и контексты строились вокруг согласованных групп людей в отличие от меня и от вас, и от 50 других человек, разбросанных по сети Whatsapp или любого другого мессенджера, Line или другого сервиса, которым они пользуются. Другими словами, это можно было бы представить в виде согласованного, структурированного однорангового роя, в котором легко было бы находить других людей и взаимодействовать с ними. Но что это значит с точки зрения пользовательского интерфейса?

Так как все используют собственный компьютер и общаются друг с другом напрямую, UI должен быть распланирован для широкой сети, состоящей из малых групп, поскольку не так просто агрегировать все имеющиеся данные, не так просто увидеть информацию каждого, даже если она общедоступна, поскольку вы знаете только об одноранговых компьютерах, к которым подсоединены в одноранговой сети, и поэтому вы не сможете без затруднений создать апвоут систему на Reddit, тут есть проблема масштабирования: чем больше участников, тем сложнее будет сделать это. Но в конечном счёте, это хорошо работает с широкой сетью, состоящей из небольших групп людей, и вы можете абстрагироваться от остальной части интернета и общаться исключительно с вашими друзьями, и сохранять анонимность, находясь в такой «пещере», где никто не увидит вас, никто не увидит, чем вы занимаетесь, ничто из того, что вы говорите не станет достоянием общественности, то есть, то, что я ем на завтрак, не будет уже завтра отображаться в телефоне Джека, как-то так.

Но как тогда построить сообщество вне контекстного приложения? Ведь централизованные интерфейсы строятся на основе того, что я заведу себе один аккаунт, который будет использоваться на множестве пользовательских компьютеров, и мы будем подписаны на него, и будем всё делать одинаково, занося свои записи в базу данных. По сути, так сейчас работает любой централизованный сервис. Как создать продукт, который позволит вам делать всё, если вы обладаете доступом к приложению наряду с другими людьми. Наилучшим способом, как нам кажется, является использование примитива верхнего уровня для группы или списка одноранговых пользователей, или же некого согласованного списка людей, и в этом случае вы сможете сказать: я хочу, чтобы эти машины или эти люди имели доступ к каждому файлу, которым мы пользуемся вместе, поскольку сеть – это просто совместно используемая директория с различными возможностями просмотра и создания общего интерфейса для использования файлов, то есть, способов чтения и записи файлов различного типа.

На данный момент существует несколько централизованных сервисов, Discord или Slack, они построены вокруг группы как высокоуровневый примитив, но они используются для одной цели – по большей части для общения, и если вы создаёте матрицу, которая станет федерированной сетью, необходимо учитывать, что они также строятся на основе сообществ, в рамках которых вы выбираете группу людей, а затем они видят всё, что делает эта группа. Но вот, что я выяснила, когда сама пользовалась Discord: у многих сообществ есть своя «библиотека», в которую они скидывают ссылки на файлы pdf, и они скидывают сводные таблицы этих ссылок на Google Drive, ссылок на книги. Которые они хотят обсудить, и тут оказывается, что всё то, что мы делаем, строится вокруг такого списка, и это уже вовсе не простое пользование общим интерфейсом.

Итак, если вы можете гарантировать, что все будут пользоваться одним UI, поскольку это ваш компьютер. Вам необходимо определять разрешения и определять типы файлов для чтения и записи вашей группой, таким образом, по определению ваша группа будет получать доступ к текстовому файлу определённым образом, а затем определяется структура совместно используемых группой данных, и таким образом они становятся контекстными компонентами. Это приводит к тому, что человек или группа людей формируют унаследованный интерфейс, в основе которого лежит расширяемая библиотека компонентов, и чат определяется, как по типу файла, как если бы изображение просматривалось определённым способом, как RGB, тут было бы уместно какое-то другое слово. Но если бы вам понадобилось посмотреть слайды. Вам бы понадобился компонент id3, или для прослушивания mp3 вам понадобилось бы что-то другое.

Мы хотим сказать, что одноранговый интерфейс требует использования агностических расширяемых компонентов, соответствующих определённым типам файлов. А это означает, что неважно, какую машину вы используете, вы хотите обладать различными интерфейсами для чтения и записи файлов одинаковым способом на оконечных устройствах, но с различными возможностями отображения в случае с различными интерфейсами. Но вам также необходимо, чтобы они находились в контексте определённого совместно используемого приложения, поскольку способы просмотра этих файлов будут зависеть от вашей группы. И как разработчики пользовательского пространства мы надеемся вместе найти способ решения этой проблемы в одноранговом пространстве, так как всё это «дивный новый мир». Спасибо за внимание. У нас есть ещё минута? Нет? Вы можете задать вопросы, если хотите. Если передать микрофон… Нет? Окей, спасибо.

Диего: Большое спасибо. Матильда, спасибо за это третье и последнее на сегодня выступление…