As others have said, the goal ultimately with this kind of work is (or should be) standardization. Web tech-based apps really should be able to run anywhere you have a decent browser.
(I work for Mozilla, but not on our Apps work specifically)
Yeah, there's been discussions between the teams working on this at Google and Mozilla. I think the lack of coordination on a standard at this point is mostly because everything is still very much evolving. No one's sure exactly what's right, and we all learned the dangers of premature/aspirational standards from the start of the last decade (e.g. SVG). This is the time to iterate and figure out what works. The standards time will come once there's some real-world experience in what they should be.
This is not new, my packaged app has been in market for a long time now. The APIs are always developing. Such apps have been possible for some time now.
edit: to be precise, my app is almost a year old and the packaged app stuff was there even before that. And in chrome world, twelve months is a very long time.
This feels quite a bit like Fluid or Prism, as others noted. Interestingly, though, it looks quite a bit like writing a plugin for Chrome rather than a webpage (http://developer.chrome.com/trunk/apps/about_apps.html) and the new APIs are going to be interesting.
Integrating it into the OS might lead to unpredictable factors like Microsoft or Apple removing that kind of functionality from their future OS versions.
1. User sees a listing of XLS or DOC files in the web app, stored in the web app's local storage, user clicks to open a file in a default native office application such as MS Office, and registers a "watchFile" callback to be notified of any changes to the underlying file data (when the user presses CTRL+S in the native office application), to enable syncing to the web app's local storage.
2. Web app is granted read/write access to a directory on the user's system, so that if a user opens a file in this directory from outside the web app, the web app can still watch changes made to these files to enable syncing to a backup server etc.
3. Packaged apps as complete binary installs, without requiring Chrome to be installed on the user's machine, and without requiring the user to visit a proprietary web store or sign up as a Google user. The user should not know that they are installing a packaged app. This binary would need to be able to be marketed and installed from outside of proprietary web stores if packaged apps are to be a success. i.e. a website could offer a .dmg or .exe download link depending on the platform. The app would include the Chrome updater and auto-update to track the latest packaged app apis.
It would also be a huge help if the POSIX, TCP, UDP APIs could match that of Node.js and have similar performance characteristics and capabilities (fsync etc).
Standards bodies are meant to formalize technology that already exists. Good luck getting a standards committee to innovate and come up with new features.
(BTW, IE gave us XmlHttpRequest. It was not introduced by a standards body. )
If it's open then that argument is irrelevant. MS's Embrace Extend Extinguish is only applicable for proprietary standards. Open standards are the cure for that.
Standard bodies exist to standardlize already existing technologies so others can implement them.
And btw did you miss the experiment part of all the non-standard APIs? About the only thing that wasn't was the manifest (which is JSON) and the icons.
If any other browser can use the exact same technology Google uses, then that's fine. That's how other technologies get adopted by browsers, too. As soon as most of them adopt one, then it usually becomes a standard.
Also, I'll give you a much worse example, that has already happened, rather than something that may happen in the future, like what you're suggesting - h.264. It "completely bypassed" the standards body as well. The standards body would've much rather used something open source and free, but since most browsers used h.264 for the video tag, and since 2 of the major browser makers, Microsoft and Apple, were unwilling to go with an open source codec, the standards body was forced to adopt h.264.
Am I right in guessing these types of apps can only be supplied to users through the Chrome store?
If so, then: No. thank. you.
I will just never, ever, ever, EVER build software that needs to go through some sort of "approval process", unless I'm being paid a lot of money to do so. The fact that some dweeb at google has ultimate power to simply reject all my hard work, or even worse, approve it first and then remove it at a later time, barring all my users from accessing the app, all without me having ANYTHING to say about it is just fascist and wrong. I would never work under such a system (App Store, Windows Store, Chrome Store, etc...)
I need to be free to provide my application by any method I want, that includes a download link anywhere on the internet that lets users install the app when they want, if they want, however they want, without fear of some overlord stepping in and banning the app.
"Don't mind me, just makin' a straw man, knocking it down..."
Chromium is entirely open source. A quick search shows that there are many bugs/mailing list posts mentioning packaged apps within the Chromium project. So the answer to your hypothetical question is: no, you're likely not right. Google may control the experience in the Chrome browser, but by providing all the code they use, you're free to implement whatever system you want on your own machine.
It still works on Windows, just rename a .html file .hta. You get the appearance of a real application and special privileges through windows scripting.
On an unrelated note
I like that application development is moving in the direction of using web technologies for offline software, but I don't like the fragmentation I'm seeing with the Windows Metro apps, Chrome apps, Firefox OS apps, Phonegap apps all using different manifests/APIs.
It would make more sense for developers and consumers if some of the people working on these were to work together and come up with a standard.
Does anyone know how updating software versions work in this system? It would be nice if offline applications would work the same way as the HTML5 app cache.
The autoupdate system compares versions to determine whether an installed extension needs to be updated. If the published extension
has a newer version string than the installed extension, then the
extension is automatically updated.
There's some superficial similarities, but they're very different in practice. The most obvious thing to me is the security model (which is non-existent for HTAs). In fact, HTAs are broadly considered a dangerous file type at this point, because they implicitly have full privilege of the user that runs them. By contrast, Chrome applications prompt for any required permissions (defined within an explicit security model) and are confined to their application container. A Chrome app can interact with the OS and external systems only through those allowed permissions and authorized intents.
HTAs also lack many of the aspects of real applications. Many common operations just aren't possible with an HTA (e.g. basic network sockets, USB devices). And HTAs don't support any significant OS integration, such as file associations. In contrast, Chrome apps are intended to be robust enough to support something as ambitious as implementing your own browser, but to do so using a safe, portable framework.
Fun fact: Opera has had "widgets", which are basically the same thing as this, since version 9 (2006). They could run without having the main browser open, and when I looked inside their folders, I was surprised to see that, indeed, each one had an actual ".exe" file. I doubt you'd be able to distribute them though. They are deprecated now for some reason.
This is all a terrible idea and it will fragment the Internet as we know it. The internet is not a budget strip-mall of different low grade outlets; it's more an orchard full of fruit you can discover and pick at will from millions of trees.
What people have invented is HTML applications, much as Microsoft promoted in the early 00's with some marketing and store ceremony around them.
Also, let's look at NaCl while we're here: it's basically a modern version of ActiveX.
Then we had silverlight, which was glorified Flash for LOB applications and could be out-of-browser. I wonder how long it'll be before Google invent that again.
All those are dead, and for a good reason.
Microsoft even sees that these approaches are just bad and has pushed away from them heavily recently apart from in the desktop and mobile space where they are 100% REQUIRED.
As far as their integration goes now, you can pin sites to the taskbar and there is no massive ceremony or framework around it - it's just a glorified bookmark.
Just because Google packages it up and throws it into the fad browser of the day, don't assume it's not the same golden turd that we've all hated in the past.
George Santayana: "Those who cannot remember the past are condemned to repeat it."
You're very confused about these technologies. NaCl and ActiveX aren't even remotely comparable. ActiveX is a method for deploying arbitrary binaries via the Web, and history showed it to be extremely dangerous. NaCl is a method of running thoroughly sandboxed native code; because NaCl is machine specific, it's deployed only through Chrome extensions/apps, and there's no intention to expose it directly to the Web. PNaCl adds a portable bytecode layer on top of NaCl, and is intended as a general Web technology. Realistically, it's more comparable to Java or .NET, only lower-level, more performant, better security, and no one's going to get sued for using it.
> "The internet is not a budget strip-mall of different low grade outlets; it's more an orchard full of fruit you can discover and pick at will from millions of trees."
Maybe it's just me, but I'm having a difficult time trying to comprehend how this statement relates to your argument. Some perspective please?
You keep giving Microsoft's proprietary technologies as bad examples vs Google's open source ones, and keep saying it's the same. It's not. Other vendors weren't allowed to use ActiveX or Silverlight, nor could they help improve it, and fix their bugs.
[+] [-] dangoor|13 years ago|reply
https://www.mozilla.org/en-US/apps/partners/
As others have said, the goal ultimately with this kind of work is (or should be) standardization. Web tech-based apps really should be able to run anywhere you have a decent browser.
(I work for Mozilla, but not on our Apps work specifically)
[+] [-] justinschuh|13 years ago|reply
[+] [-] Achshar|13 years ago|reply
A shameless plug https://chrome.google.com/webstore/detail/fddboknafkepdchido...
edit: to be precise, my app is almost a year old and the packaged app stuff was there even before that. And in chrome world, twelve months is a very long time.
[+] [-] unknown|13 years ago|reply
[deleted]
[+] [-] fingerprinter|13 years ago|reply
Still, I like the approach Ubuntu is taking much more as it integrates into the desktop and is cleaner. http://techcrunch.com/2012/07/19/ubuntu-web-apps-aim-to-brid...
[+] [-] mtgx|13 years ago|reply
[+] [-] _urga|13 years ago|reply
1. User sees a listing of XLS or DOC files in the web app, stored in the web app's local storage, user clicks to open a file in a default native office application such as MS Office, and registers a "watchFile" callback to be notified of any changes to the underlying file data (when the user presses CTRL+S in the native office application), to enable syncing to the web app's local storage.
2. Web app is granted read/write access to a directory on the user's system, so that if a user opens a file in this directory from outside the web app, the web app can still watch changes made to these files to enable syncing to a backup server etc.
3. Packaged apps as complete binary installs, without requiring Chrome to be installed on the user's machine, and without requiring the user to visit a proprietary web store or sign up as a Google user. The user should not know that they are installing a packaged app. This binary would need to be able to be marketed and installed from outside of proprietary web stores if packaged apps are to be a success. i.e. a website could offer a .dmg or .exe download link depending on the platform. The app would include the Chrome updater and auto-update to track the latest packaged app apis.
It would also be a huge help if the POSIX, TCP, UDP APIs could match that of Node.js and have similar performance characteristics and capabilities (fsync etc).
[+] [-] esbwhat|13 years ago|reply
I'll stick to the browser made by a foundation, not a for-profit company trying to gain control over the web. I remember IE6.
[+] [-] statictype|13 years ago|reply
(BTW, IE gave us XmlHttpRequest. It was not introduced by a standards body. )
[+] [-] vibrunazo|13 years ago|reply
[+] [-] tomjen3|13 years ago|reply
And btw did you miss the experiment part of all the non-standard APIs? About the only thing that wasn't was the manifest (which is JSON) and the icons.
[+] [-] mtgx|13 years ago|reply
Also, I'll give you a much worse example, that has already happened, rather than something that may happen in the future, like what you're suggesting - h.264. It "completely bypassed" the standards body as well. The standards body would've much rather used something open source and free, but since most browsers used h.264 for the video tag, and since 2 of the major browser makers, Microsoft and Apple, were unwilling to go with an open source codec, the standards body was forced to adopt h.264.
[+] [-] valdiorn|13 years ago|reply
If so, then: No. thank. you.
I will just never, ever, ever, EVER build software that needs to go through some sort of "approval process", unless I'm being paid a lot of money to do so. The fact that some dweeb at google has ultimate power to simply reject all my hard work, or even worse, approve it first and then remove it at a later time, barring all my users from accessing the app, all without me having ANYTHING to say about it is just fascist and wrong. I would never work under such a system (App Store, Windows Store, Chrome Store, etc...)
I need to be free to provide my application by any method I want, that includes a download link anywhere on the internet that lets users install the app when they want, if they want, however they want, without fear of some overlord stepping in and banning the app.
[+] [-] untog|13 years ago|reply
"Don't mind me, just makin' a straw man, knocking it down..."
Chromium is entirely open source. A quick search shows that there are many bugs/mailing list posts mentioning packaged apps within the Chromium project. So the answer to your hypothetical question is: no, you're likely not right. Google may control the experience in the Chrome browser, but by providing all the code they use, you're free to implement whatever system you want on your own machine.
[+] [-] antihero|13 years ago|reply
[+] [-] huhtenberg|13 years ago|reply
[+] [-] beeneto|13 years ago|reply
It still works on Windows, just rename a .html file .hta. You get the appearance of a real application and special privileges through windows scripting.
On an unrelated note I like that application development is moving in the direction of using web technologies for offline software, but I don't like the fragmentation I'm seeing with the Windows Metro apps, Chrome apps, Firefox OS apps, Phonegap apps all using different manifests/APIs.
It would make more sense for developers and consumers if some of the people working on these were to work together and come up with a standard.
[+] [-] masklinn|13 years ago|reply
Or ios's "Add to HomeScreen" alongside "Offline Web Applications"[0], which I believe has been there since the first iphone.
[0] http://www.whatwg.org/specs/web-apps/current-work/multipage/...
[+] [-] Kilimanjaro|13 years ago|reply
What if I want to open another web app, like a calculator?
Say I create an App Launcher where I drop web app icons and expect them to run on click. How do I do that?
[+] [-] Kilimanjaro|13 years ago|reply
* Found it: chromium-apps
[+] [-] oliao|13 years ago|reply
[+] [-] icebraining|13 years ago|reply
http://code.google.com/chrome/extensions/trunk/apps/manifest...
[+] [-] wslh|13 years ago|reply
[+] [-] BerislavLopac|13 years ago|reply
[+] [-] justinschuh|13 years ago|reply
HTAs also lack many of the aspects of real applications. Many common operations just aren't possible with an HTA (e.g. basic network sockets, USB devices). And HTAs don't support any significant OS integration, such as file associations. In contrast, Chrome apps are intended to be robust enough to support something as ambitious as implementing your own browser, but to do so using a safe, portable framework.
[+] [-] RoryH|13 years ago|reply
[+] [-] Kilimanjaro|13 years ago|reply
Bring it on!
[+] [-] yonasb|13 years ago|reply
[+] [-] georgecalm|13 years ago|reply
[+] [-] tomjen3|13 years ago|reply
[+] [-] gddr|13 years ago|reply
[+] [-] b0|13 years ago|reply
What people have invented is HTML applications, much as Microsoft promoted in the early 00's with some marketing and store ceremony around them.
Also, let's look at NaCl while we're here: it's basically a modern version of ActiveX.
Then we had silverlight, which was glorified Flash for LOB applications and could be out-of-browser. I wonder how long it'll be before Google invent that again.
All those are dead, and for a good reason.
Microsoft even sees that these approaches are just bad and has pushed away from them heavily recently apart from in the desktop and mobile space where they are 100% REQUIRED.
As far as their integration goes now, you can pin sites to the taskbar and there is no massive ceremony or framework around it - it's just a glorified bookmark.
Just because Google packages it up and throws it into the fad browser of the day, don't assume it's not the same golden turd that we've all hated in the past.
George Santayana: "Those who cannot remember the past are condemned to repeat it."
[+] [-] justinschuh|13 years ago|reply
[+] [-] jmsduran|13 years ago|reply
Maybe it's just me, but I'm having a difficult time trying to comprehend how this statement relates to your argument. Some perspective please?
[+] [-] mtgx|13 years ago|reply
[+] [-] drivebyacct2|13 years ago|reply
I guess the difference this time is that HTML5 APIs are actually good enough to build functional offline apps.
Shall we start the countdown until this is supported in Chrome for Android as well?