Обновить

Представлен открытый минималистичный браузер Northstar, написанный полностью с нуля на языке C

Время на прочтение2 мин
Охват и читатели100K
Всего голосов 106: ↑95 и ↓11+113
Комментарии124

Комментарии 124

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

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

Зная, как Claude пишет простые сервисы с интерфейсом к llm и бд на almost memory safe и blazingly fast языке rust без использования unsafe (простые тесты, длящиеся по 5 минут, гонки, текущая память, контекст, протекающий между сессиями, и прочие ужасы), даже не хочу представлять, как на голом C сделан браузер.

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

Потенциально поддерживать такое вручную (и без нормальной документации) - ад. А если дать обратно Claude, есть больша́я вероятность, что он где-нибудь сделает 10й дубль имеющейся функции или где-нибудь проявится плавающая ошибка...

1) Разработать браузер с нуля руками невероятно трудно
2) Для пет проекта для фана можно использовать какие угодно инструменты. Может в этом и цель была - понять, какой предел поддержки такого проекта (из гитхаба: "This is more about research about browser tech.")?
3) Никто и не позиционирует как аналог chrome и не обещает четвертый конкурирующий движок

Осторожнее шути, а то … как шутил Игорь Губерман - “Товарищ, верь, пройдет она — И демократия, и гласность. И вот тогда Госбезопасность Припомнит ваши имена.” А как в мире круговерть вывезет, никто не знает. Может в кои веки “неуловимый Джо” (тм) кому-нибудь понадобится.

В оригинале вроде было «так называемая гласность» :)

Мне товарищ майор минусом немного просадил карму. 🤣

Особенно забавно в его проекте выглядит указание клоду "do not introduce any code from other engines - the hand-written engine stays hand-written", учитывая что рука человека не касалась там не то что кода, а даже окна коммита в репозиторий или кнопки запуска релизной сборки.

Ну так там же не уточняется, чьей рукой :)

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

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

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

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

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

*браузер я этот не запускал, чисто исходя из новости

А я запускал. И он не покрывает все спецификации. Например тут https://html5test.co/ он набирает 400 с чем то баллов. Причём скроллинг именно на этом сайте у него ломается так что толком не посмотреть что и где он не добирает. Он вообще дико тормозной. Настолько что его и тестить то особо не хочется. Так что тут между обещаниями и реальностью большая разница. Но того факта что он в принципе хоть как то работает не отнять.Уже это довольно круто.

"400 с чем-то баллов" набирают Safari, Edge и FF.

Чел, это данные от 2018 года

Современный хром набирает 579. И Edge так же. FF чуть похуже, что то около 550. Табличка древняя. Проскроль вниз, там версии браузеров указаны.

Значит, я не знаю, как пользоваться этим: https://html5test.co/results/desktop.html . Можете показать?

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

А timeline в конце страницы видели, если промотать её до конца?

Самый конец указанной вами страницы
Самый конец указанной вами страницы

Ага. Только вот сколько человеческого времени опытных ИИ инженеров, C-разработчиков и дееег на GPU вычисления сожрал, Как всегда нам рассказывать в деталях никто не хочет почему-то… А это уже не круто…

Если он уже покрывает все спецификации, стабильно работает и в целом будет поддерживаться - это уже не прототип

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

Вряд ли его кто-то проверял на всё

Технически наверное возможно, но экономически нецелесообразно. Автор реализовал пока ограниченное подмножество стандартов, и пишет в описании, что в этом браузере нет WebGL/WebGPU, не поддерживается JIT для JS, и так далее. ИИ позволяет очень быстро и дешево пройти первые шаги от нуля до “что-то как-то отрисовывается”, но дальше сложность растет нелинейно. Поэтому я все еще не убежден, что даже с огромным бюджетом на токены этот проект можно довести до feature parity с современными браузерами, и уж тем более если сравнивать по нефункциональным требованиям типа безопасности, скорости работы и потребления памяти.

