Always Bet on JS:
The Convergence of Operating System and Browser
Nick Desaulniers
Clarification
The Browser and OS are distinct pieces of software, but going forward will be less distinct to users than to developers.
Not replacing the kernel, but the window manager to provide the desktop environment.
Some History
January 2009 - Palm webOS Launched
July 2009 - Google Chrome/Chromium OS Announced
November 2009 - Chromium OS Source Code Published
July 2010 - Joli OS First Release
February 2011 - HP Acquires Palm
June 2011 - First Chromebook Ships
August 2011 - webOS Development Halted
April 2012 - Samsung Tizen First Release
July 2012 - Firefox OS Created
February 2013 - webOS Licensed To Palm
July 2013 - Firefox OS Devices Begin Shipping To Consumers
Chrome OS
Portability
The ultimate benefit of the web is portability.
"But native apps have better access to hardware!"
Enyo, PhoneGap/Cordova
VIDEO Doesn't this feel backwards?
Lock into our tool set and we'll give you cross platform.
There is no "Developer Program" for the web.
System Applications Working Group
Most API s are in the Stable draft (Last Call) of W3C standardization process.
Q1 - Q2 2014 Candidate Recommendation then Recommendation.
Browser API
Bluetooth API
Calendar API
Network Interface API
Media Storage API
Secure Elements API
Device Capabilities API
System Settings API
Idle API
Execution Model
Security Model
Alarm API
Contacts API
Messaging API
Telephony API
Raw Sockets API
Bluetooth API
Performance
"But JavaScript doesn't have the performance of native!"
You're app sucks (premature optimization)!
While you were bike-shedding about what language is the ultimate for everything from kernel development to application development, we made...
Banana Bread Triple Demo
Epic Unreal Engine 3 Citadel Demo
But there's no shared memory between threads or inline assembly, so you won't be writing a kernel in JavaScript any time soon.
Mobile Today
Android is King
80% of Smartphones
1-1.6 Billion smartphones in use worldwide (est)
7.1 Billion people on Earth (est)
* 80% market share
=
11-18% of people on Earth use an Android device (est)
That leaves A LOT of room for growth
Platforms without mmap
In order for a JIT compiler to work, it must be able to ask the operating system for executable virtual memory. If the required system call is not available to user land, then generated code may not be executed.
HTML5 Battle Plan
What can HTML5 do to take over the world?
More Device APIs
Consistent Performance Improvements
Rocking Developer Tools (Demo)
Partnering with Carriers and Handset Manufacturers
Target Growing Markets
... (What should be added to the list?)