Google’s ARC Now Runs Android Apps on Chrome OS, Windows, Mac, and Linux
arstechnica.com
arstechnica.com
The overall experience with the Google team has been very positive. Which, in all honesty, surprised me. I was expecting the typical corporate attitude towards outsiders. The way the ARC team has gone above and beyond to help has been refreshing.
I do worry as to how this would affect the openness of the web. A closed source container used to run other closed sourced clients is not my idea of how the Web should be. Even Mozilla is going down this route with their browser apps. Though I have more trust in Mozilla than in Google in regards to having and keeping an open web. Either way, it raises an important question: Where is the Web going in the next 10 years? I wish I knew. Right now it looks like a toss up.
Why are you saying that?
What Mozilla is doing is to develop web APIs needed for those apps and then push for their standardization, but all the apps listed in the Firefox Marketplace are just web apps, having no problem in running in other browsers (assuming they don't rely on APIs that haven't been standardized yet). Google is also doing this with Chrome on Android, as they've also been pushing for certain standards to be adopted that would benefit apps.
Of course, I also worry about ARC or NaCL or Dart (what's with Google these days?), however the work that Mozilla and Google are doing on those web APIs meant for apps is really not the same thing.
That's fairly typical of Google to have 2 or more of everything. Inbox and Gmail, Chromebooks and Android are prime examples.
Ars Technica has a write-up on it that lists more: http://arstechnica.com/business/2014/10/googles-product-stra...
Back in the 90's Windows had a huge monopoly due to network effects - developers would target Windows because it had the greatest number of potential users. But now they will target Android for the same reason because it can run on Windows, Mac, ChromeOS and Android smartphones.
This "Android First" model will affect several major areas, all in Google's favour:
1. It strengthens ChromeOS over Windows.
ChromeOS is already a strong player in the education and low-price sectors. Having a huge range of Android apps will make ChromeOS far more attractive and grow its market share. Moreover if corporate, boring-office-CRUD developers switch to an Android-first model then it will very quickly kill Windows.
2. It strengthens Chrome over Firefox and IE.
Many apps will now require the Chrome browser to run. Oh, you are running Firefox on Windows and want to play that cool Android game your friend told you about? Just switch to Chrome and sign in with your Google account! Again there are network effects - the greater Chrome's market share the more willing developers are to create Chrome-only apps.
3. It strengthens Android over iOS.
Android has about 85% of smartphone market share, but many startups are still undecided about an Android-first approach because a single Apple user generates far more revenue than a single Android user. Having Android run on desktops will push some startups off the fence in favour of Android-first. A few developers switching from iOS to Android doesn't sound like much, but if there are a ever a critical mass of Android-only apps it will quickly kill iOS. Apple should be worried.
4. It strengthens Native over Web-app development.
Ok this isn't a huge benefit for Google, but it is significant for developers. Back in 2005 every startup chose browser-based web apps as their target platform. The rise of smartphones has pushed the pendulum back towards native development, but desktops have remained the preserve of web apps. Many startups now develop both a Web App and Android version of their product - by dumping Web App development startups will now be able to (a) save costs; (b) produce a desktop app that has native performance and better access to Google Play Services.
The one exception could be games, which are a lucrative market. That said, mobile games will offer a limited set of interactions compared to typical PC offerings, which will limit appeal to people who are already playing mobile games but who wish to play those games on their desktop as well. It will increase time spent in the app, but not grow the market substantially relative to new users coming in from mobile devices. And because it requires a browser anyway and because ARC is never going to run on iOS, if the web can advance fast enough to keep the market satisfied (asm.js is a start, but payment is still horribly lacking) then there will be pressure to just do everything on the web anyway.
Interesting times are in store, regardless.
And that's just the thing: if your app can be done on the web, you're already going to do it on the web, because there's not a platform on the planet that won't automatically have it. If the website that you already have doesn't perform well enough, then you make a second app while you wait for the web to reach parity.
You're going to think I'm weird, but I don't use the Facebook app, I use the site. I don't use the Twitter app, I use the site. This isn't some philosophical choice on my part, I really just can't be arsed to take the effort to search for yet another app on the app store, and then fret over the implications of approving yet another set of meaningless permissions, and then resign myself to endure yet another app pestering me to update it for the rest of my days.
I accept that there will always be a place for native apps. The web is slow to pick up on new bits of hardware and new modes of interaction, so native will always be ahead of the pack there (though Mozilla is at least attempting to prepare itself for the Oculus Rift with a big push for VR on the web). It's a conservative platform. But once something is Good Enough for the web, you need a very good reason to dislodge it.
I think we've been talking about two separate issues:
1. Do a significant proportion of apps need to provide the same functionality on both a smartphone and on desktop computers? Here I think the answer is yes. Twitter, Gmail, weather apps, maps, image gallery, music streaming, games, banking apps, youtube, etc. provide essentially the same feature set on both devices.
2. If an app needs to run on both smartphone and desktop, should it be native or a web app? Here I think the answer is not so clear-cut. Certainly in the past 15 years it was true that "if your app can be done on the web, you're already going to do it on the web, because there's not a platform on the planet that won't automatically have it". But will that still be the case in 5 years time? The choice of platform for a new app depends on more than just the potential number of users - the usability and development cost also matter. Let's say I expect to produce a web app, an iOS app and an Android app - is it really worth the extra cost to produce the web app if I can cover 95% of the potential user base without it?
> But will that still be the case in 5 years time?
By 2020 I don't expect any new platform to arise that both lacks a standards-compliant web browser and manages to enforce the lack of such a web browser. I also don't expect any existing platform's browsers to regress from the degree of standards compliance that they have at this moment. There do exist several scenarios whereby web standards could stagnate over this time period:Scenario 1: A major platform allows only a single browser, that browser being produced by the platform's parent company, and drags its feet in order to impede the standards process and promote native app development over web app development. The obvious potential candidate here is iOS, with Safari being the last major browser that has yet to commit to an "evergreen" model whereby features are quickly and regularly released. However, if ARC were to ever pose a threat to Apple's app model such that they could not somehow counter it with crippling technical constraints, it would be in their best interest to rapidly advance Safari to feature parity with other browsers. In other words, if Apple were ever faced with the decision of empowering the web vs. tacitly empowering a platform backed solely by Google, they're always going to choose the web.
Scenario 2: Chrome becomes dominant to the same degree that IE6 was once dominant. At this point anything that Google decides to implement (or to not implement) would de facto determine web standards, and just like Microsoft of old they could choose to leverage this power in order to advance a proprietary platform under their exclusive control. This is largely kept in check by Chrome's inability to exist on iOS as anything other than a thin wrapper over Safari, a situation that is unlikely to ever change (at least, I don't see any business motive to Apple making such a thing possible).
Scenario 3: Mozilla somehow loses its seat at the standards table. In the short term it may seem like Firefox can be ignored to a degree, but in the long term Mozilla is the Bismarck that keeps web standards moving forward in ways that are seen as beneficial to a majority of the vendors at the table. As long as there exist platforms with sizable userbases on which Firefox can be installed, it is in Mozilla's interest to advance the web as quickly as possible while convincing two of the big three to play along in order to undermine the remaining mutual competitor (and hence indirectly gaining an influence over that competitor's closed platform, using the browser as an attack vector). Mozilla's recent contract with Yahoo will sustain their efforts at their current levels for at least another five years, but its fate beyond that time will depend on how well FirefoxOS does at keeping Firefox from being locked out of the increasingly closed platforms of the future.
Given all of the above, I think it's safe to say that the web will continue to evolve rapidly for at least another five years, and the inexorable advance of mobile hardware will continue to close the gap between native performance and web performance (with projects like Mozilla's Servo designed to accelerate the closing of this gap). In the meantime, the biggest hurdles are the process of web app development (sorely lacking compared to native development, though there appear to be tentative steps in the right direction) and the unanswered question of how to make payment on the web as frictionless as it is on mobile (seriously, someone start working on this).
For example, perhaps Google will make it much easier to port an Android app to iOS, similar to the way SWT makes it easy to write a single app that uses native controls on both Mac and Windows.
This Android+iOS app could then run on Windows, Mac, ChromeOS, Linux, Android, and iOS. Suppose that the cost of developing such an app is roughly equal to the cost of developing a web app. Wouldn't startups be tempted to choose this platform over a web app?
Which is why we don't see a ton of HTML5 games on desktop. Expectations for desktop games are far higher nowadays. If you're competing with a household-gaming experience (i.e. desktop games are generally played on your home computer), we're talking about competition like World of Warcraft, League of Legends, shooters, RPGs, or indeed big budget console games.
And seeing as any of these games can also run on your phone, and seeing as most gamers have phones nowadays, and seeing as your phone gives you a touch-screen experience around which the gameplay is built (e.g. swipe to throw a basket ball), you might as well play on your phone.
There are some exceptions, but not many. At the end of the day though, if the mobile game runs on your phone and desktop, you'll play it on your phone. If the game has a mobile version and a desktop version, and the mobile also runs on your desktop, you'll play the desktop version instead on your desktop. Mobile games on desktop is likely a relatively small market.
Of course this entire thing will shift slowly once you can run mobile games on your desktop. But it won't be a gigantic thing overnight. It's years away.
And considering I fully agree with all your points (Flashlight, nav, cab, Photoshop and Notepad++ are excellent examples of the divide) I think it'll take quite a bit of time before things take a big turn.
It kind of feels like the early Android tablet days. When the tablet app store offered just blown up phone apps. This is going to be that, but even more blown up, and much less finetuned to the mobile form factor. (e.g. things like swipe based UI just doesn't fly.) Of course it was clear that one day developers would build apps that'd adjust to both phones and tablets perfectly, but it took some time and it's still not quite there yet. This will be similar but I think it'll take a little longer, as it's not just a resolution-difference, but also requires developers to build multiple control systems (like swipe). The entire fat-finger vs precise-mouse driven UI/UX divide now needs to converge and it takes time.
In any case, the latest announcement of touch-screen Chromebooks makes a lot more sense now.
I have to wonder if this is why Google decided to implement Pointer Events.
HTML5 desktop games barely exist. If you build a game for desktop you usually just build a native game, because trying to build World of Warcraft or GTA in a browser makes little sense. And if you do build for the browser, it's usually small-mid games where Flash is still king, despite the fact it's dying.
Desktop HTML5 games are afaik 90% mobile HTML5 games that obviously also run on Desktop, but to call 'em desktop games would be too generous because they're built for crappy mobiles running Android 2.3 browsers where even playing a simple sound when you press 'start game' is a big deal because you have a few megabytes of memory to work with. A lot of these games cater to e.g. 40 year old house moms who want to play Candy Crush type games but outside of the App Stores that are marketing black boxes.
Big publishers in this scene are e.g. Spil Games or BoosterMedia.
For example, Zibbo is one of SpilGames' brands. You'll find mobile-first games like these: http://www.zibbo.com/game/Monsterland-Junior-vs-Senior?featu...
Beyond that, there are a few developers who build cool HTML5 games usually as a way to get you to download their native app. It allows them to put these games on any desktop gaming portal, the Facebook canvas etc, and get eyeballs, and then after 5 levels say 'download the native app for more'. But even then devs often go with Flash as it's got such a huge community of developers with lots of expertise, and with Flash dying, it's cheap to hire.
For example, I think Kingdom Rush, a pretty cool and fun native tower defender app on mobile had an HTML5 version in the Chrome store, basically as an extra channel to advertise their mobile app. Not completely sure though.
Mozilla built BrowserQuest: http://browserquest.mozilla.org/
Which was pretty cool. Not really fun, but an interesting demonstration of the tech, which is what they built it for.
There's a pretty sizeable indie scene with games like these in HTML5: http://godswillbewatching.clay.io/game/godswillbewatching
Again these are mostly just desktop games that got an export-to-html5 version, though. A lot of the entry level game dev tools like GameMaker or Scirra seem to have built a big HTML5 engine which allows them to offer their users an export to iOS and Android apps by wrapping them with tech like cordova, without having to mess with Objective C or Java or anything. So for a lot of indie game devs that use this type of software they can export to HTML5 as an afterthought and upload it.
Don't know of big HTML5 game repos other than the mobile-first publishers (SpilGames, BoosterMedia, Keygames, Admeen, Pakap etc etc). There are some HTML5 game repos but they're full of crap.
Thing with HTML5 is, it's not a user-demanded tech. It's a developer tech for people who want '1 codebase, all platforms that have a browser', i.e. TVs, phones, tablets, PCs, consoles. No user is actually interested in playing HTML5 games, it has no known benefit to them, so it's never advertised as such and so there's no real stores built around it.
Sorry can't help you much more.
> Thing with HTML5 is, it's not a user-demanded tech. It's a developer tech for people who want '1 codebase, all platforms that have a browser', i.e. TVs, phones, tablets, PCs, consoles. No user is actually interested in playing HTML5 games, it has no known benefit to them, so it's never advertised as such and so there's no real stores built around it.
I'm a user and I want it. The ability to play a game on any computer without installing Steam and then installing the game and then setting up a controller and etc. etc. is a huge win for users.
I understand that browsers aren't ready for AAA FPS games (or at least the makers aren't ready to put the effort into html5 export) and I'm fine with that, but I think there's something in between, like a Super Meat Boy that is still a full-fledged game and can easily work in browsers.
I'm just surprised that there are virtually none of these out there.
I think Google deliberately slowed down "HTML5" in favor for their Android ecosystem. Witch was a stupid idea since most of their money still comes from WWW.
The money is still in WWW! The the problem is that a native app runs much better then a web app on Android. Even Facebook made a native app!!
With Chrome-OS and Firefox-OS on mobiles we might be able to reduce the gap between native and web on mobiles.
Native is still king on desktop though and I do not think AAA-studios will develop for the web anytime soon. There are some studios (Zynga, King) making shit-loads of money from crappy web-games though, so I think we will see more in between crap and AAA on the web soon. And hopefully without plugins!!!
I don't see why the same applications couldn't be compiled to run on iOS, like unity or AIR for example.
It remains to be seen if more Chrome OS devices will come with touch screens or if app developers will modify their apps to work well without them.
Windows and Linux have many, many more applications that are meant for trackpad-and-keyboard-with-'large'-screen interaction. Adding phone and tablet apps to ChromeOS doesn't make it instantly comparable to Linux and Windows.
But in future the simplest way for a developer to provide the same functionality on both desktop and Android smartphone will be to create a single Android app.
Oh, because if you add an OS made for touch/small screens on a notebook equipped with a keyboard, that immediately makes it as good as regular desktop OS ?
http://lifehacker.com/how-to-run-android-apps-inside-chrome-...
Editing photos, video, text, is all less productive, slower, less capable, more superficial on mobile. Adding an instagram filter is kind of iconic for mobile's productivity factor in my opinion.
So is ChromeOS suddenly comparable to desktops if it can run mobile-productivity software? Of course not. Far from it.
This may change as we're seeing mobile/laptop blur a bit (iPad Pro with force touch, a stylus and USB ports for externals, 12" Macbook with Intel Core M processor, for example. Or any of the 2-in-1s, the MS Surface etc). Once we see Mobile software running on Laptops, and see Tablets equipped with a keyboard/stylus, converging around the 11" form factor, with ever improving mobile chips, then we'll probably see more 'real' productivity software.
But it's a bit too soon to call ChromeOS comparable all of a sudden. It's a great move, though. I remember you couldn't/can't even run Skype on ChromeOS. Soon, stuff like that will be of the past, without requiring massive Tizen-like investments to have developers completely rebuild a hundred thousand mid-high quality apps for your store.
Really, Chrome itself isn't so much a web browser any more. I swear, at some point they're going to let you generate seeming-OS-native-binaries from Chrome Apps which will then bootstrap themselves by silent-installing Chrome—but only the "app launcher" part, not the "web browser" part. At that point, Chrome will be a capital-P-Platform: exactly the same as Silverlight/Adobe Air/etc.
Or Flash, or Java...and look how well things have worked out for all those "write once, run anywhere" client app platforms!
It's interesting that what you're describing is actually been done by Mozilla, when they separated XULRunner from Firefox. A few apps already use it², including Google's own Analytics Editor, but it needs to be way more polished to make it attractive to the general app developers.
¹ http://www.youtube.com/watch?feature=player_detailpage&v=j8o...
Straight out of the MS playbook, 'lets use our dominant browser as a pincer move to gain developer/market share'.
The other side of the medal is that this might slow down progress on the open web-platform as developers would rather develop a native android app than put effort to make a web-app.
It somehow funny: Recent developments around the web platform (service workers, etc) are supposed to make web-apps compete with native apps and even Microsoft is starting to embrace this (web based skype). At the same time now native apps run in the web. It will be interesting how to this will evolve.
It also shows why Google developed NaCL and that it doesn't really matter that it hasn't been adopted by other browsers. Because its main use case is for ChromeOS.
We now have a development platform for desktop quality apps in a proprietary format that run via a plugin in the web and in a runtime on desktop.
The only missing link is publishing the plugin so other browsers can run the apps, oh and renaming it to Flash.
ARC is going to be the next Flash(TM). And now developers still have to target multiple platforms (web, android, ios), instead of just the web.
Once can take advantage of this in interesting ways. If you are Myriad and you have a Java(tm) runtime for mobile devices, you can skip (or reverse) the Dalvik bytecode translation and run Android apps in your runtime. At which point Oracle sues your ass, and the settlement is confidential. You can see this approach at work in the Jolla handset.
That said, sure, there ARE people writing some C#. Google has applications that run on Windows. But very very few people are writing C#.
Remember the great lengths Google went to avoid the OpenJDK's GPL license (which, BTW, is a plain-and-simple open source license, with its implicit, unrestricted patent grant); this one is a lot more restrictive (and dangerous).
[1]: http://www.ifross.org/artikel/4-shifty-details-about-microso...
To meet the minimum requirements for open source, the copyright holder must grant you permission to modify the source and create derivative works. Microsoft most certainly does not grant you those permissions.
The MIT license implicitly grants you patent-use permissions; MS has taken those permissions away, hence this is not the MIT license, but an MIT licensed that has been ammended (so much so that it is perhaps no longer open source at all).
You can read DannyBee's comments here for clarification and a more thorough and precise discussion: https://news.ycombinator.com/item?id=9111849 (he's an open source lawyer).
https://github.com/Microsoft/dotnet
".NET open source projects typically use either the MIT or Apache 2 licenses for code. Some projects license documentation and other forms of content under Creative Commons Attribution 4.0. See specific projects to understand the license used."
The legal instrument by which those permissions are taken away is patents, which is actually worse than copyright because patents are sneaky. See those DannyBee comments I linked to for an explanation.
In any case, Facebook does something similar with React which also "uses" the BSD license, except not really, which is why Google, for example, have already said they can't use Facebook's open-source projects.
Facebook keeps the project open source, except adds an unrelated auto-destruct mechanism; the CLR isn't even really open source (because you don't have permission to freely modify the code or derive from it). I don't know which is worse...
At any rate -- the MIT license for CLR is not amended. The patent grant is separate from, not an amendment to, the MIT license.
This grants an implied patent license to the patents necessary to actually do this, as long as you meet the restrictions... This is actually well-settled law. You don't get to give people stuff unrestricted, and say "you can use this for free", and then say "just kidding, what i meant was, you can use this for free as long as you pay me for the patents"
However, when you do what facebook has done, and give an explicit license, you have overwritten the terms of that implied license, and you get no implied license. So it is not only "not unambiguously safer", you are not "left with the same rights you had under the bsd license if it is revoked". This is because if you revoke the explicit grant, you get nothing in terms of patents. But the implicit grant is not revokable unless you violate the copyright license.
most engineers are not familiar with implied patent licenses. BSD normally carries one. So you do in fact, get a implied grant. By doing this [i.e. have an explicit patent grant] you don't, you only get the explicit grant. The implied grant is normally not revocable unless the underlying BSD terms are violated, whereas the explicit grant is revocable for other reasons.
To summarize, it is well-settled law that an open source license carries a patent grant, unless that grant is restricted by an explicit one (which supersedes the implicit grant as it amends the license). The restrictive MS patent grant is therefore not in addition to, but instead of the implicit promise.
It seems like Google's legal department is also under the impression that this is settled law, as they've said they cannot use React and other open source Facebook projects because they contain a restricted, explicit patent grant, while they do use projects without them.
> The reason people use explicit patent grants is to avoid getting into some unsettled law. Particularly, the sublicensability of implied patent licenses is not clear. The TL;DR of this is "the answer is clear if you get the software directly from person owning the patents. If you get it through someone else, like say, a linux distribution, it's not clear what happens". The related doctrine of "patent exhaustion" that plays into this is also not settled, and currently the subject of a Supreme Court cert petition by Cisco.
But Microsoft's explicit grant does not clarify the grant implicit in the MIT license (as the Apache license does) but restricts it, beyond even the minimum bar for being considered open source.
So, if you ask: "do I have permission to use the CLR source code as I wish, as long as I comply with the MIT license?" the answer is a resounding no, Microsoft does not grant you that permission (true, they might not have the specific patent to go after you, but they might, too, and they don't have to tell you).
That leaves things like Scala, Kotlin, Grovy, etc.
That aside, this will seriously increase the appeal of Chromebooks - who doesn't want a simple, secure platform that can run all the bazillion Android apps? Google just needs to pay some more attention to Chrome OS desktop interface - it is shitty frankly.
Now that there's a supported way to get Android apps running on people's desktops I could see this becoming more of a thing, especially for things like photo and document editing.
Too bad its still Java though :p (with many advances in sandboxing and security), but I guess Google/Android didn't really have much of an option back then and I'm honestly not sure what would be the better choice now.
https://medium.com/@seanmdixon/run-android-apps-in-chrome-78...
a) Android becomes the "write once, run anywhere" platform, attracting developers away from native iOS development.
b) Android loses app exclusivity that pulled/locked users into the platform.
Was that ever a thing? I can think of apps that had this effect for iOS, but did it ever work in the opposite direction? I got Android because it's less expensive...
I wonder if it has anything to do with the fact Samsung, the most successful Android manufacturer, is in South Korea.
http://blogs.wsj.com/digits/2015/01/20/apples-smartphone-sal...
Just to give an example, Naver (the dominant South Korean internet company) launched Pholar, which is quite similar to Instagram, in March this year. Pholar is currently only available for Android.
I also like being able to configure my homescreen and having different keyboards (though the latter's shown up in iOS now)
There's some feature differentiation for sure, though iOS has the advantage on some things (I would kill for fingerprint unlock)
[0] http://www.technobuffalo.com/wp-content/uploads/2013/04/Face...
I already have all the Gmail and hangouts on my desktop I could ever want. I don't think I'll use the Clojure REPL app in lieu of $> lein repl or the Maps app in lieu of my browser. To a first approximation, apps are better than nothing but I don't see this as a Windows 8 app killer ~ their standard of fit and finish is generally higher.
There's a niche where this will be great but I don't see an app replacing audacity or blender anytime soon.
Edit: reading further, PNaCl happens to be a subset of LLVM IR. The Emscripten code could probably be repurposed to run NaCl and thus Android apps everywhere.
Google is the only reason Java is not a dying Language.
Yahoo! (search, infra),
LinkedIN,
Twitter,
NetFlix,
Square,
RelateIQ (startup, bought by Salesforce),
Salesforce (itself),
Google,
RedHat,
Facebook (I'm sure there are a few teams that have to use Java),
Yammer,
the list goes on and on and on...
Looking to how the Android team deals with anyone that dares to use the NDK, I bet if they had the freedom to choose the NDK would never had been made available.
If you are an app developer, you want your apps in front of as many people as possible, regardless of their device.
Or, for the kids, this may mean Minecraft Pocket edition on the Chromebook :)