Кхе кхе, сомневаюсь что оно способно выполнить процентов 5% того что умеют ФФ и Хромиум. Если скомпилировать рендерер хмтл то можно ли назвать его браузером ?

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

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

весь код написан Claude

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

Написано Claude, проверено Claude, отфиксено Claude - замкнутый цикл разработки

И использоваться будет тоже исключительно Claude

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

Нужен ещё claude-компилятор.

с нуля на языке C

Не на asm, и это неплохо!

пока что нейронки плохо кодят на асм

Wtf? Очень простой язык. gcc на нем лет 50 наверное кодит.

Нейронки хорошо кодят на том, чего текста много в интернете.

Логично.

Чо ж C а не Раст? Я не ради подколки, реально интересно. С нуля и на Расте думаю кого-то бы точно заинтересовало.

Скормите репу LLM-ке и она вам на раст перепишет.

Скормите репу LLM-ке и она вам на раст перепишет.

170 тыс. строк - не бесплатно и не мгновенно + доп. отладка будет.

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

С более нативный

Wat?

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

Как нишевое решение - вполне. Как мейнстрим - вряд ли. Один поток, все намеряно упрощено...

даже как нишевое решение - сомнительно. я бы такое даже в инфокиоск не поставил. но подобные решения могут быть полезны для другого, как демонстрация какого-то концепта/оптимизации/етц. например, получится реализовать какую-нибудь css-анимацию в 10 раз быстрее условного хрома. проводить такие эксперименты в коде хромиума может быть гораздо сложнее чем в отдельном продукте (особенно если эта оптимизация "архитектурная" и в хроме бы это потребовало капитально всё передалть)

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

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

Посмотрите в соседних комментариях, сколько эта поделка ест оперативки. Есть коммерческие решения, которые дают лучше результат, тоже умеют css и js, и при этом обойдутся дешевле, и будет больше комфорта (в первую очередь документация от людей, проверенная людьми; а в последнюю очередь ответственность на людях, а не на «ой, что-то пошло не так»).

Дак уже не один, натрындели как всегда, ну и как бы на современных процах один поток, лол

Давайте сразу уточним что там масштаба браузерного движка?

Там куча всего что не поддерживается из того что сегодня must have в любом браузере.

В старые добрые времена можно

Было Delphi выбрать компонент которые html рендерит. Но это же не полноценный браузер ….

Delphi выбрать компонент которые html рендерит. Но это же не полноценный браузер

Выглядит как браузер. Зацените, как я браузер на дельфях сделал за полчаса. И excel. Программисты больше не нужны.

Это какой-то жуткий тормоз, и js, видимо, не завезли...

Может, и к лучшему.

Этим браузёром уже можно нормально пользоваться или пока ещё нет?

Под 12 Дебиан не собирается, сильно устарело.

Под 13 Trixie собралось без проблем. Надо потестить...

Интересно, как раз искал чистый на С минималистичный браузер.

Я в курсе про такой и разные типа Lynx,Elinks и другие. Но у них есть существенный недостаток - нет полной поддержки js. NetSurf - он даже не поддерживает в полном объеме js. Northstar заявлен как с полной поддержкой js и современных стандартов, есть что поглядеть и проверить.
А так себе на базе wpe с поддержкой протокола kitty реализовал PoC, пользуюсь и работает в голой консоли с графикой. Но интересно поглядеть на чистый С с нуля. Иногда использую vimb если хочется простоты.

ну так движок жабаскрипта много озу и отъедает, видимо

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

Хороший браузер. В Speedometer 3.1 даже прошел первую отрисовку. Правда, из 580. На 2-й из 580 завис, но продолжал жрать проц. Не стал выяснять, сможет ли он пройти этот бенч, например, за неделю.

Пользуясь случаем, знает ли кто open source продукт браузера под windows для киосков с Rest API для управления и получения статуса, установки URL и выполнения своих скриптов на страница?

