←back to thread

Web Browser Engineering (2021)

(browser.engineering)
679 points MrVandemar | 1 comments | | HN request time: 0s | source
Show context
currygen ◴[] No.41848445[source]
It's refreshing that browser engineering seems to become a "trend" now. The ecosystem is quite sparse with basically only Google, Apple and Mozilla defining it. I'd like to see forward into a future with more independent browser engines.
replies(4): >>41848575 #>>41848648 #>>41848756 #>>41850985 #
mike_hearn ◴[] No.41848648[source]
I don't think it's worth trying to write a rendering engine for HTML. You will never finish - HTML is a spec fully owned by Google and Apple at this point and it's just too complex to implement from scratch.

The interesting space is really post-HTML UI/document tech. There's another thread running about Typst which is a sort of better LaTeX. Markdown was highly impactful. There's a lot of scope for people to do interesting things in this space that are "HTML but better". It doesn't even have to be a markup format - Typst and React HTML both blur the lines between code and data. Jetpack Compose shows how to use Kotlin's DSL features to make something that looks a bit like a UI description but which is actually code.

Of course it means you have to then either distribute a 'browser' for your format, or find a way to display it in the browser. But compiling down to some JS/HTML/WASM thing is certainly possible. You can also use portable GUI toolkits like JavaFX; that also gives you accessibility. Or do both!

Once you define your own UI language there's a lot of scope to try things that HTML doesn't do well. An obvious one is separation of content and style. HTML tried and never really got there. XSL:T tried harder but was a weird pure functional language with XML as its syntax. React does quite well with going JSON->boxes but the underlying protocols are always ad-hoc and tacked on, so you can't really write useful tooling on top of that.

Another idea would be a format that's natively immune to XSS.

replies(5): >>41848888 #>>41850225 #>>41852914 #>>41854174 #>>41854436 #
1. 7crow ◴[] No.41852914[source]
> You will never finish - HTML is a spec fully owned by Google and Apple at this point and it's just too complex to implement from scratch.

sounds like a skill issue