1. 47

  2. 13

    As with Gmail, I believe Flow is the only browser engine written after Google Docs that can run Google Docs.

    This is pretty impressive; I would not have expected this to be possible without millions of dollars and years of work. Though I guess since it’s a proprietary codebase we can’t know much about how it was built beyond what’s on the blog.

    1. 10

      Yeah, I’m quite surprised by this, especially given that the HTML5 standards are now basically of the form “implement exactly what Chrome does based on this pseudocode”. I’m guessing that they’ve worked quite hard to get Google Docs and GMail working, but that doesn’t mean that equally complex web apps that exercise different areas of the web platform standards also work.

      1. 15

        It’s basically the same problem that the Wine project faced in the early 2000s - things people cared about might work ok, but it was pretty easy to find reasonably modern software that wouldn’t work at all. The more work that goes into something like this, the more sites start to work properly, but I think it’ll look like an S-curve.

        1. 1

          I think the newer versions of the Google apps mostly just use canvas, which is basically a PostScript drawing model API. I’ve been wondering for a little while at what point it will make sense to implement canvas on top of WebGPU and all of the DOM things on top of canvas. Firefox uses a PDF viewer that’s written in JavaScript, which means that it benefits from everything done to sandbox JavaScript. It might make sense to do the same thing with the rest of the traditional web stack. In modern browsers, calling from JavaScript into DOM methods is increasingly a bottleneck. If the DOM were just a JavaScript construct on top of canvas then that wouldn’t be a problem and DOM calls could even be inlined. That kind of approach would make it possible to share the implementations of most of a browser between lightweight rendering engines and would also make it easier to deprecate things: if you want an old version of various specs, just import the JavaScript implementations of them.

          1. 1

            I think some of the newer parts of the standard are like that (Bluetooth, whatever), but core HTML5, CSS, and JS was based on multiple browsers.

            GMail works fine in Firefox, which is a totally different rendering engine. Google Docs tends to be slow so I switch to Chrome for that, but presumably it works too. Google Maps works, etc.

            I assume GMail has to work in Safari too … Apple’s slow development of Safari is probably helping efforts like these.