Если ИИ не знает, то почему должны тут?

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

О, а куда от браузера уходят? В чём вы хабр открыли и комментарий написали?

в окошко терминала, видимо) я в целом про тренды

Ну так вопрос и не поменялся, куда от браузера то уходят судя по трендам? Мне тоже интересно стало =) потому что трендов на переход на полное использование агентов для поиска в сети я не видел. Вы хабр то как открыли? А по трендам как открывать будете?)

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

Если Вы любите ставить себе приложения, это не значит, что все так делают. Не знаю, как MesoPrism, а я всё перечисленное делаю через веб-браузеры.

В приложения уходят.


are you from 2015? Недавно приложение моей клиники удалили из AppStore, теперь только веб-морда. Что на самом деле гораздо лучше, место на телефоне не отъедает, а приложения сейчас 80% это по сути те же самые морды, упакованные в бинарник. И в этих же 80% случаев приложение не нужно.
Банк и такси - пожалуй 2 редких случая, когда нужно. И то, из трех банков два уже использую через ЛК на сайте. Почему - объяснять, надеюсь, не требуется

Что-то новенкое, а куда уходят с веба или что используют вместо? Вроде как наоборот, веб стал супер стандартом, по настоящему кросс платформой - от игр, до CRM сейчас затачивают под веб. А тут какой-то новый тренд.

а, мы про разное.. UI да, точим PWA везде, где можно. Но как источник информации - один раз зашел, второй раз уже через агента и парсер.

Источник какой информации? Я не пишу парсер хабра, я открываю хабр в ff. Я не пишу парсер ютуба, я открываю ютуб в ff.

Так PWA - это ж браузер, вид сбоку.

Weboob помню был такой) типа Qt интерфейс к различным вебсайтам

Наконец-то полезное применение ИИ —- писать браузеры без ИИ.

Собрал пакет

dpkg-deb -I ./northstar_1.0.12-1+local1_amd64.deb
 Package: northstar
 Version: 1.0.12-1+local1
 Architecture: amd64
 Maintainer: Andreas Røsdal <andreas.rosdal@gmail.com>
 Installed-Size: 9428
 Depends: libavif16 (>= 1.0.4), libc6 (>= 2.38), libcairo2 (>= 1.15.8), libcurl4t64 (>= 7.86.0), libenchant-2-2 (>= 2.2.3), libfontconfig1 (>= 2.13.0), libfreetype6 (>= 2.2.1), libfribidi0 (>= 1.0.0), libglib2.0-0t64 (>= 2.79.0), libgtk-4-1 (>= 4.12.0), libharfbuzz0b (>= 7.3.0), libopusfile0 (>= 0.5), libpsl5t64 (>= 0.13.0), libsdl2-2.0-0 (>= 2.0.18), libseccomp2 (>= 1.0.1), libsqlite3-0 (>= 3.7.15), libssl3t64 (>= 3.0.0), libthai0 (>= 0.1.25), libuchardet0 (>= 0.0.1), libvorbisfile3 (>= 1.1.2), zlib1g (>= 1:1.1.4)

Лопает память нормально

Bye bye ‘полярная звезда’ sudo apt-get autoremove --purge northstar

Вот почему каждый раз, как кто-то заявляет про релиз минималистичного открытого браузера, на скриншотах мы видим интерфейс из копролита, окаменевшего ещё в 90-х?

Удивительно, как разные люди приходят к похожим мыслям в одно и то же время. У меня давно была мысль сделать браузер только для чтения, но сейчас в эпоху ИИ я его просто сделал. Вот репа со свежими релизами: https://github.com/gurov/brevier

Так как я много лет занимаюсь frontend разработкой, то решил сделать браузер полностью без JS и без CSS. Работает примерно так: конвертирует страницы в маркдаун и отображает. Никакого webview и хромиумов. Рендерит маркдаун самостоятельно. У всех страниц есть сайдбар, в котором отображется ToC меню и еще ссылки из футера и хедера. Умеет много всяких страниц читать, включая RSS, сохранять в маркдаун и еще всякое. Доступно под Линукс и Андроид.

