1367: Installing

Explain xkcd: It's 'cause you're dumb.
Revision as of 07:39, 12 May 2014 by 108.162.254.180 (talk) (Explanation)
Jump to: navigation, search
Installing
But still, my scheme for creating and saving user config files and data locally to preserve them across reinstalls might be useful for--wait, that's cookies.
Title text: But still, my scheme for creating and saving user config files and data locally to preserve them across reinstalls might be useful for--wait, that's cookies.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: First draft.
If you can address this issue, please edit the page! Thanks.

This comic refers to the kind of "inventions" which seem new from the point of view of the user in the context of smart-phones (hand-held computers) but the ideas have been implemented for a long time in desktop computers. Cueball has a clever idea to skip the downloading and installing of applications on mobile phones and replace them with links to applications that would download the appropriate data and then run.

This concept however is already implemented in web applications. Clicking a link will make the browser download the web page and execute the contained HTML and javascript code.

In the title text Cueballs idea for local application storage is also already contained in the HTTP protocol with cookies and more recently the HTML 5 protocol added the more flexible web storage.

Native phone applications and web applications are not completely interchangeable. The web browser that is needed to run web applications on a mobile phone doesn't allow access to several of the phones resources, like notifications and sensors. Projects like Apache Cordova try to make these resources available to web applications, but they do this by creating a native application wrapper for the web application.

Transcript

Cueball: Installing things has gotten so fast and painless.
Cueball: Why not skip it entirely, and make a phone that has every app "Installed" already and just downloads and runs them on the fly?
I felt pretty clever until I realized I'd invented webpages.


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

explainxkcd has it pretty easy with this one since the comic explains a lot of itself. Maybe explain what a smartphone is and how apps work? 108.162.237.218 05:28, 12 May 2014 (UTC)

For some reason, this reminded me of the old Snaptu app. (https://en.wikipedia.org/wiki/Snaptu) 108.162.225.147 07:02, 12 May 2014 (UTC)

Maybe it should be mentioned that sometimes you DON'T want to auto-install every application and give it access to all your phone resources. Because, you know, malware. -- Hkmaly (talk) 09:47, 12 May 2014 (UTC)

I wonder why he chose cookies over localStorage... seems like localStorage does a better job of storing configs. greptalk12:06, 12 May 2014 (UTC)

document.cookies was invented before localStorage. --108.162.246.4 22:19, 12 May 2014 (UTC)

Firefox OS can technically do this, and technically does this. greptalk12:07, 12 May 2014 (UTC)

Web pages and native apps still has a few essential differences that prevent us to interchange them practically, at least for now. The latter can be compiled and optimized into binaries that executes performantly on the specific device/platform. Current web standards don't make pages/sites/apps this way, the web browser needs to load the text codes then interpret and run them on the fly, which is much slower. 199.27.128.79 08:33, 16 May 2014 (UTC)

Native apps on PCs? Sure. But on phones? Apps on phones rarely contains any native code and in fact often ARE written in web-compatible languages. I mean in java or javascript. Also, in many situations, combination of extremely optimized Java virtual machine and poorly optimized native code results in interpreted code running FASTER that compiled one. Not speaking about fact that not many applications NEEDS to run so fast - they spend most time waiting for disk, net, user input or screen refresh anyway. -- Hkmaly (talk) 10:22, 16 May 2014 (UTC)
On windows/Mac most programs are distributed as binaries - already compiled to support a wide variety of platforms, very rarely do they contain control-paths for specific hardware implementations. Java on the other hand: It gets compiled at runtime and can get hardware specific optimisations (and if the JRE detects critical sections it will dedicate more time and resources on optimizing that part making it even faster). Javascript also can get compiled, depending on the webpage this can also be done on the server-side as to make it harder to manipulate the js. 10:20, 31 July 2019 (UTC)

The phrase "[...] a phone that has every app "installed" [...]" from Cueball's dialogue seems to conflict with the explanation. I understood it as the phone would have all the apps installed, but with only the "header" data. In the Android context, I suppose that would be the AndroidManifest.xml. In the Windows context, I suppose that would be the registry entries. 188.114.99.189 00:30, 11 November 2015 (UTC)

progressive web apps

seem similar to this