Servo: The Countdown Continues
blogs.s-osg.org
blogs.s-osg.org
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.
i use delicious (it is still around) with the android app. you just 'share' a url. work with any browser you want to use, on any platform (firefox,IE,Cr,windows,linux,iOS,Android). it also incentives you to organize your bookmarks. it is not as convenient on speed, but it surely makes up for it by just adding an account you care nothing for on every device (instead of one that can access your emails/contacts/etc). And i don't want to have my living room tv browser in sync while i read on the bathroom.
Delicious to my knowledge does not fix that because (unless something has changed) it depends on you actively bookmarking something.
Typical use case: I have to run out of the office, and suddenly remember I need the address to that place I was looking at. Tap the tab symbol, and find the tab from my office desktop, and I have it without having to search.
I agree with you it'd be nice to add an account that is separate from all my other stuff, but tab syncing is one of those features that you'll likely not use much, but when you happen to want it, it can be immensely useful.
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/
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.
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.
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...
Chrome on a Nexus device is a lot like Firefox on a FirefoxOS device, if that makes any sense.
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 ... 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.
Incidentally, Firefox/Firefox for Android has all of that. Also, with end to end encryption.
But the rest of the sync (including history) is very useful.
Well, given that Apple proved that it does no longer any shit about OSX by having the audacity of releasing their Yosemite train wreck to the end user, I would not expect any 3rd party vendor to give a shit either.
Here is the github repo: https://github.com/servo/servo
Here is this HackerNews thread rendered in Servo: http://i.imgur.com/6yvrr3V.png
I just cry when I see something like this.
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.
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.
servo = dlsym(NULL, "servo_test") != NULL;
... really too onerous?Also not all uses of ++ are accepted, specially the typical memcpy() interview question, which requires to know operator precedence rules between * and ++.
I assume that's a yes to allowing ++ at all. In my opinion ++ generally does a good job of conveying intent, and !! does a very good job of conveying intent.
- single line statements always in postfix form
- for loops
- exception for the prefix form in for loops with C++ iterators due to performance reasons
Clever C code has its place in hackatons, not in code that needs to survive a few project generations.
That is a reasonable thing to allow, but I personally find that particular use much more confusing and finicky than using !! to coerce to boolean.
It all depends on what people read stuff like `!!` as. In a project where that's used often (I assume in CEF there are a whole lot more lines like that one near it), the intention is clear, because people will be reading `!!` as "Coerce to bool". Some won't, agreed. But in the context of a project where it's used often, this isn't as much of a problem.
For example, `fork()` when used is not clear at all about what's going on to someone not familiar with it, but people still use it for stuff, and people reading it know what the intention was if they've had some experience with the language/library.
After lots of use things like `!!` get a concrete intention ascribed to them.
But yes, it can be more explicit so it perhaps should have been.
I mean, if it's forbidden by your particular coding style then fair enough but it's a bit harsh to cry at this bit of code because it makes use of it.
For what it's worth I made a quick grep for ' !!' in the linux kernel and found 2439 matches. I think it's more a matter of subjective taste than a sign of poor coding.
And I maintain that any C compiler worth its salt will handle '!!' just fine, it's a really simple optimization (and even if you consider double-negations poor style in your code it'll crop up quite often while inlining functions or expanding macros for instance).
In the long term if and when Servo is incorporated into actual products this story will likely change somewhat.