1367: Installing

Explain xkcd: It's 'cause you're dumb.
(Redirected from 1367)
Jump to: navigation, search
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.

[edit] Explanation

This comic refers to the kind of "inventions" which seem new from the point of view of a smartphone (handheld computer) user, but have already been around for a long time on desktop or laptop/notebook computers.

Cueball has a clever idea to skip the downloading and installing of applications on mobile phones: he would host the applications online instead, and provide links to the servers. The apps wouldn't stay on the phone all the time; instead the phone would download each app again every time the user wanted to run it.

However, web pages and web applications already work like this. Clicking a link will make the browser download a web page and render HTML-code and JavaScripts or plugin data (such as Flash applets) that it links to.

The page usually isn't saved long-term on the user's computer; instead the browser downloads it again when needed. HTML5 does however offer the option of caching web application files locally so it can remain operational when there is no network connection.

In the title text, Cueball's idea for local application storage already exists in the HTTP protocol as cookies. The more flexible web storage was originally part of the HTML5 specification, but it's now in a separate specification.

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 phone's resources, like notifications and sensors. The Firefox OS project is trying to standardize access to these resources so that the entire user interface can be a web application, while projects like Apache Cordova make these resources available to web applications by creating a native application wrapper for the web application.

[edit] Transcript

[Cueball and Megan are standing next to each other.]
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! ⋅ Icons-mini-action refresh blue.gif refresh comments!


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? 05:28, 12 May 2014 (UTC)

For some reason, this reminded me of the old Snaptu app. (https://en.wikipedia.org/wiki/Snaptu) 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. -- 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. 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)

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. 00:30, 11 November 2015 (UTC)
Personal tools


It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal?