top | item 10085700

Mozilla's Servo Engine Now Capable of Rendering GitHub

251 points| kungfudoi | 10 years ago |phoronix.com | reply

82 comments

order
[+] pcwalton|10 years ago|reply
Also see Ars Technica rendered in Servo: https://twitter.com/pcwalton/status/631961638304804864

I've been working on knocking down layout bugs that affect the most popular sites lately. Please feel free to try it out and file GitHub issues, especially if you can minimize test cases! You're definitely likely to see various degrees of brokenness on most sites, but the core CSS 2.1/CSS3 layout is pretty solid at this point; there's just a long tail of bugs and corner cases we've got to nail down. This is where finding and isolating the bugs that break the major Web sites is important!

[+] andy_ppp|10 years ago|reply
Interesting, as a web developer I really really want Servo to become a big success. I wonder at what point do Mozilla think I should start having a once over in Servo before putting my sites on the web?

Why not, I'll start doing this as it can't do any harm and create some test cases should I find some weirdness.

It's really easy to build a copy of servo after all:

    https://github.com/servo/servo
The instructions there generally just work.
[+] seertaak|10 years ago|reply
I have to say, as a C++ developer, I'm really impressed with Rust's progress in the last year. Creating a browser rendering engine is a complicated task -- it's a very strong proof that the language is practical. Rust also seems to have a friendly, engaging community, and leaders (e.g. pcwalton) that are fair-minded and that invite and inform rather than scare away. The docs are nicely presented and informative. The language feels fresh and modern. The build and library discovery story is 10x better than what C++ offers.

In short, there's a lot to make you want to move over. Still, I a) have a ~90K LOC code base in C++/Obj-C that I'm not going to abandon any time soon, and b) after having gotten burned (in Haskell) by the "more purity or strictness (in the conventional, not evaluation, sense) is always better" argument, I'm waiting to be convinced that having a more picky compiler actually helps rather than getting in the way. As mentioned above, projects like this certainly make one more confident that it does help.

[+] cjcole|10 years ago|reply
I've gone all-in for Rust for any side projects. I still get paid to write C++, but I choose to use Rust. I'd say that I'm up to around 20K LOC at this point and the sheer peace of mind that I get is worth almost any amount of extra arguing with the compiler when it just works the first time I run it -- which happens a surprising proportion of the time.

Improvements which would make me really happy:

* Faster builds. This is still a pain point.

* "Non-lexical borrows" [1]

* Trapped under ICE [2]

I know that all of the above are being actively worked on, so I'm waiting patiently. [3]

[1] Borrows are currently tied to scopes (blocks, etc). This makes certain safe borrowing patterns illegal, requiring slightly-to-highly awkward workarounds.

[2] The compiler crashes too often (ICE). I was recently stuck with a non-compiling code base and facing the prospect of systematically commenting out code to find the offending piece. Fortunately, this one was fixed quickly. There are many others remaining, though. (It is getting better as Rust gets more use.)

[3] This is a lie. Patience is rarely one of my virtues.

[+] steveklabnik|10 years ago|reply
Abandoning ~90k LOC certainly seems like a bad idea, but since Rust can basically pretend to be C, you could just peel off a certain part of your app, and have a hybrid codebase. Your C++ would just link to the Rust like any other C library. This is the approach Firefox is taking.
[+] bootload|10 years ago|reply
"after having gotten burned (in Haskell) by the "more purity or strictness (in the conventional, not evaluation, sense) is always better" argument ... I'm waiting to be convinced that having a more picky compiler actually helps rather than getting in the way"

@seertaak, can you quickly explain how the strictness became a problem?

[+] agnosias|10 years ago|reply
Could you describe in more details how you got burned? (I have never done anything big in haskell)
[+] grayrest|10 years ago|reply
If you're interested in checking out the progress, the build process[0] is really easy.

Here's the current page: http://i.imgur.com/NmRNaRz.png

If you want to poke around more, servo shell[1] lets you switch starting pages without having to re-run from the command line.

[0] https://github.com/servo/servo [1] https://github.com/glennw/servo-shell

[+] Coding_Cat|10 years ago|reply
Huh, the image seems to have a different colour than HN has on my browser (Firefox). I wonder what causes that, usually GPU colour corrections don't show up in screen-shots. Compression?
[+] tbrock|10 years ago|reply
Is multithreaded rendering really the next big browser breakthrough? If so, are Google and Apple also working on similar projects?
[+] bjz_|10 years ago|reply
I remember hearing that the Blink folks were looking into it, but that in general it is really hard to do the kind of stuff that Servo does because CeePlusPlus.
[+] steveklabnik|10 years ago|reply
Early reports look really promising. It's hard to tell when Servo doesn't implement the full web platform, but even with a substandard network stack, Servo is _fast_.
[+] bobajeff|10 years ago|reply
I remember Brendan Eich saying that you can bet on it. But he included Microsoft in that statement and given all the work on forking Trident into EdgeHTML I'm pretty sure they weren't.

Apple and Google could very well have secret projects going on for such a thing though.

[+] qznc|10 years ago|reply
I don't think it will feel like a breakthrough. On the desktop the network is the bottleneck, not the rendering. However, it might save energy on mobile multicore devices. That is nice, because on my smart phone the browser really drains the battery.
[+] mtgx|10 years ago|reply
I still see security as the best feature of a new Firefox written in Rust.
[+] vvanders|10 years ago|reply
I think it's less of a big breakthrough and more of a way to validate that Rust is the Right Thing for certain hard problems.
[+] leeoniya|10 years ago|reply
nice. i wish the blog was updated more frequently - http://blog.servo.org/
[+] Manishearth|10 years ago|reply
This is entirely my fault. I was the one writing This Week In Servo blog posts, and I had a rather busy internship over the summer which didn't leave me much time to write the blog posts. And now I have a rather busy semester -- I probably could carve time out to start writing again, but right now I'm too swamped to do it. I'm glad you enjoyed the posts, though!

Following http://twitter.com/ServoDev can keep you up to date for now.

[+] unknown|10 years ago|reply

[deleted]

[+] smt88|10 years ago|reply
The downvotes are because there was no content in your comment. "So much win!" can be expressed by clicking the upvote arrow instead.
[+] Scarbutt|10 years ago|reply
Mozilla really needs to step up its game and start innovating, a technically "superior" browser won't make it gain market share against Google, Microsoft and Apple, these three have powerful platforms to promote their browsers, what does Mozilla have? Firefox's usage is declining every day at a fast pace.

I'm amazed to see how much average Joe users have Chrome installed with no help from anyone.

Edit: Want to add that I wasn't taking a stab a Servo, which is a truly awesome project on its own no matter what's going with Mozilla.

[+] pcwalton|10 years ago|reply
This is a truly bizarre comment. Can you elaborate as to how Servo is not "innovating"?
[+] bobajeff|10 years ago|reply
Mozilla has tried to enter the OS space with Firefox OS. Unfortunately, that hasn't worked out so well for them so far.

Entering a mature market with a new product often winds up a fruitless effort. I think they'll have a better shot with new categories like Smart Watches, Smart Mini MP3 Players and those Smart Flip Phones/Sliders. Android is having major issues entering those categories for quite some time so that leaves a good opening for competition.

Another thing they can do is to build their own phone. Make it the best phone that they possibly can and support it for 5-10 years. With the only revisions making it smaller and cheaper but otherwise the same (ie. same architecture but miniaturized). Even if during those 5-10 years it's not seen uptake Mozilla will have built up a unmatched reputation for supporting their devices. So when the successor is announced...