Chrome 28 arrives with Blink, rich notifications for apps
thenextweb.com
thenextweb.com
Chrome? Not so much. And it isn't just that this news article left something out — the official Chrome blog[1] never hints that this feature will ever work on anything but Chrome.
To me it's uncomfortable how much Google's tactics with Chrome resemble Microsoft's "embrace and extend" from the late 90s. They seem to want everyone to make Chrome apps, not web apps. If that happens, ultimately we all suffer from the loss of an open web.
[1] http://chrome.blogspot.com/2013/05/richer-notifications-comi...
On the other hand, the perception on HN seem to tend towards Google being immune to such power plays. Maybe they are right; I dont know.
It's a business risk. Because what happens if Microsoft outbids Google and suddenly 1/3 of all browsers switch overnight to Bing.
The only reason Chrome exists is because they know that most people just search using the text field in the top right corner of the browser.
The Chromium blog, however, is where the developer story is told. Chrome 28's was covered the same time as the post you link: http://blog.chromium.org/2013/05/chrome-28-beta-more-immersi... Here, the W3C standard fullscreen API was covered for Android as well as the web standards WebGL and WebRTC being available through about:flags. Then CSP, @supports, Custom Elements.. all standard stuff.
Mozilla does a great job communicating the web standards story of the features they're working on. This definitely inspired the Chrome team when we released Blink, so we worked on http://chromestatus.com to capture the full cross-browser standardization story and give everyone a means to shame Chrome if we're implementing something for the web platform that doesn't have cross-vendor buy in.
There is a lot of exciting APIs available in Chrome Apps but it's certainly not slowing down on the web platform side of things. I would definitely recommend you check out the "Intent to Implement/Ship" threads [1] on blink-dev. Here you can see the activity and discussions around compatibility risk, standardization and responsibly adding new features to the platform.
[1] https://groups.google.com/a/chromium.org/forum/#!topicsearch... or spreadsheeted here http://goo.gl/loaQ5
Checking the chromestatus page, I have another question: why so little movement in relation to the new Javascript features?
1) Richer access to Google services and better OS
integration in Chrome packaged apps
- Identity API - Google only
- In App Payments API - Google Wallet only
- Analytics API - Google Analytics only
- Native Messaging API - The problem we are discussing
2) Dart - obviously a way to create a two-tier web with
Chrome being the only option for performance. (You can
bet it will be incredibly difficult for other browsers
to package/integrate the Dart VM easily).
Your roundabout answer to this question leaves me very concerned for the future of the web if Google actually thinks this isn't a problem. I do believe it's looking like the only responsible option for an open web is to ditch Chrome and try my best to lower Chrome market share.We're going to look back on this in 5 years and kick ourselves over letting Google do this. I hate to say it, but Google is now the biggest threat to an open web.
Doesn't the same logic apply to Mozilla's asm.js?
The parent comment said that asm.js was a subset of JavaScript. You said "no", but none of the things you said contradict that. asm.js is, right now, a subset of JavaScript. Which, of course, is its entire raison d'être.
What really does worry me is the ugly things that will be necessary to make asm.js genuinely viable as a platform. Yes, some proposals will have general utility for JavaScript, but many will not. And some will be downright dangerous. For example, how are you going to address pthreads compatibility, which e.g. Epic is saying they need?
I don't really want this to turn into a back-and-forth, but it's unfortunate that this has devolved into outright accusations of dishonesty.
And really, I'm far more concerned with the future plans, particularly with regard to things like multi-threading APIs. I don't see how those can be incorporated in a way that supports asm.js as an easy target for existing code while not causing it to diverge from JavaScript as used in the browser.
I'm afraid your statement really wasn't correct. asm.js is both syntactically and semantically JavaScript. OdinMonkey is a pure optimization; any observable divergence in behavior (other than timing, which of course all engines are allowed to do) is a bug that will be fixed. The fact that SpiderMonkey uses a prolog directive (not a keyword), which is also of course valid ECMAScript, to trigger a different kind of optimization does not change the fact that it is a valid implementation of JavaScript.
The fact is that asm.js runs and as of recently, does so performantly in Chrome which does even implement the aot optimisations in odinmonkey.
To my mind given the above fact it seems perfectly reasonable to make the assertion that asm.js is just javascript.
So, my concern here is that asm.js will either be forced to diverge from JS to make it generally useful, or it will need to add APIs to JS that are not appropriate outside of asm.js. If it gets to that place, then I feel that the compromises necessary for asm.js were a waste, and it would have clearly been better to just introduce a new IR that wasn't bound by the constraints of asm.js.
The "use asm" is totally optional functionality wise.
I am not sure I understand what people try to prove or imply when they say that.
OdinMonkey takes an extremely limited statically typed language with an almost non-existent runtime library as an input, checks the types and pipes fully typed IR further through the existing backend (IonMonkey). Does it come as a surprise to anyone that this can be implemented quickly?
Dart is a new language / VM and it's not standardized.
So the logic is definitely not the same.
The performance of the generated JavaScript is okay. Typically, it's somewhere around 75% of the performance of handwritten JavaScript and it's still getting better.
Those -25% may sound like a big deal, but it's comparable to the performance from JS engines from last year.
Now, if you think it's bad that Chrome is trying to entice browser app developers with powerful feature sets, that seems like a related but different complaint.
It's possible I'm unclear on the scope of the Open Web movement. When it refers to web technologies, does it mean technologies employed in the service of presenting web pages (i.e. everything you can do with javascript, html, css, etc.), or any technologies that a browser serves as a platform for? Because the latter seems like a wider scope that encompasses more than just web pages.
There Chrome has broken video recording three times the past year by pushing untested code, it's not possible to permanently disable it and the last change actually requires users to click both the Flash allow box and the WebRTC allow box!
That's without even mentioning the bug that if a user doesn't notice the second allow and refreshes the page, like every user does, the Allow box is never shown again.
http://www.cvedetails.com/vulnerability-list/vendor_id-53/pr...
It's essentially not much different from Windows having Windows-specific APIs for downloadable programs. "Chrome Packaged Apps" are the downloadable programs of Chrome OS.
The Dart FAQ says:
Q. Is Dart going to divert community effort from JavaScript-based web development?
If people like Dart and use it, then to a certain extent, yes, but isn't this true of any improvement to existing web development? Nothing is zero-effort to learn or 100% back-compatible to legacy browsers, so people use both new and old. You might look at it this way: Google is putting significant effort behind both Dart and JavaScript, choosing to develop Dart while at the same time using JavaScript extensively, and working on JavaScript tools, implementation, and language spec. We're doing both because we think Dart is worth it.
Server-side web programming finds room for many languages: does Python divert effort from Perl, and does Java undercut C++? Again, to a certain extent, yes they do, but people generally consider that a healthy situation, better than if we all used a single programming language. Multiple languages have allowed for faster change than any single language has achieved through a standards process. Furthermore, languages coexist in different niches: does Groovy really compete directly with C++? People face different engineering tradeoffs and choose different languages to meet them. Ultimately, we think client-side developers should have this kind of flexibility.
Q. Is Google planning to put Dart under the control of a standards body?
Yes, we hope to. Once Dart reaches a certain level of maturity and acceptance, we expect that a standards process will be the next step.
As for the various APIs you describe above, those are all for packaged apps, which really have nothing to do with the web except that they happen to run inside Chrome. It's like complaining that iOS in-app purchases go through Apple, or that Gnome has Bluetooth support. (Or even that Firefox extensions don't work in Safari.)
Not according to the benchmarks they give:
http://www.dartlang.org/performance/
Dart VM (Dartium) is about 2x as fast as Dart2JS (which is around 80%-90% of JS).
(Remember that you can write server-side software with Dart, too, so the VM can exist for that purpose without being some evil scheme to eliminate Javascript. Not that I would mourn the passing of Javascript :)
Furthermore, the compiler is responsible for resolving the dependencies your main program uses ("tree shaking" to remove stuff you don't actually use [1]), so there has to be a compiler even if your browser had a Dart VM built in.
[1] http://blog.sethladd.com/2013/01/minification-is-not-enough-...
I use Dart because it allows me to organize and test my code in a way that is very inconvenient with Javascript. Any speed improvements or IDE support is incidental, I have not yet had any speed problems in Javascript and I don't use their IDE :) The type-checking, library system, and the language itself is wonderful, though.
I'm not sure. If that was the case, I don't think they'd put a hot ass team (including Lars Bak IIRC) on the Dart VM and spend millions on it.
I believe Google would very much like Dart (the VM) to succeed, but they know that realistically it can not for now, and so they invest in the JS translation in order for it to be a credible player.
As you mention, one way that Dark can make a dent, though, is on the server side. It's a decent dynamic language, that's an order of magnitude faster than Python/Ruby. With enough library support, it can get places that even node, tied as it is to the async callback model, might not. A decent web framework, for example, could have Dart see a lot of adoption.
That said, it's still too early to tell -- it's not even out of beta yet.
The permission model on packaged apps is completely different, and allows for APIs that have a lot more power (raw USB, TCP access) and as such, it's hard to find a way to expose them to the open web without permission bar overload. :/ I'd personally love to find a way to bring some of the powerful APIs that browsers are developing and exposing them to the web, but it seems like we're not there yet.
For Dart.. think of it as another compile-to-JS language that was designed for large app authoring & maintenance productivity. Its performance as compiled JS seems to be pretty good already so you can target all modern browsers with Dart apps already.
But, ultimately, I'm an open web kind of guy. My money's on APIs that the web shares and I see compatibility across the web as the characteristic that drives its power and reach. Chrome's working on a lot of APIs for the open web platform (see my links above) and is constantly working with other browser vendors to get feedback, buy-in, and identify the best APIs that the web can share.
Except that's not really up to them is it? A feature that's only ever present in Firefox can't really be called a "standard". I know Mozilla's hearts are in the right place most of the time, but at some level they're trying to improve Firefox in largely the same ways that Google are trying to improve Chrome. The major exception to this would be if Google started imposing a "strategy tax" on Chrome: e.g. a deep inescapable G+ integration or something similarly awful. I can imagine Google doing that, while I can't imagine it of Mozilla.
You mean like WebRTC, WebM, WebP, Web Components, SPDY, WebSockets, the Chrome UI and process system copied by all, a huge part of the HTML5 api (Ian Hickson), also who's been paying Mozilla bills for the last 10 years? Yeoman? Closure compiler? etc.
There're no other companies or non-profits who have spent as many human and financial resources as Google has on the web platform, we're talking billions of dollars here and thousands of people. I love Mozilla and I know bashing Google is a lot of fun, but you have to give Google credits here. Their dedication to the open web platform is simply unmatched.
Mozilla and the volunteers around the world that have worked on Netscape since it went open source as well as Netscape before that have far more man-hours into this than Google does.
Google wasn't 'paying Mozilla's bills' out of kindness or dedication to the open web. They were giving them a percentage of the MASSIVE amount of money they made because Mozilla had Google as the default search engine. Same reason other companies pay for inclusion or being the default in other countries. Heck, many argue (rather correctly, I say) that one reason for Chrome was so Google could control more of the web and have to pay Mozilla less money.
I'm not a 'Google-basher' and use many of their cloud products within reason (knowing that they can pull the plug on them or me on a whim and I have zero recourse), but you're giving them too much credit. Mind you, none of this is meant to minimize Google's contributions, but their contributions are more on the search side and the mobile OS side than the 'open' web side in many ways.
They didn't lose that. They just signed an agreement with MPEGLA that anyone can use WebM for free. Firefox implemented WebM support. WebP is already being used by Facebook and many others and saves them millions making the open web faster, it'll be in Firefox soon. You also conveniently forgot WebSockets, Web Components, SPDY and WebRTC (they spent millions on iLBC and others that they just gave away for free to everyone including Mozilla, saving everyone years of R&D) and all the amazing work Ian Hickson has done on the _whole_ HTML5 API. Edit: there's also https://code.google.com/p/angleproject/ without which Firefox wouldn't have WebGL on windows. There is more but you get the idea.
Criticizing Chrome 'apps' for having non-standards API is ridiculous because Firefox does the exact same thing: Firefox addons. They have their own proprietary non-standard API: https://addons.mozilla.org/en-us/developers/docs/reference How evil! What people don't seem to understand is that Chrome Apps are just like Firefox Addons, so it's hypocritical to criticize the former and not the latter. And the Chrome UI did revolutionize the field, every browsers copied it and that's a good thing! Just saying that it was a huge contribution (among tons of others from Google, way more than Mozilla).
Google has been sponsoring Firefox for a long time even when they had an insignificant market share at the time. What you don't understand is that what's good for the web is good for Google. That's why they support even insignificant projects that may help the open web in the future (they even sponsor Open Street Map).
I'm not giving Google too much credit, they have literally spent more resources than Mozilla on the open web whether you like it or not. Are you seriously saying that Mozilla has a bigger budget than Google when it comes to the Open Web? If you think about it, Mozilla itself is part of Google's budget for the Open Web. They have also spent more than any other company be it Apple, or Microsoft or any other really. Just educate yourself on the topic.
WebP isn't used by Firefox yet and won't be used by IE or Safari anytime soon, making it useless for most sites. It's handy for some mobile apps. I know Facebook uses it in their mobile apps. But it's pretty useless on the open web due to lack of widespread support.
I will give you SPDY's small latency improvements, of course. As well as WebSockets now that it isn't horrendously broken and insecure anymore. WebRTC is quite cool and will hopefully achieve wider support.
Chrome's apps are definitively not the same as Firefox extensions. Chrome's extensions are the same as Firefox's extensions. Chrome's apps are a proprietary grab at the desktop and keeping people locked into Chrome instead of being able to use open web apps in a browser of their choice. This is by design and not exactly a secret.
Chrome's UI was simply evolutionary, not revolutionary and is the direction things were already headed in. Take a look at Opera 9.5 released the year before Chrome existed. Tabs up top. Forward/back to the left of the URL bar. Chrome evolved having the menu bar hidden by default and simplifying the visual controls a bit. But it didn't completely change what was already occurring in other browsers. Firefox took more note of Chrome than Opera because Chrome started stealing market share.
Mozilla/Netscape has put more man-hours into the open web than Google. Google doesn't 'sponsor' Mozilla. Google pays Mozilla for a service that nets Google far more money than they give Mozilla. It isn't just about money thrown at things, it's about actual hours and results. The majority of Mozilla's man-hours being unpaid doesn't mean they don't count, despite your insistence on only measuring dollars.
And, as for the open web, Mozilla is the only one fighting for it on mobile via Firefox OS, which will use open web apps with additional open source connectors into local functionality (storage, camera, etc). This is an attempt to fight against the closed ecosystem of Apple and the partially closed ecosystem of Android's app store. You'll be able to 'install' web apps from any website without the need of an app store and without needing to side-load onto your phone.
This is overstating the case. A "packaged app" is just a web app stored locally, with some additional APIs available. There's nothing to stop any other browser from treating the app in the obvious way, leveraging the html5-standard "manifest". Indeed this is the same way that Chrome OS and the Firefox OS of which you've spoken highly handle installed apps. If you're concerned about the expanded API, keep in mind that useful APIs are often ported from one browser to another: this is why we have XmlHttpRequest.
About Chrome Apps, you really don't know what you're talking about as Jess Austin just demonstrated https://news.ycombinator.com/item?id=6021899
Most Firefox contributors are paid employees thanks to Google's money. It doesn't happen for free. Of course dollars matter. Plus, Chromium is open source too and Chrome gets unpaid contributions too.
> And, as for the open web, Mozilla is the only one fighting for it on mobile via Firefox OS
So is Google. Who was the first huge company to release a 100% web centered OS? Google Chrome OS. They also ported Chrome to Android but right now, the web is just too slow compared to native (and it's going to last http://sealedabstract.com/rants/why-mobile-web-apps-are-slow...) so it doesn't stand a chance. Look at how ridiculously slow FirefoxOS apps are. Google is realistic enough not to do the same mistake but still, they ported Chrome to Android and it supports all the things that FirefoxOS does plus AOSP is open source so it shows that Google actually care about openness even when the web is not a good fit. Oh, and any idea what FirefoxOS uses as a base? Yep, Google's Android.
Chrome apps are still web apps packaged for a single browser in a proprietary app store. It's not the open web.
You do realize there are a ton of Firefox contributors that don't work for Mozilla, right? And, for the third time, Google is paying Mozilla for a service that Google makes a TON of money on. It's not charity as you seem to keep implying. Without Mozilla, Google wouldn't be where it is today. And vice versa. But you seem to only harp on the latter.
You mean the other techs I already acknowledged but you continue to harp on?
On speed, Firefox OS isn't bad for a 1.0 on middling hardware. It'll get faster (remember, Android was a DOG in its initial released on the TMobile G1, which I still have sitting on my desk). And ASM.js will make things interesting, too (and is far more open than Google's native code in the browser attempt). And the article you mentioned is talking about mobile Safari mostly which, don't forget, is completely gimped for packaged web apps on iOS due to Apple's anti-competitive 'you can't use the faster Javascript engine' stance for everything except Safari.
Google Chrome OS is a web-centered OS but it's not an open web OS like Firefox OS is. It supports Chrome apps but it don't think they have any plans to support other ones. It's also funny that you mention Chrome OS and that the web is too slow in the next sentence.
Firefox OS uses the Android internals as a base, which is in turn built on top of Linux. I'm aware of all of that as I've tested it. And I have an Android phone. I think I'm missing your point here as it's unrelated to what we're discussing.
In the end, I have a lot of respect for Google and the contributions they've made. I think they can be a force for good when they want to. And, honestly, I'd love the chance to work at a company like that. But let's keep a balanced eye on their motivations and contributions compared to Mozilla. You make it sound like Google has done everything and Mozilla nothing. I get that you're a Google fan. I am, too. But I'm also a fan of Mozilla and their commitment to openness and a level playing field for everybody.
I'm pretty sure Emacs came up with this idea: "embrace and extend" TECO.
They seem to want everyone to make Chrome apps, not web apps. If that happens, ultimately we all suffer from the loss of an open web.
Stallman seemed to want everyone to make Emacs apps, not TECO macros. If that happens, ultimately we all suffer from the loss of an open TECO community. (How is a Chrome/Chromium App different from a Gtk3 app or a Tk app? Those aren't open standards. They're just libraries the authors wanted to write and to share with the world. Not everything needs to be a standards process, sometimes you just do something and see if anyone likes it.)
More seriously, there are quite a few differences between adding a feature to an open-source project and adding a feature to a web browser shipped as an inseparable component of the operating system installed on 99% of personal computers. As a thought experiment, imagine you want to use some dongle you just bought. There is a driver that comes with Windows, but you use Linux. Do you think you'll be using your dongle anytime soon? Probably not. But imagine the driver comes with FreeBSD instead. While you probably can't use the driver code verbatim (different APIs), you can probably port it in significantly less time than it would take to reverse engineer. So while FreeBSD may have bypassed the standards process for supporting that dongle, it still works for you with very little effort.
I think if you're going to get outraged, it should be about how much memory Chrome uses, not that websites can now have prettier notifications when running under Chrome.
IE was just a nice feature to have available. If you happen to need a web browser control, there's one built in for you right there on every copy of windows. You could get in touch with Netscape and figure out what's required to redistribute their runtime, or just make the call to load up the ActiveX control. whichever is easier for you, dear developer.
Notifications will work great on chrome, and non-chrome clients will kinda degrade gracefully by throwing a javascript error. It's fine. it's just there if you decide you need it, no gun to your head.
I'd rather not go back to websites that have to specifically say which browser you have to run them in on the homepage. The web needs to be based on standards, not proprietary code.
Now that each browser has a significant number of users, web developers have learned that they need to either target the standards or maintain different versions of their application for every browser. And pretty much every web site and app I've seen does this: it works the same in Firefox as it does in Chrome. (Actually, for many years, my former bank said "this website only supports IE and Firefox, don't use Chrome". But Chrome worked anyway.)
So I think complaining about notifications in Chrome being the end of the open web is a bit premature. The open web began when developers started trying to support multiple browsers. It will only end when they stop doing that.
Only nobody cares from the TECO community -- and you can still use TECO for your texts without the new "apps".
But a web where people code for a specific browser, is less fun (or even downright unusable) to surf with another browser. We learned that in the Netscape/IE wars era.
>More seriously, there are quite a few differences between adding a feature to an open-source project and adding a feature to a web browser shipped as an inseparable component of the operating system installed on 99% of personal computers.
That's all well, but browsers can gain market share too. IE had a minority share at first, despite being bundled with Windows -- people just preferred Netscape. So that Chrome is not bundled with an OS is not much guarantee.
Not to mention that in Android, Chrome IS the IE.
What would be worrisome is if the platform creators locked them down in such a way as to prohibit choice; if Chrome were ported to iOS and Apple denied permission to distribute it, for example. But that's simply not happening anywhere anymore. Every owner of a locked-down platform is being pretty open about letting users choose which apps to use, even for core functionality like the web browser. Perhaps this is the lesson we learned in the 90s with the browser war and we are actually trying not to repeat the past!
I'm personally quite attracted to the idea of a native app that I can program in Javascript, and wouldn't want ChromeOS to not exist simply because of concerns of being "unfair". I never really used my laptop much because it was too hard to keep in sync with my desktop. But since I switched to ChromeOS for my laptop, I've used it a lot more, because everything stays up to date. Yes, I have to give some control to Google, but I always have the option of compiling it from source and making my own sync server. So overall, I'm really happy that ChromeOS exists and is open-source, even if there is no standards process for web-browser-centric operating systems :)
Wait -- that does happen. For example Google wasn't even allowed to port Chrome to iOS. What they did is they made a "fake Chrome", all UI, which underneath uses the iOS Webkit engine.
Really? Don't most Android phones ship with a different default browser than Chrome?
My wife just purchased an S4. It came with a Samsung specific browser. I thought that was fairly commonplace.
Try going to http://www.hevanet.com/acorbin/xul/top.xul in Firefox: "This page uses an unsupported technology that is no longer available by default in Firefox"
Chrome apps are like Firefox addons, they have their own non-standard APIs. So complaining that Chrome Apps have their own non-standard APIs is not a valid argument when compared to Firefox.
No, not really. They just added `let`, iterators/generators, destructuring assignment, etc in 2006 without asking anyone. Today, you can even use it without opting-in (via: type="application/javascript;version=1.7"). This stuff is supposed to be in ES6 in the future.
Same deal with APNG. They just added it in 2008. It also isn't standardized.
Firefox also supports "jar:" URLs for some reason. Here is a demo: http://kaioa.com/b/0907/jartest.html
Well, all browser vendors are like that and it's generally a good thing. If one of those experimental things turns out to be useful, other browsers will adopt it. Good examples for that are things like JavaScript, XHR, or text-overflow:ellipsis.
Parent said or being put into the standardization process. All those ES6 features are obviously in the standardization process.
Today they are, yes. Just like text-overflow:ellipsis (which was introduced with IE6) is now part of CSS3.
And some others that were standards first, like xhtml, well, didn't go so well.
Nowadays, at least for the JS stuff, we're much more circumspect about adding features, and really only do it for ES.next kind of stuff.
They're no better than 90s MS at this point, look at what Reader did to the RSS market.
https://groups.google.com/a/chromium.org/forum/#!searchin/bl...
Our approach is (1) to avoid adding new prefixed APIs and (2) to unprefix APIs when we're confident we're not going to cause compatibility problems.
When is Chrome 28 arriving? I'm using Firefox and Chrome on my Mac. And today I've updated Flash for all browsers, except Chrome. The Flash plugin in Chrome is old now and needs an update. But no new Chrome there. :-(
Flash will bring Chrome down. They even have their own Flash bugs they don't fix as fast as Adobe(!).
http://googlechromereleases.blogspot.com/2013/07/stable-chan...
The update is rolling out gradually. If you would like to make sure you're on the latest version, you can select "About Google Chrome" from the "Chrome" menu on Mac. That will take you to a page that shows you which version you're running and checks for updates.
As the release blog mentions, the Flash update is rolling out via the component updater, which updates Flash independently of the rest of Chrome.
Here are the current versions of Flash: http://www.adobe.com/software/flash/about/
After the update to Chrome 28, I still had Flash 11.7. The blog post says that Flash 11.8.800.97 (the latest version) is rolling out via the component updater. I don't think there's any UI to trigger a component update, but it should happen naturally by itself.
In chrome://plugins/ (+ "Details") I can choose between Chrome's Flash and the "normal" Flash.
EDIT: Woops, I just checked and I'm already on 28! Awesome :-)