Интересная идея

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

Собрал пакет минут за 15:

dpkg-deb --info brevier_0.5.4-1_amd64.deb
 Package: brevier
 Version: 0.5.4-1
 Section: net
 Priority: optional
 Architecture: amd64
 Maintainer: gurov <lucius.gu@ya.ru>
 Depends: libgtk-4-1

Работает: http_proxy=http://127.0.0.1:18080 https_proxy=http://127.0.0.1:18080 brevier-ui https://core.telegram.org/

Почему так быстро собрал пакет:

brevier-ui brevier.md

Я себе на Убунту просто через flatpak ставил.я ещё заявку на f-droid отправил

Давняя привычка по тестированию. Использовать snap или flatpak пакеты неудобно.

Распаковал
dpkg-deb -R brevier_0.5.4-1_amd64.deb pkg
Внес изменения
rm -f pkg/DEBIAN/md5sums
Запаковал
dpkg-deb --build --root-owner-group pkg/ brevier_0.5.4-1_amd64-new.deb

Хорошо, что можно читать через консоль brevier --ua browser brevier.md

За F-Droid отдельное спасибо! Ждём. Пока из apk поставил, попробовал, для чтения документации самое то! Гораздо полезнее, чем subj. И места занимает всего 13 Мб, что удивительно. Первое впечатление приятное, радость для минималиста. А вот на ПК флатпак не особо радует, там получается нужна платформа на 400 Мб. AppImage попробую собрать на досуге.

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

А как в нęм выглядит Хабр?

Вполне приемлемо, включая и комментарии. Тут скриншоты: https://habr.com/ru/articles/1098940/

Но я рекомендую установить и посмотреть, доступен на Windows, Linux, Android

Помнится, были какие-то непреодолимые проблемы с проигрыванием независимыми браузерами контента с DRM, типа как у нетфликса, может кто помнит?

Да, Widevine выдают только избранным, поэтому даже Firefox таскает модуль Гугла для EME. Независимому движку дорога к Netflix закрыта на этом этапе. Так что 4K-стриминг в Northstar не придет никогда, лицензии не дадут

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

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

Вроде браузер - это программа сравнимая по сложности с операционной системой

По идее, браузер — это (всего лишь) средство для просмотра документов в рамках специальной объектной модели. Но, уж, что-то много всего разного накрутили на браузер...

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

браузер — это (всего лишь) средство для просмотра документов

Это уже давным-давно не так.

ещё с появления браузерных игр на флеше это стало не так =)

Соответствие стандартам не наследуется от стороннего движка, а проверяется по каждому разделу спецификации

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

Всем, кто интересуется разработкой браузеров, очень рекомендую заглянуть сюда: https://tflavius.github.io/ru/ (интереснейшее исследование (и не только ;) ) исходников Opera Presto).

а исходники престо открыли, что ли?

Нет, слили.

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

К моему удивлению, этот Northstart с пол пинка собрался на FreeBSD 13.5. Браузер работает, но почти все сайты в нём страшно тупят и рендеряться неверно. Пользоваться невозможно, постоянно вываливаются какие-то служебные окошки ввод в которых не работает. Вот как выглядит в нём Habr.

В общем, Клоду еще недлельку попотеть и все будет ок! :-)

Harb в браузере Northstart

PS: Rutube открывается, сильно тупит и видео не показывает, из-за отсутствия поддерживаемых кодеков я так полагаю. Все сайты тупят из-за медленной реализации JavaScript.

Внимание, ВОПРОС: да как вообще сейчас возможно утверждать об "около 170 000 строк оригинального кода на C" ?

Но автору - Спасибо с большой буквы.
Было интересно ❤️

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

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

