7 сезон · выпуск 11 · 26 июля 2022 · 53 мин

Окно в веб. Как работает браузер

Разработка Интернет и связь Наш человек в…

Слушать · 52:54

30 лет назад ученые из CERN (Европейский Центр ядерных исследований) придумали помещать в текстовый документ ссылки на другие текстовые документы. Из этого вырос первый браузер, а потом и современный веб. Как работает программа, отображающая весь интернет, и кто занимается разработкой этого масштабного проекта? Рассказывает Роман «Кукуц» Иванов, project-менеджер в команде Яндекс Браузера.

Партнёр этого эпизода — компания Яндекс. Вместе с сотрудниками Яндекса мы продолжаем разбираться, как устроены популярные сервисы и технологии. Слушайте наши прошлые совместные выпуски про голосового помощника Алису, поисковые системы, маркетплейсы и другие IT-продукты.

Почитать больше про браузеры: https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work

Над выпуском работали

Редакторка
Маша Агличева
Продюсер
Павел Боровков
Звукорежиссерка
Нина Мамотина
Дизайнер обложки
Петр Сутупов

Транскрипт

Самат Галимов, Роман Иванов · расшифровано автоматически, ошибки возможны

  1. Самат Галимов

    Всем привет! Меня зовут Самат Галимов, и это подкаст «Запуск завтра». Как технический директор я пытаюсь разобраться, как устроены сложные и интересные штуки. Я зову профессионалов, с которыми можно поговорить простым человеческим языком. Готов поспорить, что вы сегодня с утра уже успели воспользоваться той технологией, о которой мы сегодня будем говорить. Это веб-браузеры. Это программы, через которые мы смотрим интернет. Это одни из самых больших и сложных программных проектов, созданных человечеством. В его разработке принимают участие тысячи людей из сотни компаний. Один из важных участников— это Яндекс. И этот эпизод мы сделали как раз с ним. На примере их продуктов мы продолжаем разбираться, как устроен IT.

  2. Роман Иванов

    Привет, меня зовут Роман Иванов. Я продакт-менеджер в команде Яндекс.Браузера. Занимаюсь всякими исследовательскими проектами.

  3. Самат Галимов

    Был ли интернет до браузеров?

  4. Роман Иванов

    Да, интернет был до браузеров. До браузеров была почта, до браузеров были так называемые юзнет. Это, ну, как форумы в современном интернете. Был IRC, Internet Relay Chat. Он тоже возник за несколько лет до веба.

  5. Самат Галимов

    Это тысяча восемьсот... тысяча девятьсот восемьдесят пятый, восьмой где-то, да?

  6. Роман Иванов

    Да-да-да, как-то так. Собственно, World Wide Web, это 1991. Надо понимать, чем именно веб, именно браузеры изменили эту картину драматически. Тем, что все это было настолько разрозненно, ты должен был знать конкретный адрес конкретного сервера для того, чтобы подключиться к нему и там найти какие-то файлы. Откуда ты его мог узнать? Только если тебе его кто-то расскажет. Не было никакого централизованного поиска, каталога, ничего. Всё это начало появляться незадолго до появления World Wide Web, но, конечно, именно вместе с вебом это стало вот именно доступным для самостоятельного изучения, для погружения и для массового пользователя в конечном итоге.

  7. Самат Галимов

    Окей. 91-й год. Как появился веб-браузер? Какие задачи он решил? Где это всё происходит?

  8. Роман Иванов

    Всё происходит в Европе. В 1991 году в ЦЕРНе Тим Бернерс Ли решил, что нужно выкладывать научные документы, а они ссылаются друг на друга, и придумал, как ссылаться из одних документов в другие.

  9. Самат Галимов

    То есть у ученых ЦЕРН— это центр ядерных исследований, где как раз построен адронный коллайдер. И там один из ученых говорит, что это много у нас документов, нужно по ним искать. Или в чем была первичная задача?

  10. Роман Иванов

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

  11. Самат Галимов

    Реально было бы удобно, на самом деле, классная идея.

  12. Роман Иванов

    Так, ну и всё. Из этого, значит, всё выросло. В смысле, придуман был язык HTML, сделан первый браузер Mosaic, который позволял такие документы открывать. Это сначала были просто документы, просто файл. Ты открываешь файл, но в нём есть ссылки. Но другой файл, да. Ну а дальше уже вся интерактивность, которая за пределами просто клика на ссылку, про то, что документ может быть сегодня один, а завтра по этому же адресу другой, или в зависимости от того, кто на него смотрит, это все начало развиваться постепенно, и какие-то, значит, веб-приложения, поисковики и так далее появились уже несколько лет спустя.

  13. Самат Галимов

    Значит, изначально это была программа, которая умела открывать документы определенного формата, и в этих документах был какой-то способ задать ссылку на другой документ. И вот эта программа просто делала так, чтобы эта штука становилась кликабельной. То есть на нее можно было... Да-да-да. Супер.

  14. Роман Иванов

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

  15. Самат Галимов

    Окей. Вот у нас Тим Бернерс-Ли сделал первый браузер, когда сделал этот формат, HTML придумал. Сейчас 2022 год. Вот за эти 30 лет что произошло? Какие были браузеры?

  16. Роман Иванов

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

  17. Самат Галимов

    Самых придумал.

  18. Роман Иванов

    JavaScript, да. И фактически к середине 90-х или второй половине 90-х Netscape стал почти монополистом, стандартом де-факто. Это не устроило компанию Microsoft, которая такая, что это такое? Тут мы же делаем самую главную операционную систему, а тут какой-то интернет возник. Давайте попробуем что-нибудь тоже сделать. И они сделали Internet Explorer, который Вставили по умолчанию в Windows, начиная с Windows то ли 95, то ли 98.

  19. Самат Галимов

    Браузеры конкурировали между собой, типа я сделаю более крутой, я сделаю более крутой.

  20. Роман Иванов

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

  21. Самат Галимов

    Для начала надо купить.

  22. Роман Иванов

    Были они платными, да, это правда.

  23. Самат Галимов

    А компания Microsoft сказала, забирайте бесплатно, вот купили Windows, в комплекте идет Internet Explorer. И тем самым они просто уничтожили рынок браузеров в принципе.

  24. Роман Иванов

    Все так. И это была первая браузерная война, которая была выиграна Майкрософтом за счет вот этой вот предустановки браузера в операционную систему. Выиграна с довольно большим уроном для пользователей.

  25. Самат Галимов

    Internet Explorer стал доминирующим браузером.

  26. Роман Иванов

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

  27. Самат Галимов

    Он перестал развиваться. Довольно логично.

  28. Роман Иванов

    Выходили новые версии Windows и новая версия Internet Explorer тоже, но она почти не поддерживала каких-то новых и клёвых штук, с помощью которых можно делать сайты, интернет, удобнее, проще и круче. И сначала от него начал довольно бодро откусывать Firefox во второй половине нулевых годов, и в конце нулевых годов компания Google выпустила свой браузер Chrome, который как за счет того, что это хороший продукт, так и за счет огромных усилий, вложенных Google в дистрибуцию этого браузера, начал очень быстро расти.

  29. Самат Галимов

    Что мы имеем сейчас? Какие сейчас есть браузеры?

  30. Роман Иванов

    Еще год назад я бы сказал, что есть три основных браузера, если говорить про мир. Значит, это, сказал бы я, Chrome, Safari и Firefox. К сожалению, Firefox падает по рыночной доле и упал уже в достаточной степени, чтобы я не мог так сказать. Сейчас осталось два больших браузера— это Chrome и Safari. 60% Chrome, 20% Safari, по 4% у Firefox.

  31. Самат Галимов

    Надо пояснить, Chrome— это браузер, который делает компанию Google в основном, Firefox принадлежит компании Mozilla Foundation, это типа независимая некоммерческая организация, которая пытается делать веб лучше. И Safari— это браузер, который делает компанию Apple, и он в iPhone'ах и на MacBook'ах предустановлен.

  32. Роман Иванов

    Да, всё так. А Firefox упал около 4% у них мировая доля, и у Edge, это майкрософтовский браузер, тут теперь не Internet Explorer, теперь Microsoft Edge, вот, и дальше там Samsung, Opera, в общем, третий игрок, к сожалению, уходит, и это проблема. потому что мы можем, к сожалению, вернуться в ситуацию, когда есть движок-монополист, и развитие интернет-платформы от этого может пострадать. Поэтому лично я буду очень рад, если Firefox продолжит свое существование еще долго, потому что он обеспечивает некоторую конкуренцию между движками, а конкуренция – двигатель прогресса.

  33. Самат Галимов

    давай поговорим про то, из чего состоит браузер. Потому что мы использовали слово «движок», например, но не поясним, что это такое.

  34. Роман Иванов

    Чтобы перейти к движкам, мы сказали, что вот есть Chrome, Safari, Firefox, и дальше вот эти вот все остальные— это плеяда браузеров, созданных на базе открытого проекта Chromium. Это Microsoft Edge, это Samsung Internet, это Opera, это Brave, это Яндекс.Браузер, в конце концов. И вот когда мы говорим, значит, про движок, тут надо понимать, что есть два значения у этого слова, что ли. Слово «движок» может означать конкретно движок рендеринга, то есть ту часть браузера, ту программу, которая превращает код в картинку, которая у вас на экране, в которую вы можете нажимать. Еще словом «движок» можно назвать целом, вот открытый проект Chromium, на базе которого сделаны те и другие третьи и четвертые браузеры, это, в общем, тоже движок. На движке Chromium, можно сказать.

  35. Самат Галимов

    Ну, включая в себя не только движок рендеринга, еще много всего другого.

  36. Роман Иванов

    Да, да, да. А много других компонентов. Какие это компоненты? Давайте попробуем перечислить, из чего вообще состоит браузер. Браузер состоит из Ну вот мы уже упомянули движок рендеринга. Это важная часть, но которой недостаточно, чтобы сделать свой браузер. Более того, вот в хромиуме движок рендеринга называется Blink. У него есть отдельное свое имя. В Safari движок рендеринга называется WebKit. Вообще есть традиция движкам рендеринга давать свои отдельные имена. У Firefox это Gecko, у Internet Explorer это был Trident. Значит, кроме него, в браузере есть главный процесс. Это, собственно, то, что управляет всеми остальными процессами, что вызывает движок рендеринга, что... Такой сборщик. Да.

  37. Самат Галимов

    Дирижер в оркестре. Всё так. Какие ещё инструменты в оркестре есть?

  38. Роман Иванов

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

  39. Самат Галимов

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

  40. Роман Иванов

    Да, значит, есть механизм обмена сообщениями между главным процессом вспомогательными и песочницей. И, собственно, вспомогательные процессы, которых довольно много разных. Вот про рендеринг мы уже поговорили. Это то, что вот отрисовывает тот код. Есть еще, например, сетевой процесс. В интернет ходит отдельный процесс. Это просто более эффективно, потому что не нужно останавливать, например, процесс отрисовки страницы для того, чтобы скачать какой-то дополнительный ресурс. Это делает другой процесс. Какие еще там могут быть процессы вспомогательные? Ну, например, декодеры видео и аудио файлов. Это тоже отдельные процессы. GPU, то есть графический ускоритель процесса, который его использует тоже и живет отдельно.

  41. Самат Галимов

    Что должен сделать движок для того, чтобы текстовый файл, технический код превратился в красивую картинку?

  42. Роман Иванов

    Предположим, браузер уже получил этот документ, этот текст, который ему надо перевести в то, что человек видит на экране. Значит, что делает браузер? Он начинает несколько параллельных процессов. Во-первых, он вот этот документ читает сразу с несколькими целями. Одна из целей— это построить так называемый дом, объектную модель документов. Это, ну, грубо говоря, дерево, в которое написано, в какой элемент, в какой вложен.

  43. Самат Галимов

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

  44. Роман Иванов

    Да, спасибо большое.

  45. Самат Галимов

    Давай начнем с того, что есть вообще HTML-документ. Это типа то, с чего все начинается.

  46. Роман Иванов

    Да. Те самые элементы, о которых я сказал только что, они как раз записаны в виде HTML тегов. Ну вот, например, ссылка— это элемент. Или, например, абзац, или заголовок.

  47. Самат Галимов

    Окей.

  48. Роман Иванов

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

  49. Самат Галимов

    И это всё внутрь друг друга вложено. Например, внутри элемента абзац может быть элемент, слово выделенное жирным. Да, кайф.

  50. Роман Иванов

    Вот, вот эта вложенность элементов, ее нужно прочитать, распознать и собрать из этого дерева.

  51. Самат Галимов

    Из текстового формата собрать, уже такой, в память компьютера это уложить.

  52. Роман Иванов

    Да, в памяти компьютера в виде дерева. Это вот один процесс, который идет, а параллельно этому идет процесс, так называемый preload scanner, как это?

  53. Самат Галимов

    Мы ищем ссылки на внешние документы, которые надо подгрузить.

  54. Роман Иванов

    Точно. Дело в том, что HTML-документ зачастую, почти всегда, содержит в себе ссылки на несколько разных видов внешних документов, без которых его невозможно правильно отобразить. Это таблицы стилей, которые объясняют, как нужно раскрасить или там показать вот эти вот... Что такое жирный?

  55. Самат Галимов

    Стилизовать, короче.

  56. Роман Иванов

    Да, насколько он жирный.

  57. Самат Галимов

    Или какой шрифт используется.

  58. Роман Иванов

    Или какой шрифт используется. Кроме таблиц стилей, собственно, есть шрифты. Хорошо, что ты их упомянул. Это тоже внешние файлы. Есть скрипты, программы на языке JavaScript, которые

  59. Самат Галимов

    тоже добавляют интерактивность к этому сайту.

  60. Роман Иванов

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

  61. Самат Галимов

    О, Господи.

  62. Роман Иванов

    А если скрипт сделан так, чтобы он не требовался для построения дерева, то его нужно пометить специальной пометкой, что «Окей, этот ты можешь сейчас пропустить, скачать его чуть позже». Итак, Preload Scanner находит все эти ссылки и ставит задачу сетевой подсистеме их скачать. Дальше, или даже параллельно с этим, вот те самые стили, о которых я говорил, из них строится отдельное второе дерево.

  63. Самат Галимов

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

  64. Роман Иванов

    Безусловно.

  65. Самат Галимов

    Окей. Ты начал говорить про стили.

  66. Роман Иванов

    Да. Что такое стили? Вообще этот язык, на котором это пишется, называется CSS. Это каскадная таблица стилей, этот CSS, так вот на русский переводится. Каскадная – это значит, что тоже один стиль может наследовать от другого то, что в нём написано. Я не хочу погружаться в эти детали, это звучит сложновато. Но идея в том, что там тоже дерево, и это дерево другое. И, построив это дерево, и дерево элементов, и дерево стилей, дальше браузер соединяет эти два дерева в третье.

  67. Самат Галимов

    Окей. Вот у нас есть дерево HTML, дом-дерево, ты его сказал, и есть дерево стилей.

  68. Роман Иванов

    Да. И они вместе соединяются в дерево рендеринга.

  69. Самат Галимов

    А, это элемент и плюс то, как его надо застилизовать.

  70. Роман Иванов

    Точно.

  71. Самат Галимов

    Хорошо.

  72. Роман Иванов

    Значит, соединив их вот в это вот дерево рендеринга, браузер приступает к следующему этапу— layout.

  73. Самат Галимов

    Layout— расположение элементов, я бы так это назвал.

  74. Роман Иванов

    Расположение элементов, да. В этот момент браузер смотрит, на каком устройстве он запущен, какой там экран. Потому что этот этап требует уже расположения элементов конкретно под данный экран данного устройства. Ведь дело в том, что абсолютно одна и та же страница на экране мобильного телефона и на экране десктопа может выглядеть по-разному по В зависимости от размера экрана, по-разному элементы будут расположены.

  75. Самат Галимов

    Статья на компьютере будет широкая, ну там типа как две ладони, а статья на телефоне не может быть такой широкой, потому что ладошка не влезает в экран телефона. Окей.

  76. Роман Иванов

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

  77. Самат Галимов

    А холст страницы— это такая ширина, это ширина твоего экрана или окна браузера, если это десктоп, и очень длинные колбаса, да?

  78. Роман Иванов

    Ну, настолько длинные, сколько элементов есть, чтобы туда поставить.

  79. Самат Галимов

    Ага, окей.

  80. Роман Иванов

    И, собственно, последний этап— это раскраска. Собственно, отрисовка.

  81. Самат Галимов

    Каждого элемента отдельно вот внутри своего прямоугольничка.

  82. Роман Иванов

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

  83. Самат Галимов

    Вот мы построили два дерева, соединили их вместе, отрендерили, но ведь это получилась статичная страница.

  84. Роман Иванов

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

  85. Самат Галимов

    То есть это можно вообще визуализировать как два независимых процесса. Один процесс— это отрендерить страницу, это значит, из текста формата перевести ее в визуальный, чтобы мы видели картинки, видео и вот это все на экране. А второй процесс— независимый. Это браузер запускает код на языке JavaScript, программы, написанные на языке JavaScript, и они работают параллельно. При этом вот эти программы могут изменять содержимое страницы.

  86. Роман Иванов

    Все так. Вау.

  87. Самат Галимов

    Поэтапно процесс понятен. А насколько сложен каждый из этих этапов?

  88. Роман Иванов

    Чтобы написать движок браузера, который занимается этими этапами, о которых мы сейчас говорили, нужно очень много усилий. Потому что код всех частей страницы может быть написан с довольно большого количества разными ошибками. Ну вот представим себе просто про HTML, если говорить про HTML, там элементы должны быть вложены друг в друга. А что произойдет, если ты вложишь с перекрытием, если ты не закроешь один элемент, откроешь другой, а потом закроешь первый, а потом закроешь второй.

  89. Самат Галимов

    Мы так не договаривались.

  90. Роман Иванов

    Мы так не договаривались. А браузер должен как-то определенным образом себя в этой ситуации повести. Он не должен сломаться. У него это получается, потому что движок сделан так, что... Ну, вот тот же рендеринг движок и движок JavaScript сделаны так, чтобы допускать довольно большое количество возможных послаблений. нельзя сделать так, что типа в этой ситуации он откажется страницу показывать. В смысле, можно так сделать. Первые браузеры так и были устроены. Например, там какой-нибудь интернет-эксплорер версии 1 примерно так и работал. Но, конечно, пользователь будет недоволен. Он хочет увидеть страницу пусть и не в идеальном виде, раз уж ее разработчик оказался таким криворуким. Но как-то увидеть. Поэтому нужно тут, во-первых, спокойно относиться к возможным неточностям разработчиков. Нужно при этом поддерживать стандарты. Ведь все эти языки, HTML, CSS, JavaScript и так далее, они все стандартизированы. Эти стандарты с каждым днём развиваются. С каждым днём появляются дополнения к этим стандартам, улучшения, какие-то новые возможности.

  91. Самат Галимов

    То есть это надо специально что-то сделать для того, чтобы принимать на вход не только хорошие сайты, но ещё и стрёмные.

  92. Роман Иванов

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

  93. Самат Галимов

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

  94. Роман Иванов

    Ну, не совсем один, да, многие имеют общий движок, это правда. Почему? Написать движок браузера непросто. Компания Mozilla решила написать новый движок, не вот Presto, который используется в Firefox все дорогу, а новый, называется Servo. Они писали его 6, по-моему, лет.

  95. Самат Галимов

    Ничего себе.

  96. Роман Иванов

    После чего признали, что для того, чтобы он полноценно работал, нужно вложить еще лет 6-8.

  97. Самат Галимов

    Еще столько же получается.

  98. Роман Иванов

    И сдались.

  99. Самат Галимов

    Просто перестали это делать?

  100. Роман Иванов

    Просто перестали это делать.

  101. Самат Галимов

    Офигеть. А это эксперты, это люди, которые умеют разработать веб-браузеры.

  102. Роман Иванов

    Я бы даже сказал, знаешь, что в 21 веке новых полноценных браузерных вот именно рендеринг-движков, по-моему, написано ноль. Всё идёт из 20-го.

  103. Самат Галимов

    Офигеть. У меня прямо мурашки по коже, потому что есть немного проектов, которые такого объёма.

  104. Роман Иванов

    Сложность возникает именно тогда, когда у тебя бесконечное разнообразие. Точно так же с браузерами. Если бы браузеру нужно было отображать одну конкретную страницу, вообще ничего не стоит его написать. Но если он должен отображать бесконечное количество разнообразного кода, который написан самыми разными людьми за 30 лет.

  105. Самат Галимов

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

  106. Роман Иванов

    Не, ну слушай, наверняка есть какое-то большое количество движков-браузеров, которые не используются в реальной жизни.

  107. Самат Галимов

    Нормальных, популярных.

  108. Роман Иванов

    Да, но вот если говорить про популярные рендеринг-движки, то сейчас их три. Это WebKit, который использует Safari, это Blink, который использует Chrome, и хромиум-браузеры, и это Преста, который использует Firefox. У Майкрософта был свой движок, и они от него отказались, тоже перешли на хромиум, на Blink.

  109. Самат Галимов

    То есть, если говорить именами компаний, то это движок, который разрабатывает в основном компания Apple, есть движок, который в основном разрабатывает компания Google, и есть движок, который в основном разрабатывает Mozilla.

  110. Роман Иванов

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

  111. Самат Галимов

    Вот с этого момента поподробнее. Вот, например, движок Chromium, который в основном браузера Google Chrome. Насколько его разрабатывает Google, а насколько другие компании? Потому что я слышу, что там не один Google.

  112. Роман Иванов

    Там, конечно, не один Google. Там, кроме Google, и Яндекса, который тоже один из топовых контрибьюторов в проект Chromium.

  113. Самат Галимов

    Ничего себе.

  114. Роман Иванов

    Его развивают еще ребята из Microsoft, которые делают свой браузер, свой Edge, и тоже, значит, вносят свои изменения в общий код. Из Opera, которая делает свой браузер и вносит свои изменения в общий код. Из браузера Brave, из компании Samsung, Naver. Если смотреть на количество изменений, которые делает Яндекс, то Яндекс на 5-м, 7-м, 8-м, ну, короче, в первые десятки компаний, которые вносят изменения в открытый проект Chromium.

  115. Самат Галимов

    Мы сейчас определили, что браузер— это одна из сложнейших штук, которую сделали программисты, может быть, за всю историю развития IT. Почему они делают с open-source? Почему Google не держит у себя в закрытом коде? Зачем он делится этим со всем миром?

  116. Роман Иванов

    Бывает так, что там к нам кто-нибудь в интернете обращается и говорит, ну вы там Яндекс просто взяли то, что Гугл сделал. Гугл тоже не сам написал движок своего браузера. Дело в том, что когда браузер Хром появился, его рендеринг-движком был WebKit. Они не сделали свой рендеринг-движок, они взяли WebKit, который делал Safari.

  117. Самат Галимов

    И он был опенсорсным.

  118. Роман Иванов

    И он был опенсорсным.

  119. Самат Галимов

    Ничего себе, я не знал, что Google... То есть я успел забыть уже, что Chromium используется.

  120. Роман Иванов

    Более того, как бы компания Apple тоже не сама сделала движок WebKit. Она взяла открытый проект KHTML.

  121. Самат Галимов

    Который был в Linux.

  122. Роман Иванов

    Да, который сделал проект KDE в Linux. И сделал его в 99-м году. То есть, понимаешь, этот движок возник в 99-м году как опенсорсный, чисто опенсорсный проект. И потом постепенно эволюционировал в WebKit. Ну, Apple взяла, на его основе сделала WebKit, потом Google взял WebKit в свой браузер, потом начал его менять в сторону, которая была немножко несовместима с тем, как видела это Apple, и поэтому им пришлось его форкнуть.

  123. Самат Галимов

    И сделать копию.

  124. Роман Иванов

    Да, сделать как бы копию, которую называть своим именем, которая начала расти в другую сторону. Да, и которая начинает развивать по-своему, и которая начала расти в другую сторону, и так возник Blink, который вот в Chromium отвечает за рендеринг. Сейчас.

  125. Самат Галимов

    Но он, можно проследить его историю через там несколько поколений до KHTML, который был разработан в линуксовой команде, ну в команде KDE open-source.

  126. Роман Иванов

    Да.

  127. Самат Галимов

    Обалдеть.

  128. Роман Иванов

    Но на самом деле я же недоответил на вопрос, почему open-source, потому что в принципе можно было рендеринг движок оставить open-source, все остальное сделать закрытым, или даже может быть можно было форкнуть, я не помню какая там лицензия, но по-моему она позволяет закрытие исходников, можно было бы исходники закрыть. Но этого не было сделано, потому что каждый создатель движка видит свою миссию в том, чтобы развивать веб-платформу в целом. А развивать веб-платформу в целом, делая движок закрытым, труднее гораздо, потому что к тебе не могут прийти, помочь. Как ты видел, как я перечислял, огромное количество компаний со всего мира работает над хромиумом, например. И, конечно, развитие в этом месте было бы гораздо более медленным. Это то, что мы видели у Майкрософта. У Майкрософта был закрытый движок с закрытым исходным кодом. У оперы был собственный движок, который был тоже с закрытым исходным кодом, и который тоже не выдержал, ну, собственно, гонки развития веб-технологий просто потому, что одной компании в одиночку трудно развивать движок. Просто это прямо действительно сложно. Сложно, видишь, даже не написать с нуля свой движок, а развивать движок в одиночку компании, даже довольно большой, даже такой, как Microsoft, в одиночку трудно.

  129. Самат Галимов

    Ну конечно, вообще тот факт, что Microsoft отказался от своего собственного движка, это показывает, насколько это сложно, насколько это огромная задача, что даже Microsoft не вытянул. А над движком WebKit, который используется в Apple Safari, тоже работают много компаний или один Apple?

  130. Роман Иванов

    Смотри, у каждого open-source проекта есть тот, кто им управляет. И те, кто свои изменения предлагают, управляет проектом BlinkChromium, компанией Google, и она не возьмет изменения, патчи от сторонних компаний, если они не согласуются с тем, как она представляет себе развитие. И точно так же с проектом WebKit Apple управляет этим проектом и не возьмёт изменения, если они не согласуются с её видением. При этом, по-моему, над WebKit работают меньшее количество компаний. Тут надо понимать, что в WebKit открыт как бы только, собственно, рендеринг-движок, а в проекте Chromium открыт весь браузер. который наговорили, да, весь этот оркестр, там он открыт весь. И поэтому, если ты хочешь с нуля делать свой браузер, тебе либо надо взять только рендеринг-движок и нарисовать всю остальную сову вокруг этого овала, либо всё-таки брать не веб-кит, а брать хромиум, в котором вся сова нарисована, и дальше ты можешь этой сове уже сделать такое оперение, или не только оперение, какое тебе хочется.

  131. Самат Галимов

    Ты на самом деле ответил на мой незаданный вопрос, почему мы выбрали Chromium.

  132. Роман Иванов

    Смотри, когда мы выбирали, у нас были два варианта. Мы могли выбрать Chromium и могли выбрать Firefox. Firefox тоже позволяет, он тоже полностью открытый, его тоже можно взять и как угодно изменить. Изменив название, ты можешь сделать производный браузер на базе Firefox. Но выбрали мы хромиум, потому что он просто тогда уже был более модульным, более легко развиваемым. Интерфейс было проще менять и адаптировать, и он быстрее работал. Мы серьёзно тогда к выбору подошли, гоняли разные тесты, смотрели. В общем, выбрали хромиум, но и не жалеем об этом. Кажется, выбор был правильным.

  133. Самат Галимов

    Какой процент? Типа, движок— это 50% кода от всего браузера или там 20 или 30? Как это устраивает?

  134. Роман Иванов

    Ой, слушай, я боюсь соврать. Мне кажется, что это что-то в районе процентов 15 кода.

  135. Самат Галимов

    То есть он не такой большой по сравнению?

  136. Роман Иванов

    Не такой большой.

  137. Самат Галимов

    То есть обвязка вокруг движка рендеринга гораздо больше, чем сам движок?

  138. Роман Иванов

    Ну да, но посмотри, вот, например, браузеры современные умеют показывать файлы в формате PDF, и это достигается не с помощью какой-то сторонней программы, которая отдельно, значит, установлена, типа Adobe Reader, а с помощью прямо тоже open-source'ного куска, который является частью этого браузера, отдельной как бы папкой, отдельный проект, отдельный модуль, который занимается рендерингом PDF файлов, но который тоже часть браузера. Когда мы только начинаем Никаких этих опенсорсных PDF-ридеров не было, и нам приходилось за деньги лицензировать библиотеку компании Foxit. Впоследствии их код стал опенсорсным и стал основой для проекта PDFium, который вот сейчас в Chromium отвечает за отображение PDF. Большая часть того, что Яндекс.Абстримит отправляет, это как раз изменение в этом PDFium, потому что, например, мы научили его отображать PDF-файлы по мере загрузки. чтобы скачалась первая страничка PDF, чтобы можно было ее уже показать.

  139. Самат Галимов

    Спасибо большое, ребята. Это для меня очень удобно, когда большой PDF, и ты его начинаешь сразу видеть.

  140. Роман Иванов

    А раньше тебе приходилось сидеть и ждать, пока сгрузятся все 200 мегабайт. И там много таких, значит, изменений. Там сделали в этом PDF под систему, которая позволяет дозапрашивать данные по мере того, как они нужны, То есть тебе даже вообще не обязательно все эти 200 мегабайт скачивать. Ты скачал сколько-то, показал пользователю. Браузер скачал сколько-то, показал пользователю. Если пользователь перейдет к 38-й странице, окей, да запросим с 37-й по 40-ую.

  141. Самат Галимов

    Сейчас, погоди, Рома. Получается, что ты сделал эти изменения для Яндекс.Браузера, а я ими сейчас пользуюсь в браузере Google Chrome.

  142. Роман Иванов

    Все верно. Вот это коллаборация. Так работают опенсорсные проекты, да.

  143. Самат Галимов

    Давай вот сейчас поговорим про Яндекс.Браузер прицельно. В каком году вы начали работать над браузером?

  144. Роман Иванов

    Начали мы работать над браузером в 2011 году. Я пришел в команду браузера ровно за год до того, как мы его выпустили. В 2012 году вышла первая версия. У истоков браузера стоял, в частности, Илья Сегалович.

  145. Самат Галимов

    Илья Сегалович— это сооснователь компании Яндекс.

  146. Роман Иванов

    У меня есть письмо от Ильи от, по-моему, ноября 2011 года, в котором он, почитав там мой документ, что я предлагаю делать в браузере другие документы, подумав, написал просто письмо про разные вещи, которые можно было бы сделать в браузере будущего, в браузере Яндекса. И в этом письме настолько пункты визионерские что ли, что понятно, что в первой версии не было почти ничего из этих пунктов, может быть, там, не знаю, 2-3 пункта. А потом мы там забыли уже про этот документ, потом я его нашел, там, года три назад, перечитал, оказалось, что мы где-то процентов, может быть, 70 или там 65 процентов того, что там было написано, уже сделали. Конечно, мы делали не только то, что написано в этом документе, мы придумывали что-то совершенно другое, просто сам факт того, что написано 10 лет назад, 11 лет назад

  147. Самат Галимов

    письмо в IT до сих пор актуально, это о чем-то говорит. Вот вы решили делать свой браузер, провели исследование, выбрали движок Chromium. Ты сказал, что движок рендеринга— это примерно 15%. Остальная обвязка еще сколько-то? Сколько вам еще осталось написать, вот если взять Яндекс.Браузер сейчас и то, что вы взяли из проекта Chromium?

  148. Роман Иванов

    Яндекс.Браузер— это 12,5 миллионов строк кода, которые написаны нами и которые мы каждые несколько недель мержим с новой версией хромиума, прилагаем к тем 40 миллионам строк кода, которые приехали в новой версии браузера.

  149. Самат Галимов

    Open-source-ные, которые хромиум.

  150. Роман Иванов

    Open-source-ные, да. И должны разрешить все противоречия между изменениями, которые сделали все остальные авторы, и теми строками, которые написаны у нас. Адская работа.

  151. Самат Галимов

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

  152. Роман Иванов

    Да, мы, конечно, у нас есть там метрика conflict score, которую, в смысле, процент конфликтности, сколько наш код именно меняет строки оригинального кода, а не добавляет.

  153. Самат Галимов

    И ваша цель, чтобы добавлять, а не менять.

  154. Роман Иванов

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

  155. Самат Галимов

    Какой функционал вы добавляете поверх, т.е. что вы меняете в Chromium?

  156. Роман Иванов

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

  157. Самат Галимов

    А еще там три года назад у всех остальных браузеров она была наверху.

  158. Роман Иванов

    Еще год назад у всех остальных браузеров она была наверху. Вот в свежем Safari в сентябре, собственно, она пришла вниз экрана, и все такие, о, так это же точно, это же удобнее, когда внизу экрана. Хорошая идея. Пальцем-то тянутся ближе. Хорошая идея, да. У нас это было испокон веков. Вот, значит, дизайн. Например, когда Chrome отказался от трапециевидных вкладок, у них там три года назад вкладки были в десктопе в виде трапеций, таких, значит, со скошенными углами. Мы решили, что надо дать пользователям выбор, и сдали на выбор возможность выбирать форму вкладок. Между трапециевидными, между скругленными, между прямоугольными.

  159. Самат Галимов

    Кто выбирает вообще форму вкладок?

  160. Роман Иванов

    А у нас этот вопрос прямо есть в... При сетапе, когда устанавливаешь? Да, при установке ты можешь прямо выбрать форму вкладок, сразу, значит, стандартный браузер. Разнообразные выбирают, и трапециевидные выбирают в том числе. И у нас, например, есть левая панель в десктопном браузере, это такая, значит, ну... панель, которую можно включить или выключить, или сделать, чтобы она появлялась при подведении мыши к левому краю экрана, на которой собраны полезные инструменты. Там управление музыкой, скриншотилка, список вкладок с поиском по ним, там история, закладки, вот это вот всё. Это говоря про дизайн.

  161. Самат Галимов

    Вы вносите много изменений в интерфейс браузера, то, как он выглядит.

  162. Роман Иванов

    Да. То, как он выглядит и то, как он ведет себя. Вторая большая тема – это защита. Разнообразные штуки, которые связаны с тем, чтобы защитить пользователя от опасностей, которые могут его в интернете подстерегать.

  163. Самат Галимов

    Например?

  164. Роман Иванов

    Ну, например, понятно, антивирусные проверки файлов и страниц. Они у нас свои, не такие, как у других ребят, и ориентированы на те угрозы, которые в первую очередь возникают в Рунете.

  165. Самат Галимов

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

  166. Роман Иванов

    Есть, например, такой большой пример, как защита от мобильных подписок.

  167. Самат Галимов

    Это что такое?

  168. Роман Иванов

    В России, я не знаю, насколько это для России уникально, я знаю, что это начали экспортировать в какой-то момент в другие страны. Есть такая штука, мобильные подписки. Это когда ты заходишь с мобильного телефона или, в общем, когда ты соединен с интернетом через мобильного оператора, он точно знает твой номер телефона, ты просто заходишь на страницу, там кнопка, под кнопкой подписано. Если ты на эту кнопку нажимаешь, то ты подписываешься на услугу мобильного оператора такую-то и начинаешь платить 50 рублей в день.

  169. Самат Галимов

    Никаких SMS, никаких подтверждений, просто нажми на кнопку. Через какие круги ада нужно пройти, чтобы мобильный оператор тебе такое разрешил сделать.

  170. Роман Иванов

    При этом есть огромное количество серо-чёрных ребят, которым оператор это сделать разрешил. Вот. Ну и да, и выглядит это так, что ты что-нибудь там заходишь в интернет, находишь какой-нибудь сайт, на котором ты можешь якобы скачать книжку или посмотреть видео, нажимаешь на «хочу это видео посмотреть», тебе загружается страница, на которой «плеер» и кнопка «плей». Что ты делаешь? Конечно, ты нажимаешь на кнопку «плей». И не читаешь мелкий текст под ним, где подписано, нажимая на кнопку play, вы

  171. Самат Галимов

    соглашаетесь с тем, что с вас каждый месяц будут списывать 100 рублей.

  172. Роман Иванов

    Каждый день.

  173. Самат Галимов

    Отлично вообще. Понимаю мобильных операторов. Что вы с этим делаете?

  174. Роман Иванов

    А мы показываем страницу предупреждения.

  175. Самат Галимов

    Логично.

  176. Роман Иванов

    При попытке зайти на ту страницу, на которой элемент умеет списывать деньги, мы показываем тебе полноэкранное предупреждение, что дальше вам предложат мобильную подписку. Если вы не хотели туда попасть, нажмите вот сюда. А если хотели, нажмите продолжить. То есть это не то, чтобы мы не говорим, что там обязательно мошенники. Это же может быть и легитимная функция. Мы просто предупреждаем. Защита от майнинга, защита от трекеров. Тут тоже есть такая интересная история. Сейчас все браузеры борются с сторонними куками. Что такое сторонние куки? Это способ связывать твоё поведение на одном сайте и на другом сайте. Если на обоих этих сайтах стоит код, сторонний код... Общий какой-то трекер. Общий трекер, да. То он может понять, что тот, кто ходит по этому сайту, и тот, кто ходит по тому сайту в разное время, это один и тот же человек. Это и есть трекинг.

  177. Самат Галимов

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

  178. Роман Иванов

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

  179. Самат Галимов

    Рома, как это вообще работает?

  180. Роман Иванов

    А так, что там на сайте этой новостройки стоит код, сторонний код, который также стоит на каком-то из сайтов, на котором ты вводил свой номер телефон, а, например, интернет-магазин, в котором ты что-то покупал.

  181. Самат Галимов

    Охренеть. Это реально так работает сейчас?

  182. Роман Иванов

    Это реально так работало, пока браузеры не начали бороться с трекингом. И вот, значит, Safari сделал ITP-технологию, Intelligent Tracking Protection, Firefox сделал свою, мы сделали свою, у нас несколько разные подходы у всех. Наш подход про то, что пользователю нужно показывать трекеры, которые его пытаются отслеживать, и давайте ему по каждому из них принять решение, если он хочет. Вот этому трекеру разрешаю везде, этому не разрешаю нигде. А из коробки по умолчанию по дефолту не давать отслеживать тебя тем трекерам, на сайте которых ты не был. Если ты был на Фейсбуке, Фейсбук тебя может отслеживать, пока ты ему сам это не запретишь. А если ты, ну, очевидно, на сайте вот этих вот черных ребят, которые твой телефон перепродают новостройщикам, ты не был никогда, и поэтому им отслеживать тебя нельзя. Хорошо.

  183. Самат Галимов

    Значит, интерфейс, безопасность. Что еще?

  184. Роман Иванов

    Голосовой помощник.

  185. Самат Галимов

    Это Алиса.

  186. Роман Иванов

    Это Алиса. Мы были, наверное, первым браузером, который встроил голосовой помощник именно в браузер. У Майкрософта Cortana была частью... Internet Explorer. ...Edge'а раньше, но она не была там как голосовой помощник. Она была там как слой, который подсказывает тебе что-то, как подсказчик, не голосом. А мы встроили просто голосовой помощник в браузер, и у нас Алиса есть и в приложении Яндекс, и в Яндекс-браузере. Ну, во-первых, это просто работает как голосовой способ задания запросов в поиск, но также ты можешь с ней поговорить обо всем, о чем угодно, и о чем она умеет.

  187. Самат Галимов

    Она умеет как-то специально управлять браузером?

  188. Роман Иванов

    Специально управление браузером особо мы не делали, потому что мы видим, что нет на это запроса. Но Алиса может использоваться как простой способ включения каких-то функций. Это не совсем управление браузером. Вот, например, у нас и в приложении Яндекс и в браузере есть АОН, автоматический определитель номера, возможность научить операционную систему показывать тебе операционную систему твоего телефона, то есть iOS или Android. показывать тебе, звонит тебе мошенник или нет. включить АОН… Алиса, включи АОН. Просто вот зашел в браузер или в ПП, т.е. поисковое приложение Яндекса, нажал на фиолетовую кнопку вызова Алисы и сказал, Алиса, включи ООН. Она тебе объяснит, как это сделать. Это очень просто запомнить, это очень хорошо работает в этом смысле, что можно пользователям

  189. Самат Галимов

    рассказывать это именно так. Окей, голосовой помощник. Ещё?

  190. Роман Иванов

    Много небольших улучшений, многие из которых уникальны в том смысле, что они предназначены для нашего рынка, и никто больше их сделать не сможет. Просто потому, что нет такой проблемы... На американском рынке. На американском рынке. Например, вот в умной адресной строке можно вводить адреса сайтов, несмотря на раскладку. Ты можешь нажать на мягкий знак, и тебе подскажут именно твою почту, которой ты пользуешься, там mail.yandex.ru или mail.ru или еще какой-нибудь mail, потому что мягкий знак и буква M находятся на одной и той же кнопке.

  191. Самат Галимов

    Обалденно.

  192. Роман Иванов

    Такое не сделают в Гугле или в Майкрософте, потому что у них нет проблемы двух раскладок. поиск по странице с учётом морфологии русского языка. Кто тебе сделает, кроме Яндекса?

  193. Самат Галимов

    Да ладно, серьёзно, что ли? То есть в Яндекс.браузере можно нажать Ctrl+F, поиск, включить по странице, и он будет искать с учётом русской морфологии?

  194. Роман Иванов

    Да.

  195. Самат Галимов

    Обалдеть.

  196. Роман Иванов

    Так, проверка русской орфографии под Windows на Mac нет, а под Windows мы сделали собственную, абсолютно, со своей библиотекой, которая работает гораздо быстрее и гораздо большую полноту имеет, чем та, которая есть из коробки в Chrome. какие-то улучшения, вот эти вот, как бы я сказал, вот эта третья часть, это много разных улучшений, не только, значит, заточенные на наш рынок. Ну, например, у нас есть такая штука автовынос видео. Ты включил видео в десктопном браузере, кстати, в мобильном тоже, включил видео, смотришь видео со звуком, но решил переключить вкладку. То видео, которое ты смотришь, автоматом выскочит в маленькое окошко в правый нижний угол экрана. А, На первый взгляд это звучит страшновато. Ну типа, я же переключил вкладку, почему меня преследует видео? Но на самом деле это настолько бесшовно и удобно работает, что пользователи не возмущаются вообще. Они довольны, что оно само выскакивает. У других браузеров автовыноса нет ни у кого.

  197. Самат Галимов

    Сама возможность выноса есть.

  198. Роман Иванов

    Сама возможность выноса есть, она появилась у большинства позже, чем у нас, но автовыноса нет. А на самом деле это очень удобно. У нас есть расширение на андроиде. Ни одного другого браузера, кроме Firefox, поддержки расширений в мобильном браузере нет. А у нас примерно любые расширения, подходящие для Хрома.

  199. Самат Галимов

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

  200. Роман Иванов

    Ну, например, смотри, вот такой пример. Все же, наверное, пользовались хотя бы раз в жизни зумом. Ты заходишь по ссылке, у тебя открывается страничка, единственная задача которой – это запустить зум с вот этой конкретной конференции. Эта страничка остается у тебя открытой и мешает тебе. Есть расширение, которое автоматом через несколько секунд эту страницу само закрывает.

  201. Самат Галимов

    Идеальный пример расширения – маленькая программа, которая делает что-то полезное внутри браузера.

  202. Роман Иванов

    И при этом очевидно, что это не должно быть функцией самого браузера. Таких функций может быть миллионы, и они не нужны всем. Они нужны только тем людям, которые часто пользуются Zoom.

  203. Самат Галимов

    Хорошо. Есть ещё чего-нибудь?

  204. Роман Иванов

    Ну давай, про перевод. У нас есть перевод страниц, у нас есть перевод фраз. Это, в общем, не фокус. Это есть у многих других ребят. Но мы в прошлом году сделали перевод картинок и перевод видео. И этого в браузере нет ни у кого.

  205. Самат Галимов

    Как работает перевод видео для пользователя?

  206. Роман Иванов

    Перевод видео работает следующим образом. Пользователь заходит на страничку, на которой есть видео. Это может быть embed из YouTube или страничка видеохостинга. И там появляется рядом с видео или над ним кнопочка «Перевести» в процессе его проигрывания или сразу до проигрывания. Ты ее нажимаешь, и через несколько секунд, в крайнем случае минуту, видео начинает звучать на русском языке.

  207. Самат Галимов

    Это даже не субтитры, а прям... Звучать. Охренеть.

  208. Роман Иванов

    Мужской голос переводится мужским голосом, женский голос переводится женским голосом.

  209. Самат Галимов

    Ничего себе.

  210. Роман Иванов

    Это работает не только с английским языком. Сейчас у нас, по-моему, пять языков. Французский, испанский, немецкий, английский. Или четыре, я не помню точно. Ну, мы добавляем просто со временем, добавляем и расширяем.

  211. Самат Галимов

    И вы там используете как раз свои технологии перевода, которые у вас уже есть давно.

  212. Роман Иванов

    Ну да, то есть там под капотом происходит следующее. Звуковая дорожка этого видео скачивается.

  213. Самат Галимов

    С серверами Яндекса.

  214. Роман Иванов

    С серверами Яндекса. Распознается.

  215. Самат Галимов

    Переводится.

  216. Роман Иванов

    Переводится. Озвучивается. И отправляется пользователю.

  217. Самат Галимов

    становится полностью обратный компьютер.

  218. Роман Иванов

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

  219. Самат Галимов

    Точек нет.

  220. Роман Иванов

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

  221. Самат Галимов

    Я это сейчас пока еще не сделал.

  222. Роман Иванов

    Ты можешь распознать акцент, с которым это говорится. Ты можешь... Этого пока нет, я фантазирую. Ты можешь... Скопировать голос. Чёрт возьми, представь себе Брюса Уиллиса переводит Брюс Уиллис на русский язык.

  223. Самат Галимов

    И у вас, в принципе, есть под это уже всё подготовлено.

  224. Роман Иванов

    У нас много идей, и мы стараемся реализовывать самые клёвые из них.

  225. Самат Галимов

    Знаешь, ты сейчас перечислил функции, и мне становится понятно, куда ушло 12 миллионов строк кода. Я вот как бы восхищаюсь-восхищаюсь, а человеку постороннему может показаться, что, типа, ну, сколько-то миллионов. Какая хрен разница? Это все чиселки на компьютере. Чтобы вы понимали, операционная система Windows NT, которую в 1996 году сделали, это Windows полноценный, она была чуть больше 10 миллионов строк кода. Весь Android, это мне кажется информация несколько летней давности, это примерно 15 миллионов строк кода. Самолет F-35 американский это 20 миллионов строк кода. Офис 20 миллионов строк кода. Windows 2000 30 миллионов строк кода. То есть это просто огромный проект. зачем в Яндексу свой браузер? То есть мы сейчас обсудили, что это такое, как он работает, а зачем вы это сделали?

  226. Роман Иванов

    Во-первых, это, конечно, нельзя про это не сказать, и это на первом месте, это возможность продвигать свой поиск. Мы должны были сделать свой браузер, чтобы распространять его, чтобы распространять свой поиск.

  227. Самат Галимов

    ты имеешь в виду, что ты устанавливаешь браузер, и там есть адресная строка, которая сейчас уже стала де-факто строкой поиска. Ты вот туда что вобьешь, дальше открывается сразу поисковик. Всё так. И вот стандартный поисковик, который открывается в случае установки Google Chrome, это Google. Всё так. И вот это является опасностью для Яндекс.Поиска.

  228. Роман Иванов

    Да. И мы говорили, что в мире у Chrome 63%, это по данным статкаунтера. А в России у Chrome 44% доля. Нет, на десктопе 44%, а на всех этих устройствах 40%. То есть вот эти 20% разницы... Эти 20% разницы— это ровно доля Яндекс.Браузера, и это то, что обеспечивает долю, соответственно, поисковую долю Яндекса. защищает ее. Понятно, что есть люди, которые в хроме пользуются все равно Яндексом. Но как они это делают? Они заходят сначала на Яндекс, и туда уже вводят свой поисковый запрос.

  229. Самат Галимов

    А вот два момента. Первый, надо пояснить, зачем вам бороться за долю поискового трафика с Гуглом.

  230. Роман Иванов

    поиске есть рекламные объявления.

  231. Самат Галимов

    Это же вы и деньги.

  232. Роман Иванов

    За которые те бизнесы, которые их размещают, платят деньги, если пользователь нажмёт на это объявление. И вот каждый клик – это сколько-то там, какая-то небольшая денежка, клик именно по объявлению, по органическим, по обычным результатам клик, очевидно, бесплатно для всех. Это те деньги, которые зарабатывает Яндекс. Когда-то, не знаю, лет 5 назад, наверное, это были почти единственные деньги, которые Яндекс зарабатывает. Огромный процент. Есть еще медийная реклама, реклама, не знаю, на других сервисах Яндекса. Но это было подавляющее большинство. Сейчас эти деньги уже занимают там что-то в районе половины того, что зарабатывает Яндекс, вторая половина это сервисы Ride Tech, Food Tech и так далее, то есть такси и доставка и так далее.

  233. Самат Галимов

    У нас, кстати, был эпизод про рекламу и про поиск отдельный, там можно послушать про это подробнее.

  234. Роман Иванов

    Уверен, что там вот эта вот экономическая модель раскрывается. Ну и, собственно, да, продвигать поиск и защищать свое место под солнцем— это то, почему мы решили делать браузер. Но, конечно, мы видим свою, значит, миссию, делая этот браузер, не только в этом. Мы хотим сделать интернет удобнее для пользователей из России, ну и окрестных стран.

  235. Самат Галимов

    Сколько людей сейчас пользуются Яндекс.Браузером?

  236. Роман Иванов

    Не в людях только. В людях не можем померить. Можем в устройствах.

  237. Самат Галимов

    Давай.

  238. Роман Иванов

    75 миллионов устройств в месяц используют, в смысле, запускают и делают в нём какие-то осмысленные действия Яндекс.Браузер.

  239. Самат Галимов

    Допустим, у людей в среднем по два устройства. Это, получается, четверть населения России, что ли?

  240. Роман Иванов

    Да. Ну так наша доля такая и есть. Около четверти. На десктопе 36 млн. в месяц, на Андроиде 34 млн. в месяц, и на iOS почти 5 млн. в месяц устройств людей запускает Яндекс.Браузер.

  241. Самат Галимов

    Вот это кайф.

  242. Роман Иванов

    Тут, на самом деле, конечно, не только Россия, есть еще некоторое количество других стран, но в основном эти числа, ну, т.е. на, не знаю, на 85, что ли, процентов, это Россия.

  243. Самат Галимов

    А сколько людей его разрабатывают?

  244. Роман Иванов

    Разрабатывают 150 разработчиков. Но понятно, что разработчиками не исчерпывается, собственно, список тех, кто работает над браузером. Есть менеджеры, вот я как продакт-менеджер, есть тестирование, есть дизайнеры, есть аналитики. Общий списочный состав я тебе называть не смогу, но, в общем, порядок цифр понятен.

  245. Самат Галимов

    Типа 250, наверное.

  246. Роман Иванов

    Ну, что-нибудь такое, да.

  247. Самат Галимов

    Всё, давай финальный вопрос. Чего почитать про браузеры?

  248. Роман Иванов

    Лично я сейчас вот, когда готовился к нашему с тобой разговору, я почитал документ, расположенный на сайте Mozilla, есть вообще у них подсайт такой, developer.mozilla.org, там много документации про то, как работают браузеры, как работает веб, как работает HTML, JavaScript, вот это вот всё. Там конкретно есть документ, how browsers work, как работают браузеры. Вот его стоит почитать.

  249. Самат Галимов

    Вообще, MDN— это один из главных документационных порталов в интернете, так что я очень рад, что наконец-то ссылка на него появится в нашем подкасте. Ссылка на этот документ будет в описании к этому эпизоду. Рома, спасибо тебе огромное, что пришел и поговорил.

  250. Роман Иванов

    Спасибо.

  251. Самат Галимов

    Это подкаст Студии Либо-Либо, и мы его сделали вместе с Яндексом. Над подкастом работали редакторка Маша Агличева, продюсерка Настя Медведева, звукорежиссерка Нина Мамотина. За джингл спасибо Кире Вайнштейн.

Слушайте где удобно

0:00