

Servo: The Countdown Continues - Manishearth
http://blogs.s-osg.org/servo-the-countdown-to-your-next-browser-continues/

======
DiabloD3
Servo becoming part of a modern browser gives me a serious boner. Chrome and
Firefox are both significantly working on trying to make sane multi-threaded
models, and they often either end up with insane ones, or end up with sane
ones that don't perform usefully any better than having left it single
threaded in the first place.

I just wish that Chrome would fix performance on OSX. I have no issues on
Windows or Android (of course), but OSX it just seems way slower than it
should be on a lot of normal tasks.

I mean, literally, the only reason I use Chrome is because of synced tabs,
history, and bookmarks built into the browser and having access to that on
Android too, purely all the integration into the phone features (I have a
Nexus 5).

To hijack my own reply here, where Microsoft is going with Windows 10, if they
really hit off, I'd consider a future Lumia model to replace my Nexus 5,
because Project Spartan seems to be catching MSIE up to what Firefox+FirefoxOS
and Chrome+Android do now.

Edit: Not sure why I'm getting downvoted here. I'm pro-Servo.

~~~
bad_user
If you're an Android user, you're missing out on Firefox Mobile.

I'm using Firefox on my Android, it's quite good and it's the only mobile
browser I know that does extensions, so you can have AdBlock Plus or uBlock
with it. If you're using Firefox on your desktop as well, it will sync your
history and bookmarks:

[https://www.mozilla.org/en-US/firefox/android/](https://www.mozilla.org/en-
US/firefox/android/)

Android is the only mobile OS that Firefox supports and this is because
Firefox has been impossible to distribute on both iOS and Windows Phone, due
to either marketplace or technical restrictions. Out of the popular mobile
OSes, Android has been the only one that isn't _defective by design_. And
unfortunately I'm not seeing Microsoft follow suit, as they are going in the
opposite direction and sorry to be grim, but I view project spartan to be just
a marketing stunt.

~~~
DiabloD3
I'm aware Firefox can do tab, bookmark, and history sync.

However, Firefox on Android cannot be deeply integrated like Chrome is on my
Nexus 5, and last time I tried Firefox Android it had a weird UI and didn't
look like a native Android app either.

Also, the lack of Chromecast support in Firefox is also making it difficult to
use on the desktop.

~~~
wlesieutre
Deeply integrated how? Am I missing things by using FF instead of Chrome? (not
a Nexus device)

EDIT: I see that Chrome is "deeply integrated" with my phone in the sense that
it can't be uninstalled, but I'm sure that's not what you mean...

~~~
DiabloD3
Tabs now appear in the recent apps list (which can be shut off and turn back
into normal tabs in Chrome), and it seems to be tied heavily into Google Now
(though I'm not sure which parts are which).

Chrome on a Nexus device is a lot like Firefox on a FirefoxOS device, if that
makes any sense.

~~~
bad_user
I also have a Nexus 6 device and personally I don't find the integration with
the recent apps list useful. Unless we are talking about apps, otherwise for
browsing I much prefer to have those tabs grouped together in one app. Plus
Chrome's "normal" tabs where more annoying to use than Firefox (continuing the
tradition from the desktop).

The thing that bothers me about Firefox is the broken behavior of " _Add to
Home Screen_ ", which doesn't listen to the website's Manifest.json. There are
issues raised in Firefox's issue tracker for this and this will get fixed, but
currently if you want to pretend that a website is an application, then Chrome
is better.

I'm doing that for a small utility I've built for myself:
[https://parolamea.org/manifest.json](https://parolamea.org/manifest.json) ...
funny thing is that even though Chrome is sexier to use for this use-case, I'm
still using that website in Firefox because Chrome doesn't offer to save
passwords for "ajax logins", a known limitation.

But either way, I end up using both. I'm using Chrome for apps (e.g. I prefer
to access Facebook and Twitter through Chrome, as it's better for privacy and
I don't want notifications and all that crap). I'm using Firefox for browsing,
as the default.

Here are some reasons for why I like it ... it has the Awesome Bar (e.g. much
better search capabilities in your own history), it has the Reader View +
Reading List (i.e. I don't need Pocket or Readability, although if you like
Pocket, then it has the best integration available), it has AdBlock Plus,
uBlock and an alpha but functional version of NoScript and really, many
websites are simply unusable on mobile without an ad blocker.

On Chromecast support, I don't know about the desktop, but if it's not
supported on Firefox desktop already, then it will probably be supported
pretty soon. Other mobile features have leaked into the desktop version as
well, for example Reader View.

~~~
wlesieutre
Ah, none of the tab stuff or app-saving from Chrome are features I would use.
And I believe my phone just supports Chromecast screen sharing at the OS level
(alongside DLNA and Miracast). Is that an addition from Sony that isn't in
stock Android?

------
cgcardona
It's worth mentioning that getting Servo to build and run on OS X is very
straight forward and worked for me the first time.

Here is the github repo:
[https://github.com/servo/servo](https://github.com/servo/servo)

Here is this HackerNews thread rendered in Servo:
[http://i.imgur.com/6yvrr3V.png](http://i.imgur.com/6yvrr3V.png)

~~~
Manishearth
You should also try [https://github.com/glennw/servo-
shell](https://github.com/glennw/servo-shell) (it's a webpage, and you don't
need to rebuild servo or anything though building it in release mode is
preferred), which gives you a browser experience.

------
pjmlp
> servo = !!dlsym(NULL, "servo_test");

I just cry when I see something like this.

~~~
simias
May I ask why? It doesn't look quite terrible to me (as much as I can judge
out of context).

~~~
pjmlp
It doesn't express the real intention of the code.

Uses C implicit conversions between pointers, integral and boolean operators
for something that would be clearly better expressed with an if ().

This type of code wouldn't survive the type of code reviews I used to do.

~~~
andrewchambers
except it is actually fairly common and once you have seen it once it is
really clear.

~~~
pjmlp
Fairly common by developers that don't have to maintain code from others.

Clarity trumps clever tricks.

EDIT: To make it clear, if I am reviewing someone's C code, I'll be applying
MISRA and Code Complete style rules.

~~~
andrewchambers
I first saw this trick in the qemu source code.

~~~
pjmlp
So what?! How is qemu an example of C code quality?

~~~
andrewchambers
I didn't say it was quality, but it is someone else's.

------
tinganho
I'm just hoping someone will create a new Electron (used in Atom), but based
on Servo instead of Chromium.

~~~
ed_blackburn
I wonder if Electron will evolve to permit different engines? blink, Edge?,
servo? Whilst this offers options, my concern would be over complicating
Electron with a plethora of abstractions some of which maybe leaky as engines
innovate and diverge.

~~~
glandium
Wouldn't Microsoft have interest in doing that, though, for Visual Studio
Code?

~~~
ed_blackburn
Perhaps. Or perhaps they're satisfied that the Chromium engine is sufficient.
As I understand it the goal of Visual Studio Code is to be cross platform and
bring .NET to a wider audience. The engine is immaterial? WE shall see though.
Perhaps Full Fat Windows only Visual Studio will borrow from Visual Studio
Code and require a different engine, to play nice with Direct X, or other
Windows proprietary tech?

------
monk_e_boy
How will developer tools work with servo? A plugin?

~~~
jgraham
Servo currently has a (partial) implementation of the Firefox developer tools
protocol. This means that you can use Firefox devtools to inspect a servo
instance in the same way that you would a mobile device.

In the long term if and when Servo is incorporated into actual products this
story will likely change somewhat.

