Недавно появился хабрапост «Arc — революционный браузер нового поколения». Его заминусовали с реакцией «вы тут выдаёте за революцию очередной скин для Chromium».  Я активно пользуюсь Arc и ощущаю, что из-за неудачного поста Хабр может пройти мимо хорошего продукта. Да, слово «революционный» тоже считаю излишне громким. Но Arc — это не просто «добавили нескучные обои», а более интересная штука, способная пригодиться части хабравчан. По-моему, тот текст плохо доносил преимущества, потому что начинал с малозначимых «свистелок-перделок» в духе «можно кастомизировать цвета», и до главного люди просто не дочитывали. Главное вижу в ряде UX-решений, помогающих с типичными проблемами. Зачастую что-то похожее есть и в других браузерах, но здесь реализовано нативнее и полнее. Поэтому решил описать для Хабра эти проблемы и решения. Браузерные вкладки напоминают мне мультфильм «Золотая антилопа». На тебя потоками льются сокровища интернета, но когда их становится слишком много, легко оказаться погребённым под кучей этих сокровищ. Зачастую у людей прорва открытых вкладок, найти нужную среди них сложно, при этом большинство открытых уже неактуально. Но поди разберись, которые актуальны. Что с этим делать? Arc действует радикально: если вкладка не закреплённая и к ней не обращались дольше определённого срока (по умолчанию 12 часов), просто берёт и закрывает её сам. Так сказать, встроенный garbage collection. Сначала я ощутил дискомфорт. Как это браузер что-то закрывает без спроса? Как я могу терять контроль над своей панелью вкладок? Точно ведь что-то важное пропадёт!  Но стало комфортнее, когда увидел в браузере список закрытых вкладок Archived Tabs и понял, что при важной потере смогу обратиться туда. Там даже есть фильтры для облегчения поиска: И на практике обнаружил, что заглядывать в Archived Tabs мне почти не приходится. То есть заметных потерь на самом деле и не оказалось. А когда привык запинивать важное, чтобы оно не исчезло, ощутил не потерю контроля, а наоборот, его обретение. Раньше вкладки словно размножались без моего ведома, а теперь долго живут те, про которые я сам решил, что они мне нужны. Не уверен, что ваши ощущения будут такими же, возможно, вам это совершенно не подойдёт. Но думаю, что есть смысл попробовать. Другое UX-решение тоже помогает бороться с лишними вкладками. Если читаешь страницу из числа Favorites и кликаешь на внешнюю ссылку, по умолчанию она открывается в виде своеобразного «поп-апа». Вот я в Gmail открыл письмо, кликнул на ссылку в нём, и страница открылась «поверх» Gmail: Возле этого поп-апа видны кнопки «закрыть» и «развернуть в полноценную вкладку». В чём смысл? Очень часто страница требует лишь беглого ознакомления, после которого её можно смело закрывать. Но в обычном браузере велика вероятность, что даже такая «разовая» вкладка останется висеть надолго. А поп-ап требует принять решение: после ознакомления либо сразу закрываешь его, либо (если страница потребуется дальше) открываешь уже «как следует». В итоге «одноразовые» вкладки отсеиваются естественным образом и не захламляют панель.  Думаю, я не единственный на Хабре, кому мешает сосредоточиться смешение разных вещей. Тут рабочая задача, здесь жена что-то прислала, вот домен надо продлить, ОЙ ПЕСНЯ ПРО КАПИБАРУ — и всё это в одной панели вкладок. Дальше всё как в тумане, а потом рабочая задача не сделана, зато ты зачем-то узнал длину Дуная. Знакомо? Создатели браузеров над этим уже задумывались: например, в Vivaldi недавно добавили «workspaces», чтобы разделять вкладки на разные темы. Но в Arc подобное не просто «добавили» опциональной фичей, а заложили прямо в фундамент, здесь всё рассчитано на то, чтобы браузер было удобно использовать таким образом. Ключевая фича Arc — пространства (spaces), созданные именно для разделения контекстов. У каждого из них не только собственный набор вкладок, но и собственный цвет, чтобы моментально понимать, в каком ты сейчас находишься: Переключаться между пространствами легко: либо хоткеями Ctrl+число, либо свайпами по сайдбару. Сколько пространств обычно будет у пользователя? Самое напрашивающееся действие — разделить всё на «рабочее» и «личное». Но здесь легко можно и для каждого небольшого проекта по пространству завести, так что тут уж кому как удобнее.  Решает ли это все проблемы со смешением контекстов? Нет, друзья по-прежнему будут невовремя присылать вам сообщения, отвлекающие от чего-то. Но помогает ли это в некоторой степени? По-моему, да. Эта проблема связана с предыдущей. Зачастую у нас разные логины на одних и тех же сайтах (например, личный и рабочий гуглоаккаунты). В обычном браузере можно переключаться между ними, но не всегда это удобно: не сделаешь ли случайно что-то не с того аккаунта? В Arc есть сущность «профили», которую можно привязывать к пространствам. Поэтому в разных пространствах легко быть залогиненным разными гуглопочтами. И по цвету пространства сразу понимать, не пишешь ли по ошибке личный матерный твит в корпоративный твиттер. Вроде бы эта задача решаема и без Arc. Скажем, раньше я пользовался связкой «Chrome для рабочих задач, Vivaldi для личных». Это помогало: когда в разных браузерах залогинен под разными аккаунтами, то по окну тоже сразу понимал, где какой. Но всё равно возникали неудобства. Например, если кликаю по ссылке в Telegram, то какой из двух браузеров должен открываться? Ведь ссылки бывают и рабочими, и нерабочими. В Arc это любопытно решается с помощью вспомогательного «мини-браузера» Little Arc. По умолчанию ссылки из других приложений открываются в специальном окне, и можно прямо в нём переключить профиль. А можно из него перейти к «полноценному» браузеру, заранее выбрав, в каком пространстве страница там откроется.    Более того, можно настроить, чтобы ссылки на отдельные домены сразу же открывались в нужном пространстве: В общем, опять полезное отделение мух от котлет. Я как-то уже писал на Хабре, что софт затачивают под массового пользователя, а в итоге страдают продвинутые. Например, разработчики могут не делать своим приложениям хоткеи, потому что массовый пользователь их всё равно не станет учить. Так вот: в Arc с удовольствием обнаружил, что о продвинутых пользователях тут явно думали. Например, понравилось, когда попробовал использовать браузерный хоткей Cmd+S при открытом гуглдоке и возникла коллизия с хоткеем Google Docs. Браузер с помощью всплывашки подсказал «если вам нужен мой вариант, тогда нажмите ещё раз, ну и при желании можете переназначить хоткей вот тут». Не помню, чтобы другой софт так заботился. Ещё интересное для продвинутых пользователей — командная строка, которая совмещена с адресной. По нажатию на Cmd+T появляется крупная строка. Можно ввести в ней адрес сайта, нажать «Enter», и он откроется в новой вкладке — то есть реализовано то, что обычно по Cmd+T происходит в других браузерах. Но можно вместо этого, например, начать набирать название какой-то из функций браузера, и он предложит ей воспользоваться:  А ещё продвинутым пользователям, которые привыкли ко всяким tmux, может понравиться встроенный сплит-скрин — удобно смотреть на разные вкладки внутри одного окна: Есть и другие функции вроде Easels для «коллажей интернет-контента». Но в них я большой своей потребности не ощутил, так что как следует не расскажу.   А ещё есть штуки вида «забота о мелочах»: например, хоткей «скопировать адрес текущей страницы» автоматически обрезает UTM-метки. Браузер понравился мне настолько, что я сделал его своим основным. Но совершенно не хочу сказать, что он идеален и точно вам подойдёт. Серебряных пуль не существует. Поэтому пару слов скажу и о минусах. Главное ограничение: пока что Arc есть только для macOS. Версию для Windows сейчас пилят, и в ней решили максимально использовать уже существующую кодовую базу на Swift. Поскольку нормальные люди не делают Windows-приложения на Swift, разработчики Arc обнаружили, что они тут первопроходцы, и теперь им придётся двигать всю индустрию вперёд, реализуя первыми некоторые штуки. Ну, удачи им, но не знаю, сколько времени потребуется. А про Linux всё пока что вообще непонятно. Второй сложный вопрос. Часть браузеров вроде Brave и Firefox делает упор на приватность. У Arc на сайте тоже написаны красивые слова о приватности, но пока проект на раннем этапе, не понимаю, насколько они будут подтверждаться делом. Исходники на данный момент закрыты, вместо монетизации проект пока что живёт на инвестиции, какой именно эта монетизация будет в итоге — пока что не знаю. К вопросу о «раннем этапе»: пока что не было публичного релиза, браузер в ограниченном доступе по инвайтам (получить их несложно, обращайтесь), и порой ощущается, что это «work in progress». С критическими косяками не сталкивался, но в мелочах ощущение бета-версии присутствует.  Есть спорные решения. Например, чтобы не «занимать кучу места адресной строкой», её тут переместили в сайдбар, так что по умолчанию виден только домен. Место это экономит, но подозреваю, на Хабре с его продвинутой аудиторией многим хотелось бы всегда видеть полный адрес, а не нажимать что-то специально для этого. Ну и да, под капотом стандартный Chromium. Это по-своему полезно: расширения для Chrome подходят к Arc. Но мне, как и многим, хотелось бы видеть разнообразие браузерных движков, а не монопольное доминирование одной компании. Arc не помогает уйти от этой монополии.  Общее ощущение от Arc у меня такое: его создатели внимательно посмотрели, в каком направлении развиваются браузеры в 2023-м, и попробовали зайти туда дальше других, причём без многолетнего груза легаси.  Если взять каждый отдельный элемент Arc, где-то в других браузерах непременно найдётся похожее: и вертикальная панель вкладок, и профили, и командная строка, и сплит-скрин. Все главные идеи уже воплощали если и не в самих браузерах, то в расширениях для них. Но одно дело — когда идею приделали к браузеру сбоку расширением, а другое — когда её заложили в основание. Многое в Arc ощущается для меня более нативным и глубже интегрированным. Поэтому сейчас предпочитаю пользоваться им. И думаю, что для многих из вас (но далеко не для всех) он тоже может оказаться оптимальным вариантом. Минутка рекламы напоследок: если браузеры вас интересуют, потому что вы работаете с JavaScript, то вам может быть интересна наша конференция HolyJS, до которой остались считанные дни. Ну, на скриншотах в тексте вы и сами уже небось её заметили!  ContentProvider