Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"Runs best in Mozilla Firefox" ;)


Two years ago when the tables were turned and Google announced Dart, which has the same compatibility strategy as asm.js (fastest with explicit support, falls back to regular JS), Brendan Eich had these harsh words for Google's move (https://news.ycombinator.com/item?id=2982949):

    So "Works best in Chrome" and even "Works only in Chrome"
    are new norms promulgated intentionally by Google. We see
    more of this fragmentation every day. As a user of Chrome
    and Firefox (and Safari), I find it painful to experience,
    never mind the political bad taste.
But now "runs best in Mozilla Firefox" is cool?

I actually like asm.js and think it's a totally reasonable approach. I mention this only to highlight that maybe all of the bad-faith assumptions Google gets are not entirely deserved. Objectively these two are similar moves and I think they are both in good faith.


Obviously I'm not Brendan or Chris Peterson, but I see there being two meanings of "works best in Firefox/Chrome": one of which is "Chrome/Firefox has a faster implementation of the standards" (which is what all browsers strive for—for the Web to "work best" in their browser), and the other of which is "Firefox/Chrome has a faster nonstandard implementation of X and there is a worse, standards-based fallback for browsers that don't support this vendor-specific extension", which is what I read Brendan's frustration as relevant to.


By "runs best in Firefox", I just meant that Firefox executed asm.js content faster than Chrome (though the same standards-based content is compatible with all browsers). Google's "works best in Chrome" demos usually depend on non-standard features or the phrase is just marketing text.

I can't speak for Brendan, but I think his comment linked above was concerned that Dart and NaCl promote proprietary content types.

The Dart language is an interesting but incremental improvement like CoffeeScript and TypeScript. The Dart VM is a dead end because Apple, Microsoft, and Mozilla will never embed Google's Dart VM. If Google merged Dartium's VM into Chrome, web servers would serve proprietary Dart content to Chrome and "separate but equal" JS content (generated from Dart) to other browsers. That approach would require extra tooling and testing from web developers and open the door to Google services serving exclusively Dart content. Imagine if YouTube only supported Chrome.


> proprietary Dart content

"proprietary" is unfair, and becomes more unfair all the time now that Dart is on its way to ECMA standardization: http://news.cnet.com/8301-1001_3-57615494-92/google-convince...

If Dart is "proprietary," then so is asm.js, Mozilla Persona, Rust, and many other cool things that Mozilla is doing.

For example, take Persona. Mozilla invented, on its own, a new identity protocol which is not based on any existing standards and which it solely controls, released some code that implements it, and is trying to convince people to adopt it. When Google does the same kind of thing, it is called out as "proprietary."

> and open the door to Google services serving exclusively Dart content. Imagine if YouTube only supported Chrome.

This is exactly the kind of bad faith presumption that troubles me. Google is trying to push the web forward but in your mind their end game is to break its web properties for every browser except Chrome? This is so far from reality that I don't know how to respond to that, except to lament that distrust of Google by people associated with Mozilla is so high.


> "proprietary" is unfair, and becomes more unfair all the time now that Dart is on its way to ECMA standardization

By "proprietary", I mean only executable by one client.

I had not read about Dart's ECMA standardization process (TC52). I think that's great news, but to be fair, that announcement was made just two days ago:

http://news.dartlang.org/2013/12/ecma-forms-tc52-for-dart-st...

> If Dart is "proprietary," then so is asm.js, Mozilla Persona, Rust, and many other cool things that Mozilla is doing.

I don't think asm.js, Rust, dart2js, or Go are "proprietary" because their implementations are open and their output can be executed by multiple platforms or clients. Dart source files is only executable by Google's Dart VM.

> This is exactly the kind of bad faith presumption that troubles me. Google is trying to push the web forward but in your mind their end game is to break its web properties for every browser except Chrome?

I do not think Google is plotting to create a walled garden (unlike Microsoft of the 1990s). But I think many people at Mozilla worry about future timelines where proprietary systems could be created, even if they are the inadvertent, cumulative result of different product teams' decisions.

Consider Google Hangouts. When Hangouts was launched in May of this year, it included an NPAPI plugin to support other browsers like Firefox. But now, only seven months later, the Hangouts service is very popular but is only accessible from as a Chrome extension. The Firefox NPAPI plugin is no longer supported or available for download.

Or consider Chrome's announcement to drop NPAPI itself. NPAPI is the source of much woe and instability for Firefox, but NPAPI is a de facto standard for browser-independent content. Pepper, the proposed replacement, is only implemented by Chrome. The only version of the Adobe Flash Player that uses Pepper is the Chrome port maintained by Google engineers. (Disclosure: I work at Mozilla and I used to work on Adobe's Flash Player team.) A co-worker at Mozilla told me that he asked a friend on the Chrome team "How much of the Pepper API does Chrome's Flash Player use?" and the half-joking response was "150%" because Chrome's Flash Player relied on Chrome internals that were not exposed in the Pepper API.

Or consider Google's 2011 promise to drop support for H.264 from Chrome. Google had the leverage with YouTube to migrate content and clients from H.264 to WebM, but that never happened. Even today, many YouTube videos are not encoded as WebM and content creators have a strong incentive to publish H.264 videos because Google Ads only support YouTube's Flash player.


Dart compiles to Javascript that runs very well on IE9 and up, Firefox, Opera, Safari and Chrome.

Chrome does not run Dart natively.


I'm not really sure these two are different. How is dart2js "worse" than the Dart VM, except for speed? And even in speed, dart2js is faster than hand-written JS in many cases (see https://www.dartlang.org/performance/)

With source maps Dart is debuggable from JS AFAIK. And dart.js allows deploying Dart content in a way that works seamlessly whether or not the Dart VM is present. I'm really not seeing the difference here.


People are downvoting all my comments on this story, which are saying "I think Google and Mozilla are both acting in good faith to move the web forward."

Stay classy, Mozilla fans. I'm trying to be one of you but you're not making it easy.


(I think that Google is overstepping its boundaries with Dart/NaCl/PNaCl, but didn't downvote you and don't see why people would or should.)


What are Google's boundaries?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: