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!
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:
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.
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.
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.
"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?
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?
Really curious to hear more explanation of this comment from Patrick: "Printing is pretty incompatible with parallelism though." Is he saying that Servo as a parallel engine won't be able to handle printing?
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.
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_.
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.
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.
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!
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.
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...
[+] [-] pcwalton|10 years ago|reply
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
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:
The instructions there generally just work.[+] [-] seertaak|10 years ago|reply
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
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
[+] [-] bootload|10 years ago|reply
@seertaak, can you quickly explain how the strictness became a problem?
[+] [-] agnosias|10 years ago|reply
[+] [-] grayrest|10 years ago|reply
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
[+] [-] Manishearth|10 years ago|reply
We have a bunch of easy issues (https://github.com/servo/servo/labels/E-easy) and are willing to mentor people on them.
[+] [-] Coding_Cat|10 years ago|reply
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] kbrosnan|10 years ago|reply
Github - https://twitter.com/pcwalton/status/633411771617832961
Ars - https://twitter.com/pcwalton/status/631961638304804864
[+] [-] haberman|10 years ago|reply
[+] [-] tbrock|10 years ago|reply
[+] [-] bjz_|10 years ago|reply
[+] [-] steveklabnik|10 years ago|reply
[+] [-] bobajeff|10 years ago|reply
Apple and Google could very well have secret projects going on for such a thing though.
[+] [-] qznc|10 years ago|reply
[+] [-] mtgx|10 years ago|reply
[+] [-] vvanders|10 years ago|reply
[+] [-] leeoniya|10 years ago|reply
[+] [-] Manishearth|10 years ago|reply
Following http://twitter.com/ServoDev can keep you up to date for now.
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] smt88|10 years ago|reply
[+] [-] Scarbutt|10 years ago|reply
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
[+] [-] bobajeff|10 years ago|reply
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...