Никита Прокопов (tonsky) wrote,
Никита Прокопов
tonsky

Categories:

Mail 3.0

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

Штука в том, что она не должна выглядеть как почта. Если посмотреть, то люди в современном вебе только и делают, что почты избегают. То есть наша задача не столько в том, чтобы придумать что-то почте на замену, сколько придумать что-то, что убило бы и почту в том числе.

Начнем с амбициозного вопроса: что объединяет емейл, чат, групповой чат, форум, блог, жж-коммьюнити, мейл-лист, google группу, formspring? Это, в общем случае, поток сообщений и ответов на них. Принципиальные различия в степени публичности и составе участников, в размере сообщения; непринципиальные — в протоколах, организационных вопросах (чьи сервера), уровне риалтаймовости и персистентности. Поскольку мы придумываем все заново, непринципиальные отличия нас не очень интересуют, мы их легко поправим. Принципиальные же ложатся в рамки общей модели. Вот эта модель:

Сообщением назовем написанное кем-то сообщение. У него один автор и дата. Темы нет. Размер любой. Реплика в чате — это сообщение. Письмо — сообщение. Пост — сообщение. Комментарий к посту — тоже.

Топиком назовем группу сообщений. В топик могут писать <позже уточним кто>, у него есть ссылка и тема. Пост с комментариями — топик. Email thread — топик. Чат с человеком, групповой чат, чат-комната — топики. Обсуждение в гугл-группе — ну, вы поняли.

В принципе, это примерно тот уровень, где остановился Google Wave. Есть еще вопросы пользователей и групп, разграничения доступа — требующие кропотливой проработки, но не контринтуитивные и сюрпризов не таящие. Есть вопросы качества реализации — централизованность, персистентность, real-time редактирование, работа в браузере. Это то, чем Google Wave хотел нас купить. Но нас не купишь. У них была дыра в модели, не хватало последнего звена.

Если вы помните, они делали скромные попытки социализировать wave-протокол. Была у них возможность писать публичные посты, и вроде как таким образом, теоретически, должен был происходить content discovery. Еще они приводили пример на презентации, как писать в блог из Wave — нужно было добавить свой блог в качестве соавтора в топик. Ладно, извините, эта штука просто не помещается в мозг, и так уже долго пишу.

Короче, Wave был самой настоящей почтой 2.0. Прокачанной в механике, сделанной на новом техуровне, спилившей острые углы, но концептуально ничем от нее не ушедшей — все та же мешанина из писем (топиков), с которой каждый пользователь должен научиться управляться сам.

Еще немного подведу вас к решению, назову пару симптомов. Объективно, email-фильтры не очень-то работают: даже гикам не всегда хватает терпения настроить их так, чтобы хорошо сортировало. Для обычных людей они вообще недоступны, потому что посмотрите как выглядит интерфейс их настройки в gmail до сих пор! Недоступны не потому, что интерфейс плох, а интерфейс плох потому, что никому не нужен. Плюс, качество работы фильтров и тегов/папок зависит от всех участников переписки — попробуйте, к примеру, в своей организации взять за правило писать в начале темы [offtop] по нерабочим вопросам. Мы внедряем уже полтора года, коэффициент успеха стабилизировался где-то в районе 50%.

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

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

Самое простое — блог — это буквально стрим и есть, с такими настройками, что создавать топики может только автор, а вот писать сообщения уже кто угодно.

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

Formspring — блог наоборот, создавать может кто угодно, отвечать только автор.

И т.п. Здесь почти ничего не меняется. Но это тоже, знаете ли, результат — все популярные современные модели пребывания в сети уложились в нашу модель. Что как минимум намекает на верность пути.

Итак, мы хотели убить почту. Действителньо, почтовая переписка становится куда краше. Возьму для примера свою работу. Я вхожу в такие алиасы как code-review, dataserver-dev, platform-engineering-heads, dev, all. А теги у меня заведены следующие: general, monitoring, nsk-office, offtopic, code-review, vacancy. Тут, заметьте, двойная работа — сначала письмо сортирует тот, кто отправляет, выбирая почтовый алиас, потом его еще сортирую я, присваивая тег. Естественно, фильтры не всегда могут отличить обычное general письмо от оффтопика или письма, касающегося новосибирского офиса. Прелесть стримов в том, что они общие для всех. На всю компанию создается несколько стримов. О них можно думать как о шареных папках или тематических чат-комнатах. Далее, отправляющий пишет письмо (в наших терминах — создает топик) не просто в пустоту, а в одну из комнат (стримов). То есть, если я пишу скажем «у меня день рождения, приходите меня поздравлять», я не просто всем его пишу, я пишу его в стрим offtopic. И все, кто подписан на этот стрим, видят, что появился новый топик. Как-то так, в общем. Ведь почти всегда, когда пишешь письмо, понятно, куда его положить.