А инструменты разработчика есть? (Хотя бы в каком-то виде)

Знаете что это?

Это закат человеческой культуры, как таковой.

Музыку ИИ пишет - пападает в чарты, картинки ИИ рисует - в слепом тесте, люди не отличают от "человеческих" работ.

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

Дальше только тьма.

человеческие же проекты никто не комментирует.

Ну показывайте свой проект браузера, мы посмотрим.

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

А сделать браузер, в одно рыло, человек - не в состоянии.

Человек со своими потугами «крутых пет проектов» уже проиграл ИИ.

«Зачем делать, если никто не оценит, или сравнит с более крутой ИИ работой» = человеческого все меньше и меньше вокруг.

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

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

Дык, чтобы выиграть по качеству, надо иметь мотивацию дальше развиваться, а откуда она, если твои потуги проигрывают ИИ? Плюс развитие ИИ не стоит на месте.

И да - в какой-то момент все человеческое проиграет по качеству и количеству.

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

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

При этом есть площадки, которые мои картинки не принимают, я скажу больше - таких площадок больше 50%. Хорошо ли это для них? Не похоже - слышал недавно, что одна из таких, крупных, на грани закрытия. Ну потому что людям по-большей части наплевать, как была сделана картинка: карандашом, в фотошопе или в ИИ, если сам контент им нравится. Я не вижу ценности в самом процессе рисования руками. Ценность я вижу в оригинальных идеях и дизайнах, и тут оно у тебя или есть, или нет - а ИИ и карандаш это просто инструмент. ЕМНИП, пока никакие ИИ-дизайны не "стреляли" в арт-кругах - все популярные персонажи и фендомы все еще были созданы людьми.

я делаю ИИ картинки и выкладываю их в твиттер

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

учиться 10 лет рисовать то, что я могу сгенерировать - нет ни времени, ни желания.

Дык и я о том же - человеческое «все», оно проиграло, нет у людей больше мотивации творить, в мире где, бесплатный ИИ уделывает твои потуги.

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

Все так, это и есть закат человеческой культуры.

Ценность я вижу в оригинальных идеях и дизайнах

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

а ИИ и карандаш это просто инструмент.

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

Нет, не инструмент.

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

В части кейсов - заменяет, но в картинках - нет. Один из сайтов, где я выкладываю картинки, не так давно оправдывался, почему у них модерация и требования по качеству строже, чем на "оригинальном" сайте для художников. Генерировать промпты и выкладывать из под них картинки без обработки действительно можно, но смотреть на это будет больно, и смотреть в общем-то никто не будет. Генерация - только второй этап создания картинки с помощью ИИ и далеко не последний. Если у тебя ИИ - инструмент, и твою картинку уже действительно затруднительно отличить от нарисованной - тогда будет спрос. Говорю по опыту :)

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

Это и есть конец человеческого.

Я не говорю - плохо это или хорошо, я констатирую факт.

Вклад человека в виде «особого промта» ничтожен в сравнении с вкладом модели в итоговое произведение, и чем дальше, тем меньше надо заморачиваться с промтами и прочими лорами/нодами и т.д.

я начал, а мой Друг продолжил 🤪

----

автор, не изобретай велик! Сколько уже таких я видел. Про многих ты даже не знаешь, потому что молод и глуп. например, tkhtml. С появлением gecko всё стало бессмысленным.

ты серьёзно думаешь, что в 2026 году кому-то нужен ещё один браузер? Тридцать лет люди пишут движки. Netscape сдох. KHTML сдох. Presto сдох. Servo чуть не сдох, и то его пилила Mozilla, а не один человек в гараже. Ты — следующий в этом списке, только без бюджета и без команды.

«с нуля» — это ложь в первом абзаце. WAMR — чужой. Wuffs — чужой. аудиодекодеры — чужие. с нуля у тебя только парсер и вёрстка, то есть ровно то, что уже написано сто раз и лежит в открытом доступе. ты не с нуля начал, ты начал с чужих библиотек и прикрутил к ним свой велосипед.

