> Hi pcwalton, I just wish Servo had clearer goals.
What is not clear about "parallelize all parts of the pipeline", "get rendering GPU bound", and "write a memory safe browser"?
> Flexbox is a great example. We were told the problems with DOM updates was caused by the old layouts and things like floats.
Nobody said that.
> So Flexbox was supposed to fix those problems.
No, it wasn't.
> I find myself frustrated that now 8 years after the iPhone the web is still incapable of so many things.
Me too.
> Here's a very simple goal: A swipeable sidebar.
You can do it already at 60 FPS. Make an overflow:scroll div and allow the user to scroll it into view. Or even just do it manually with the DOM. It will easily be 60 FPS in existing engines if you animate transforms.
> That's it. Make that happen. Do whatever it takes. Create another new layout if necessary. Create a new touch spec that's faster, if necessary. Whatever. it. takes. And then when the work is done you can point to this new widget and say that the initiative paid off.
There's nothing to do here, as you've described it.
But your comment is actually illustrative of the real problem (at least, what I think it is). We have a ton of ways to do things on the Web. Some of them are fast, and some of them are not. Web developers don't realize what the fast paths are (which is not entirely their fault). I think that all of the paths should be fast, and I think that many of Servo's technologies (such as WebRender) go a long way toward making that happen.
What's frustrating is comments like yours that describe things that the Web can clearly already do and blame browsers for supposedly being unable to do simple things. I used to think the way you did—that the Web is incapable of rendering a 60 FPS scrollable view—and then quickly discovered that, if optimized properly, there is actually no problem. What I think the problem with Web slowness is that Web authors don't know what the fast paths are, and they use things like jQuery.animate() that hit all the slow paths. That is a problem that I think we are well equipped to solve in Servo due to things like parallel style recalculation, off main thread layout, and WebRender, but it's a lot more nuanced than what you describe.