LINUX.ORG.RU

Радикальная альтернатива браузеру

 ,


1

3

На тему натолкнули 2 статьи

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

Так почему бы не сделать некую виртуальную машину ? Например WebAssembly и некое видеопространство на котором можно рисовать. Но не HTML и прочее, а тупо как на десктопе, набор точек.

Что это дает ?

  • Скорость, используются только необходимые вызовы.

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

  • Гораздо легче замутить свой браузер, все будет состоять из компонентов

  • Сайт можно писать на любом языке

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

Десктоп и Delphi возвращаются :)

★★★

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

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

jtad ()
Последнее исправление: jtad (всего исправлений: 1)
Ответ на: комментарий от jtad

Десктопная ОС состоит из подсистем, сеть, графика и т.д., то же и в веб виртуалке. Во втором случае все будет стандартизовано, а значит можно делать сие поотдельности

ism ★★★ ()

Весь этот текст лишён реального содержания. Афтар фантазирует, сам не знает о чём. Поэтому его предложение нереализуемо.

Partisan ★★★ ()
Ответ на: комментарий от T3M4

Кстати, у Qt чтото такое слышал, софтина рисует на Canvas кажется

ism ★★★ ()
Ответ на: комментарий от Partisan

Весь этот текст лишён реального содержания. Афтар фантазирует, сам не знает о чём. Поэтому его предложение нереализуемо.

Пришел поручик Ржевский и всё опошлил …

ism ★★★ ()
Ответ на: комментарий от Kolins

Никогда не читайте кропоративные блоги на Хабр

Там попадаются отличные статьи, отражающие реальный опыт работы

ism ★★★ ()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Так тебе нужен web или тебе не нужен web?

Мне нужна доставка приложений юзеру с такой же легкостью, как веб

ism ★★★ ()
Ответ на: комментарий от vvn_black

Т.е. тебе нужен флеш? Но он же показал свою несостоятельность, как и java в браузере, как и активХ.

Флеш - проприетарная хрень не поддерживающая стандарты

В моем случае http, websocket, js остаются, только применяются более гибко

ism ★★★ ()
Последнее исправление: ism (всего исправлений: 1)
Ответ на: комментарий от ism

Почему ты флеш противопоставляешь http, websocket и js?

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

В моем случае http, websocket, js остаются, только применяются более гибко

Так, есть уже html5 с канвасом. Что ещё надо?

vvn_black ★★★★★ ()
Ответ на: комментарий от ism

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

Но! Во flutter есть фатальный недостаток.

serioja ()
Ответ на: комментарий от vvn_black

Так, есть уже html5 с канвасом. Что ещё надо?

Тогда выкинуть html5 и останется участок видеопамяти

ism ★★★ ()
Ответ на: комментарий от serioja

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

Даже если так, то получается от браузера нужно лишь рисовалка. Рисовалку можно сделать отдельно без html5 чудовища

ism ★★★ ()

webgl и canvas есть, webassembly есть.

уже сейчас можно скомпилировать приложение не написав ни строчки ни на js, ни на html. Емнип, так делает Qt

если такой подход получит распространение - всё остальное само по себе скатится в legacy и отомрёт со временем.

в смерть html и css верится с трудом, а вот желающих закопать js довольно много

Ford_Focus ★★★★★ ()
Последнее исправление: Ford_Focus (всего исправлений: 1)

https://habr.com/ru/company/dcmiran/blog/493018/

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

anti_win ★★ ()

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

anti_win ★★ ()

Мысль адекватная, но мир устроен не так :)

Он развивается эволюционно: то есть маленькими шажочками. Даже если ты прямо сию секунду вывалишь готовую реализацию - как ты заставить кого-то туда писать и кого-то это читать? Никому не нужен интернет в котором никого нет.

Запиливай. Сделаем туда зеркало Лора и будем сидеть с малинок, поплевывая свысока на браузеропоклонников :)

pihter ★★★★★ ()
Ответ на: комментарий от Partisan

В смысле? Предложил перестать кривляться и заменить браузер на окно sdl в виртуалке и с «вебсокетом» до сервера. Сайт писать на чем хочешь. Идея разумная, кроме того что один интернет уже есть и новый, пусть и более логичный, нафиг никому не уперся

pihter ★★★★★ ()
Ответ на: комментарий от vvn_black

Так, есть уже html5 с канвасом. Что ещё надо?

Чтоб ради этого на клиентскую машину не надо было тащить вебкит, которому для реализации вот этой простой задачи надо 4 ядра и 8 гигов

pihter ★★★★★ ()

Например WebAssembly и некое видеопространство на котором можно рисовать.

Т.е. рисовать будет сервер?

Скорость, используются только необходимые вызовы.

Или таки клиент по разметке?

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

Или всё же сервер, а клиент только пиксели выводить?

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

Или опять клиент по разметке?

Сайт можно писать на любом языке

Так что в итоге будет передаваться клиенту?

Radjah ★★★★★ ()
Ответ на: комментарий от anti_win

Если я правильно понял, чтобы писать с нуля браузер, нужно выкинуть весь современный веб на помойку и начать все с начала.

У современного веба есть много хороших плюшек, но наступает время провести их ревизию

ism ★★★ ()

Я пока помылся, придумал реализацию на Си и Lua:

  • выуживаем у пользователя URL (из командной строки или спрашиваем при запуске)

  • сишным кодом стягиваем оттуда 1 lua-файлик в котором реализована функция-точка-входа

  • для Lua, вызываемого из нашего сишного приложения предоставляем API:

    • создать_окно( w, h ) // SDL
    • нарисовать_пиксел( x, y, r, g, b )
    • перейти_на_URL( url )
    • вызвать_open_file_dialog // и получить доступ на чтение дла указанного пользователем файла
    • вызвать_save_dialog
    • все_закрыть_ресурсы_освободить
    • записать(прочитать)_локальное_хранилище( key, [value] )
    • загрузить_библиотеку( lib_url )
    • событие (будет вызываться Lua-функции из главного файла): движение_мыши( x, y )
    • с. изменение_размеров_окна( new_w, new_h )
    • с. драг_н_дроп_файла_в_окно( filename ) // с доступом на чтание
    • нажатие(отпускание)_ клавиши _(мыши/клавиатуры)( scan_code )

ну, вроде, ничего не забыл (звук? дочерние окна?)

реализуется за два нехрен-делать-лень-заниматься-чем-то-адекватным вечера (1000 строк на Си и 1000 строк на Lua), в Луа песочница замечательная из коробки, сокеты – разрешить, чтение-запись файлов строго под надзором и т.д.

называется, естественно, метабраузер

Критикуйте!

pihter ★★★★★ ()
Ответ на: комментарий от Radjah

Т.е. рисовать будет сервер?

Сервер будет только отдавать файл программы и данные

Или таки клиент по разметке?

Зачем разметка, если есть квадрат точек, для рисования на котором можно использовать свою прогу, ну или микрофреймворк по аналогу windows gdi

Или опять клиент по разметке?

Говоря про свой браузер я про набор компонентов и стандартов, обмен по сети, графическое ядро(аналог видеокарты на десктопе)

Так что в итоге будет передаваться клиенту?

Стандартизованный файл виртуальной машины, это чемто похоже на байткод например Java, но изолированный многократно лучше

ism ★★★ ()
Ответ на: комментарий от pihter

называется, естественно, метабраузер

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

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

ism ★★★ ()
Ответ на: комментарий от ism

Прикрутить к сишной части озвученного мной libcurl и получишь возможность из сайтовой(Lua-песочницы) выполнять запросы со всей мощью курла. Теперешний веб это, конечно, в твой браузер не привнесет, но ты получишь возможность написать свой клиент, скажем, ЛОРа, который будет вполне работать в твоем браузере и потреблять крохи памяти и процессорного времени

pihter ★★★★★ ()
Ответ на: комментарий от ism

На самом деле я согласен: правильнее запилить интерпритатор некоторого байткода, который можно скомпилировать из любого языка, но предложенная мной схема – реализуется на раз-два и вполне можно сделать по-фану, посмотреть что никому не надо и разойтись

предложенное тобой – сделать довольно трудоемко, в реале – невозможно. Или тебе и не охота делать, а ты просто идею обсудить решил?