177 тысяч строк на C. Это не «компактная кодовая база», это памятник твоему свободному времени. Один разработчик не проверит это никогда. Один разработчик не догонит HTML5 никогда. Пока ты читаешь один раздел спецификации, W3C публикует три новых. Ты проиграл ещё до старта.

«соответствие проверяется по каждому разделу спецификации» — кем?! тобой?! тем же человеком, который одновременно пишет парсер, рендерер, сетевой стек и GTK-оболочку? это не проверка, это самообман. настоящие движки держат тысячи тестов и армию контрибьюторов. у тебя — вера в себя.

Safe Browsing по локальному чёрному списку с SHA-256? Ты вообще понимаешь, как работает фишинг? Домен живёт часы. Список обновляется днями. Ты защищаешь пользователя от угроз позавчерашнего дня и называешь это приватностью. Google Safe Browsing — это не про слежку, это про то, что угроза меняется быстрее, чем ты успеваешь скачать хеши. Ты изобрёл антивирус с базой 2019 года.

«один процесс» — это не архитектура, это отсутствие архитектуры. Один упавший таб — и всё. Один эксплойт — и весь браузер. Изоляция процессов придумана не от скуки, а потому что веб — это враждебная среда. Ты её выключил и назвал это фичей. Поздравляю, ты сделал IE6.

«никакой телеметрии, никаких ИИ-помощников» — это не достоинство, это пустота. Людям нужны пароли. Расширения. Синхронизация. DevTools. Закладки, которые не теряются. Ничего этого нет и не будет. 177к строк — это не тот масштаб, чтобы потянуть менеджер паролей, не говоря уже о нормальном JS-рантайме. Ты сделал не браузер, ты сделал демку.

GTK в основном потоке, движок в отдельном — вау. Blink так делает с 2013 года. Это не достижение, это домашнее задание, которое ты сдал на двенадцать лет позже.

Итог: ещё один браузер-зомби на GitHub. Через год — три коммита. Через три — README с «проект заморожен». Через пять — архив. Пока Gecko, WebKit и Blink живы, всё это — графомания на C. Ты не сделал браузер. Ты сделал надгробие своей идее, что одному человеку под силу то, что делают корпорации..

Оригинальный TkHTML: D. Richard Hipp — тот самый создатель SQLite . Он написал виджет и в конце 2002 года выпустил его в public domain.

И мне тогда посчастливилось с ним, и Dan Kennedy по-общаться.

т.е. движок писался супер профессионалами и, возможно, если бы не sqlite,   разработку которого активно спонсировали вояки, они бы довели его до уровня gecko, v8

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

«никакой телеметрии, никаких ИИ-помощников» — это не достоинство, это пустота.

Извините, уж, но Вы здорово «нарываетесь» на ответную критику.

Людям нужны пароли.

Зачем для этого браузер?

Расширения.

Зачем в браузере есть какие-то расширения?

Синхронизация.

Синхронизация чего? Вкладок? Только... зачем для этого браузер? Точнее, какое это имеет отношение именно к браузеру?

DevTools.

Зачем это запихивать в браузер? Пусть будет отдельно простой браузер без добавлений, и отдельно браузер для разработчиков (например).

Зачем это запихивать в браузер? Пусть будет отдельно простой браузер без добавлений, и отдельно браузер для разработчиков (например).

Затем, что у "простого браузера без добавлений" будут свои баги, которых нет в "браузере для разработчиков". А они там обязательно будут. DevTooks в браузере должны быть обязательно, либо придётся мириться с тем, что разработчики не смогут учесть его индивидуальные баги при разработке дизайна и скриптов. Мы это уже проходили в эпоху IE.

У кого тормозит этот новый (значит лучший) браузер нужно срочно покупать более мощное железо и будет норм)

