TB, Electrolysis & Quantum
kairo at kairo.at
Thu Dec 29 14:35:41 UTC 2016
Disaster Master schrieb:
> This was very interesting to me since I've never heard of Quantum. I had
> read about what I thought was another new engine being developed by
> Mozilla called Servo some time ago, but it had sounded like it was a
> long way off, and a little googling reveals that Quantum is apparently
> the official name of the new engine which is written (I think) in Rust,
> and uses the 'high performance components of Servo', so I guess 'Servo'
> is just the 'tech' behind it? Also, the expectation of Quantum being
> implemented *this year* is significant news (to me at least) too.
Servo is a new engine completely written in Rust.
Quantum is not a new engine, it is a collection of projects for
(radically) improving Gecko, including using some parts of Servo in
Gecko, and including some other changes that will improve performance
deep in the internals of Gecko. From what I understand, in all that, the
new code is only targeted at improving HTML - so my guess is that if it
seamlessly works for XUL as well, it will benefit it as well, if not,
the old code may live on for XUL only and the new code will do HTML
only. At least that's what I expect will happen there.
The goal for the long run is to make HTML be great for UI (and Firefox
already uses it for some UI pieces, mostly the in-content UI and
devtools parts right now, but there will be more and more of it). The
CSS flex box model is a great help for this, I guess CSS grid will also
be helpful, and using SVG for images/icons is another change I see a lot
and which is quite nice.
There are IMHO still some things that HTML cannot do as well as XUL
(performance-wise there are some issues at times e.g. in devtools, but
that may be because of using React to generate a lot of controls; and in
general, HTML does not have a highly performant list/tree control, which
esp. impacts email, I guess) - but in general, a lot of UI can be done
well in HTML nowadays, even more when you can ignore cross-browser
compat and only care about a known, modern version of Gecko.
> I don't recall ever hearing mention of Electrolysis in relation to TB,
> and the same goes for Servo/Quantum, so - is this 'the problem'? Gecko
> is being replaced by Quantum, which apparently has no XUL/XBL glue? Thus
> these are two of the new features of Firefox that TB will never benefit
> from due to the growing incompatibilities from XUL/XBL?
Electrolysis should not have too much impact, but there may be some if
in-process content may ever be unsupported. That said, running email
display and esp. feed display in separate processes would be nice for TB
responsiveness and security as well, and I think it wouldn't even be
that hard to do as there's not as much direct access to that content, I
think. That said, it could be hard for add-ons once again if those
interact with email/feed content.
> It sounds to me like Quantum, while being implemented incrementally, is
> really ultimately deprecating Gecko itself, not just a couple of
> components of it (XUL/XBL).
Quantum is basically just a (major) step to improve Gecko and bring it
closer to where Servo is targeted to land, so it can be done
incrementally. That said, whole subsystems of Gecko are being replaced
(like the style system which is basically being exchanged for that of
Servo). In the end, Quantum is in my eyes a middle step on the road from
where Gecko was until now towards the target of where Servo aims to land
when it's ready. Basically "let's get some of what Servo will be into
Gecko right now". If you want to call a major revision/improvement of
Gecko a "new engine", maybe you can, but I wouldn't - but then, I'm more
a fan of evolutions than revolutions in general (though I'm not so sure
if the evolutionary path can still work for TB right now, but I would
prefer it to other paths).
More information about the tb-planning