А роботам какое раздолье! Тут вообще получается инверсия. Допустим, я хочу подписаться на комменты в ЖЖ. Сейчас мне нужно оставить ему мой емейл. А в нашей модели ЖЖ просто публикует поток комментариев как отдельный стрим. Захотел — добавил себе на панель. Надоело — убрал. Потом опять вернул. Тут еще важно, что независимо от того, подписан ли я, комменты в стрим все равно будут идти. Вернись я через год, я смогу все пропущенное перечитать.

Итого, я бы взял стримы у ЖЖ, twitter, facebook, G+, скинул бы в папочку social и читал бы все апдейты в одном месте. Заметьте, никакой возни с фильтрами! Ozon, Amazon и Yandex.Money тоже публикуют стримы с подтверждениями/нотификациями, но приватные — их вижу только я и сам магазин. Скидываем в папку Orders. Все стримы github репозиториев, которые мне интересны — они публичные — положил бы в папку github и читал бы там. Ну и так далее. Черт, да даже на RSS можно таким образом подписаться, и никакой google reader не понадобится.

Зафиксируем. Для человеческой переписки модель стримов эквивалентна созданию чат-комнат — навязанная всем какая-никакая, а структура над перепиской. Effort-free для участников.

Для автоматических рассылок прелесть и в той же самой организации, и в инверсии зависимости: емейл я никому не оставляю, поток обновлений идет сам по себе, а я только выбираю что мне читать. Грубо говоря, как подписки в твиттере. Чувак знай себе пишет, а я то зафолловлю, то разфолловлю. Согласитесь, когда понимаешь, что чтобы на что-то там подписаться, никому никаких данных о себе оставлять не нужно — сразу кажется, что только так и должно быть. Feels right, короче.

Законный вопрос — а как мне написать письмо человеку лично? Тут всё просто, общий стрим «Personal» есть у всех. Создаешь там топик, доступ даешь только себе и адресату. Вуаля.

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

С чатами та же песня. Достаточно одного бесконечного топика в «Personal» (ну или в «Chats») с темой «Чат в Васей Пупкиным», с доступом для нас двоих — дописывайте сообщения в конец постоянно.

Чтобы чаты и почта работали в едином интерфейсе, он должен быть нейтрайльным к размеру сообщения — и однострочники, и тирады на страницу должны смотреться одинаково естественно. Тонкая работа, придется постараться, но ничего невозможного.

Давайте закругляться. Смотрите:

  1. мы перепридумали персональную почту, убрав фильтры и при этом улучшив, а не ухудшив ее потребительские качества;

  2. перепридумали email-нотификации, убрав необходимость оставлять email;

  3. объединили чаты и почту;

  4. засунули в эту модель блоги, объеденив в одной платформе и авторов, и подписчиков;

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

  6. исписали в процессе кучу экранной бумаги;

  7. ушли счастливые.


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

И несколько примеров:

Персональные чатики:



Я пишу этот пост в свой ЖЖ (на самом деле ЖЖ заменит обычный стрим):



Комментарии к одному из предыдущих постов:



Вот я уже читаю «френдленту» — на самом деле, просто собрал стримы чужих блогов в папку:



Папка здесь — не более, чем группировка стримов на клиенте. Каждый организует папки как хочет. Ключевым понятием все равно остается плоский стрим.

А вот нотификации от Амазона. Основные преимущества перед почтой тут — возможность аккуратно группировать на стороне отправляющего:



Кстати, обратите внимание, что Амазон разрешил мне в последнем случае читать стрим, но не отвечать в топиках. Так вот изящно решается проблема «пожалуйста, не отвечайте на это письмо» и no-reply@domain.com емейлов (они вообще работают?)

Tags: веб-шмеб, идеи, интерфейсы, наглядный пример, формула успеха
Subscribe

Recent Posts from This Journal

  • IPFCP, ой, то есть ICFPC-2020

    Ровно 11 часа назад закончился ICFPC 2020. Так как я предусмотрительно взял выходной на остаток дня, готовьтесь, сейчас буду РАССКАЗЫВАТЬ. Отчет за…

  • Почему JetBrains не напишет легковесную IDE

    Еще в 2011 я публично отказался от ИДЕ и так с тех пор и живу: TextMate, Vim, Sublime, LightTable, VS Code, снова Sublime. И вот год назад я…

  • Продолжаем обобщать и передергивать

    Евгений Трифонов накатал ответку на мой старый Software Disenchantment! На что у меня есть несколько замечаний, по мелочам и по существу. Готов…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 101 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →

Recent Posts from This Journal

  • IPFCP, ой, то есть ICFPC-2020

    Ровно 11 часа назад закончился ICFPC 2020. Так как я предусмотрительно взял выходной на остаток дня, готовьтесь, сейчас буду РАССКАЗЫВАТЬ. Отчет за…

  • Почему JetBrains не напишет легковесную IDE

    Еще в 2011 я публично отказался от ИДЕ и так с тех пор и живу: TextMate, Vim, Sublime, LightTable, VS Code, снова Sublime. И вот год назад я…

  • Продолжаем обобщать и передергивать

    Евгений Трифонов накатал ответку на мой старый Software Disenchantment! На что у меня есть несколько замечаний, по мелочам и по существу. Готов…