Я будто в Альта висту попал ))

Чел представил код сгенерированный ИИ не понимая основополагающих принципов программирования.

Ниже история Ричарда Хиппа, автора SQLite, с которым мне посчастливилось по-общаться в то время (2002-2005), когда sqlite был никому неизвестным проектом.

-----------------------

SQLite начал использоваться в Android с самого начала (2008), но настоящий перелом случился чуть позже. Ричард Хипп в одном из интервью вспоминал, что когда SQLite «попал в руки миллионов приложений на миллиардах устройств», количество баг-репортов стало лавинообразным. Он понял, что «писать идеальный код» невозможно, и нужен внешний измеримый стандарт качества.

Тогда он и обратился к опыту авионики.

✈️ DO-178B: почему именно авиационный стандарт

DO-178B — это стандарт для safety-critical ПО в гражданской авиации. Он требует, чтобы для самого критичного уровня (Level A) было достигнуто 100% MCDC (Modified Condition/Decision Coverage).

Важный момент: SQLite не сертифицирован по DO-178B для полётов. Хипп использовал методологию DO-178B как инженерный ориентир для своего тестового набора, а не как юридическое требование. В документации SQLite прямо сказано, что они «стремятся к» этим стандартам, но не утверждают, что формально им соответствуют .

🎯 Что такое 100% MCDC и почему это «религия»

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

Простой пример:

```c

if (a > 0 && b > 0) { ... }

```

Обычное покрытие веток требует, чтобы if был true хотя бы раз и false хотя бы раз. Но MCDC требует ещё и чтобы:

· a > 0 было true и false при неизменном b

· b > 0 было true и false при неизменном a

То есть нужно доказать, что каждое условие имеет значение. Это гораздо строже.

Хипп в 2009 году потратил 10 месяцев на написание тестов, чтобы достичь 100% MCDC. После этого поток баг-репортов «иссяк до тонкой струйки» .

📊 Масштаб: «миллиарды прогонов» — это не преувеличение

Сам Хипп говорил, что 100% MCDC — это «порог, который легко измерить и трудно сфальсифицировать». Главная ценность не в самом факте покрытия, а в том, что чтобы его достичь, приходится писать огромное количество странных, запутанных, случайных тестов. Именно эти тесты находят проблемы в местах, о которых ты даже не думал .

Масштаб тестирования:

· Около 662 раза больше тестового кода, чем исходного 

· Четыре независимых тестовых фреймворка 

· TH3 (Test Harness 3) — проприетарный набор тестов, который распространяется только по лицензии. Это, по сути, коммерческая тайна SQLite 

· Тесты включают: fuzzing (OS-Fuzz от Google), тесты out-of-memory, тесты I/O ошибок, тесты отключения питания, тесты повреждённых баз данных 

💡 Ирония: тесты — это и есть настоящий SQLite

Один из самых проницательных комментариев на Hacker News по этому поводу: SQLite — это не C-код. SQLite — это тестовый набор. C-код — это просто «виртуальная машина, которая описана и специфицирована своими тестами». Именно тесты, а не исходники, являются истинным определением того, что такое SQLite .

Это объясняет, почему TH3 проприетарный: если кто-то украдёт тесты, он получит не просто код, а знание о том, как этот код должен работать. Без тестов форк SQLite — это просто набор C-файлов без гарантий.

🧠 Что это говорит о Хиппе как инженере

Хипп — редкий случай человека, который признал свою ограниченность и построил систему, которая компенсирует её. Он не говорит «я пишу без багов». Он говорит: «Я пишу с багами, но у меня есть 100% MCDC, и это значит, что багов стало в разы меньше».

Его подход: измеримый, воспроизводимый, дорогой. 10 месяцев на тесты — это огромная инвестиция для одного человека. Но она окупилась тем, что SQLite теперь работает в самолётах, медицинском оборудовании и на миллиардах телефонов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации