← Back to context

Comment by danielvaughn

2 years ago

No what I'm referring to is much, much broader. I'm talking about literally a different file extension + rendering engine + execution context. There are a whole host of issues that are outside the scope of just CSS.

We're getting there, slowly but surely. WebGL + WASM will eventually let you simply drop down a custom rendering engine, but we've got a long way to go to get there. We're creeping up on being able to sensibly render an entire UI that way, but that UI will not have good accessibility until the browser exposes that more generically, and a lot of other little details.

Then you can do whatever you want, or, more realistically, grab an open source alterna-rendered that does something close to, but not quite exactly, what you want, but close enough.

It's a lot of work to get there from here, but all the forces push that way and I expect it will happen, even if it takes another decade.

Reserve your seats now for the inevitable progression of HN stories, roughly by year:

1. Show HN: My Alterna-render Renders Text Around Arbitrary Images

2. Layout.rs: A Minimal Alterna-Renderer In Rust

3. Layout.rs Has Gotten Too Bloated

4. Why You Should Stop Using Alterna-Renderers And Just Use HTML+CSS

5. Facebook's App Reaches 5 Gigabytes of Rendering Code

6. When to use and not use an alternative renderer

  • You’re far too optimistic.

    The pure-canvas approach is currently very bad, and most of what makes it so is fundamentally unfixable, because fixing it would require exposing unacceptable details (for privacy or functionality). I’ve written about this quite a few times on HN. A few of the things I tend to mention could conceivably be fixed, but browser-makers have shown absolutely no inclination to address any of it.

    No, for at least the rest of this decade, doing things properly will absolutely require using the HTML DOM. And I’m very sceptical that browser-makers will ever seek to make the pure-canvas approach a viable alternative, there are just way too many problems with it.

    If you reduce the scope to custom layout and such for CSS, there are interesting experiments in the CSS Houdini project.