pihter ★★★★★ ()
Ответ на: комментарий от pihter

А если дать ему возможность прям показывать современные сайты – пиши пропало, получится нетсерф

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

ism ★★★ ()
Ответ на: комментарий от pihter

предложенное тобой – сделать довольно трудоемко, в реале – невозможно. Или тебе и не охота делать, а ты просто идею обсудить решил?

Не, я не собираюсь воевать с вебом :)

Просто зная олдскул софтостроение я вижу части этого сейчас

ism ★★★ ()
Ответ на: комментарий от ism

Ну а как ты хочешь написать «браузер» принципиально другой, избавленный от недостатков старых браузеров (излишней функциональности) но при этом совместимый со старыми браузерами?

pihter ★★★★★ ()
Ответ на: комментарий от pihter

Со старыми браузерами совместимости не будет.

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

Старое будет работать в расширении похожем на Electron

ism ★★★ ()

Говно, которое нормально не локализуется, не поддерживает работу с пользователями с ограниченными возможностями, не поддерживает поиск по странице, не масштабируется, гвоздями прибито к платформе, не использует современные фичи типа копипаста, перевода или сохранения тех же картинок, не индексируется, и еще вагон недостатков.
Поздравляю, ты придумал adobe flash и crossbridge.

Tark ★★ ()
Последнее исправление: Tark (всего исправлений: 1)
Ответ на: комментарий от ism

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

Tark ★★ ()
Последнее исправление: Tark (всего исправлений: 2)
Ответ на: комментарий от vvn_black

html5 с канвасом

- и всё равно всё юзают DOM, и думают, что у них не гипертекст, а приложение.

Shadow ★★★★★ ()
Ответ на: комментарий от Radjah

Я бы не согласился (хотя, возможно, я не понял ТСа):

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

pihter ★★★★★ ()
Ответ на: комментарий от Ford_Focus

я желаю закопать смесь html с Js в качестве гуя и мечтаю, чтобы закопали легаси Js, и прикрутили синтаксис (var, == как в похожих языках) к современному Js.

Shadow ★★★★★ ()
Ответ на: комментарий от ism

Сервер будет только отдавать файл программы и данные

Так, у нас есть кусок неизвестного кода.

Зачем разметка, если есть квадрат точек, для рисования на котором можно использовать свою прогу, ну или микрофреймворк по аналогу windows gdi

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

набор компонентов

Я хочу разметку, но не хочу разметку.

Стандартизованный файл виртуальной машины, это чемто похоже на байткод например Java,

Поздравляю! Ты изобрёл программы-клиенты для сайтов, работающие через API!

но изолированный многократно лучше

Т.е. вместо парсинга текста ты предлагаешь на каждый чих поднимать виртуалку с кучей проверок в рантайме?

Radjah ★★★★★ ()
Ответ на: комментарий от pihter

для отрисовки окна на основе кода, загруженного с сервера и имеющего возможность сетевой коммуникации.

А сейчас как?

ограничения веба типа идеологии запрос ответ

Дык любое сетевое соединение - это запрос-ответ.

типа необходимости встраивать приложение в язык разметки

А как тогда всю вот эту красоту рисовать? Либо браузер на основе некой стандартизированной модели дёргает всякие KDE/GTK/etc, либо... На этом мысль обрывается.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

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

Я хочу разметку, но не хочу разметку.

Я про то, что я буду решать через что рисовать, а не как сейчас один движок для всех и всего

Т.е. вместо парсинга текста ты предлагаешь на каждый чих поднимать виртуалку с кучей проверок в рантайме?

Зачем ? Виртуалка шлет запросы к серверу и рисует, все

ism ★★★ ()
Ответ на: комментарий от Radjah

Копай глубже. ТС изобрёл java-апплеты, которые с таким трудом закопали.

Кстати хорошая штука была, но по слухам небезопасная

ism ★★★ ()
Последнее исправление: ism (всего исправлений: 2)
Ответ на: комментарий от ism

не работает без жабы, ну и чем принципиально отличаемся от браузера? нужна сущность для работы

пока твои мысли похожи на бред

Morin ★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей