< anglebrackets /> && { curly braces } javascript, open source and the cloud

85
<AngleBrackets/> && {Curly Braces} JavaScript, Open Source and the Cloud Scott Hanselman Principal Program Manager 3-027

Upload: kumiko

Post on 25-Feb-2016

43 views

Category:

Documents


0 download

DESCRIPTION

< AngleBrackets /> && { Curly Braces } JavaScript, Open Source and the Cloud. Scott Hanselman Principal Program Manager 3-027. Low-res screenshot via Wikipedia. LEGO Death Star stock product photo. The Cloud. The Browser. “I think there is a world market for maybe five computers.” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

<AngleBrackets/> && {Curly Braces}JavaScript, Open Source and the Cloud

Scott HanselmanPrincipal Program Manager3-027

Page 2: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Low-res screenshot via Wikipedia.

Page 3: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

LEGO Death Star stock product photo

Page 4: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The Cloud

The Browser

Page 5: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“I think there is a world market for maybe five computers.” – Thomas J. Watson

Page 6: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“I think there is a world market for maybe five computers.” – Thomas J. Watson

Page 7: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“I think there is a world market for maybe five computers.” – Thomas J. Watson

Page 8: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“I think there is a world market for maybe five computers.” – Thomas J. Watson

Pictures: Wikipedia Commonshttp://en.wikipedia.org/wiki/File:Ibm704.gif

http://en.wikipedia.org/wiki/File:IBM_Electronic_Data_Processing_Machine_-_GPN-2000-001881.jpg

Page 9: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The Cloud

Page 10: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

HardwareOperating System

Memory Manageme

nt

Graphics Subsystem

sStorage

Threading Events Networking

Security

APIs

Page 11: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Cloud

Your Data Center

Virtual MachineOS

Memory Management

Graphics Subsystems Storage

Threading Events Network

Security

APIs

Page 12: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Cloud

Your Data Center

Page 13: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Your Data Center

Cloud Other Service Providers

Page 14: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Run Linux in Azure(That’s crazy!)Artistic Photo Illustration by Gustaf Mantel

Used by permission http://iwdrm.tumblr.com/post/5339836317

Page 15: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

1SHARED INSTANCES

:-)

shared

Page 16: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

2SHARED INSTANCES

:-):-)

shared

Page 17: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

3SHARED INSTANCES

:-):-)

shared

:-)

Page 18: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The cloud doesn’t care about languagechoice

Page 19: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Run.NET,

node.js,Java,PHP,

Python,and

whateverelse

Artistic Photo Illustration by Gustaf MantelUsed by permission http://iwdrm.tumblr.com/post/4994505935

Page 20: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

open source http://github.com/windowsazure

Page 21: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

ASP.NET MVC,Razor,Web APIand moreALL Open Source

Artistic Photo Illustration by Gustaf MantelUsed by permission http://iwdrm.tumblr.com/post/7579034417

Page 22: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

IronPythonNeil deGrasse Tyson: Animated GIF memeLow res frame capture used under Fair Usehttp://youtu.be/danYFxGnFxQ#t=1m31

Page 23: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

public class Program { static void Main(string[] args) { DoIt, "test", Console.Out); }

public static void DoIt(TextReader reader, string name, TextWriter output) { string content = reader.ReadLine();

Console.WriteLine("I ran in the cloud!"); Console.WriteLine(content);

output.WriteLine("**" + content + "######"); output.WriteLine(name); }}

“SimpleBatch”

Page 24: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

public class Program { static void Main(string[] args) { DoIt, "test", Console.Out); }

public static void DoIt( [BlobInput(@"holding\input\{name}.txt")] TextReader reader, string name, [BlobInput(@"holding\output\{name}.txt")] TextWriter output) { string content = reader.ReadLine();

Console.WriteLine("I ran in the cloud!"); Console.WriteLine(content);

output.WriteLine("**" + content + "######"); output.WriteLine(name); }}

“SimpleBatch”

Page 25: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The Browser

Page 26: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

HardwareOperating System

Memory Manageme

nt

Graphics Subsystem

sStorage

Threading Events Networking

Security

APIs

Page 27: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Picture: Wikipedia Commonshttp://commons.wikimedia.org/wiki/File:ICL_2966_mainframe.jpg

Picture: Creative Commonshttp://www.flickr.com/photos/nox_noctis_silentium/6315111717/

Page 28: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Picture: Wikipedia Commonshttp://commons.wikimedia.org/wiki/File:ICL_2966_mainframe.jpg

Picture: Creative Commonshttp://www.flickr.com/photos/nox_noctis_silentium/6315111717/

Screenshot of http://www.masswerk.at/googleBBS/

Page 29: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Picture: Wikipedia Commonshttp://commons.wikimedia.org/wiki/File:ICL_2966_mainframe.jpg

Picture: Creative Commonshttp://www.flickr.com/photos/nox_noctis_silentium/6315111717/

Screenshot of http://www.masswerk.at/BingBBS/

Page 30: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Picture: Wikipedia Commonshttp://commons.wikimedia.org/wiki/File:ICL_2966_mainframe.jpg

Picture: Creative Commonshttp://www.flickr.com/photos/nox_noctis_silentium/6315111717/

Page 31: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Page 32: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

BrowserLogo: Creative Commons

http://www.flickr.com/photos/silveiraneto/2270445344/

Page 33: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Page 34: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

BrowserFlash

Page 35: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Operating System

Memory Manageme

nt

Graphics Subsyste

msStorage

Threading Events Networking

Security

APIs

Plugin Virtual Machine

Page 36: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Operating System

Memory Managem

ent

Graphics Subsyste

msStorage

I/O Events Networking

Security

APIs

Plugin Virtual Machine

Screenshot of http://www.masswerk.at/googleBBS/

Page 37: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Artistic Photo Illustration by Gustaf MantelUsed with permissionhttp://iwdrm.tumblr.com/post/1439925923

Page 38: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Operating System

Memory Manageme

nt

Graphics Subsyste

msStorage

Threading Events Networking

Security

APIs

Virtual Machine

<html>

<body>

</body>

</html>

Page 39: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Virtual Machine

<html>

<body>

</body>

</html>

Page 40: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

BrowserJavaScript

Page 41: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

BrowserJavaScript

Page 42: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser

Virtual Machine

JavaScript

?

Page 43: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

BrowserJavaScript

Page 44: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Web page titlehttp://www.url.com

Browser (Hardware Layer)JavaScript (OS)

Memory Management

Garbage Collection

Graphics SubsystemsHTML, CSS, Canvas, Web

GL,Audio, Video

Storage

Cookies, IndexedDb,

File API

Threading

Web Workers

Events

DOM Events,Callbacks

Network

WebSockets,XHR, Offline,

Realtime

Security

Sandbox, SSL,CORS

APIs

GeoLocation,Sensors

Page 45: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.

Page 46: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Mobile BrowserJavaScript

Memory Management

Garbage Collection

Graphics SubsystemsHTML, CSS, Canvas, Web

GL,Audio, Video

Storage

Cookies, IndexedDb,

File API

Threading

Web Workers

Events

DOM Events,Callbacks

Networking

WebSockets,XHR, Offline,

Realtime

Security

Sandbox, SSL,CORS

APIs

GeoLocation,Sensors,

Page 47: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The biggest mistake we made as a company was betting too much on HTML5 as opposed to native. It just wasn’t ready.” - Mark Zuckerberg

Picture: Creative Commons http://commons.wikimedia.org/wiki/File:Scoble-Zuckerberg-20080723.jpg

Page 48: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“The avalanche has already started.It is too late for the pebbles to vote.”

Page 49: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“The avalanche has already started.It is too late for the pebbles to vote.”

Kosh - Babylon 5

Page 50: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

JavaScript

Memory Management

Garbage Collection

Graphics Subsystems

HTML, CSS, Canvas, Web

GL,Audio, Video

Storage

Cookies, IndexedDb,

File API

Threading

Web Workers

Events

DOM Events,Callbacks

Network

WebSockets,XHR, Offline,

Realtime

Security

Sandbox, SSL,CORS

APIs

GeoLocation,Sensors

Page 51: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Once upon a time, HTML Tables were the most advanced thing there was.

Page 52: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Once upon a time, HTML Tables were the most advanced thing there was.

ROWSPAN!

Page 53: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

HTML is simpler than ever

<div class="iphone"/>

Page 54: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

<HTML/>

is only the structure now.

Page 55: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

CSS { .is { color: $andstyle; }}

Page 56: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

function JavaScript() { var is = "everything else";}

Page 57: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Public Dice.com ad: photo by @marmalade_timhttp://twitter.com/marmalade_tim/status/250634286498193408

Page 58: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

1 second Low-Res Animated Frames used under Fair UseSaturday Night Live Season 35 Episode 5

Page 59: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

"JavaScript is the Assembly Language of the Web"

Page 60: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

"JavaScript is the Assembly Language of the Web" - Me

Page 61: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

"JavaScript is the Assembly Language of the Web" – Me

and everyone else 'cause it's true.

Page 62: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

I said "JS is the x86 of the web" a couple of years ago but I can't claim it's original. - Brendan Eich

Brendan Fraser headshot

Page 63: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

I said "JS is the x86 of the web" a couple of years ago but I can't claim it's original. - Brendan Eich

(He kind of invented JavaScript)Brendan Eich

Wikimedia Commons: http://en.wikipedia.org/wiki/File:BEich.jpg

Page 64: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

var Greeter = (function () {

function Greeter(greeting) { this.greeting = greeting; }

Greeter.prototype.greet = function () { return "<h1>" + this.greeting + "</h1>"; }; return Greeter;})();

var greeter = new Greeter("Hello, world!");var str = greeter.greet();document.body.innerHTML = str;

class Greeter

constructor: (@greeting) -> @greet -> return "<h1>" + this.greeting + "</h1>"; greeter = new Greeter("Hello, world!");str = greeter.greet()document.body.innerHTML = str

CoffeeScript

Page 65: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

var Greeter = (function () {

function Greeter(greeting) { this.greeting = greeting; }

Greeter.prototype.greet = function () { return "<h1>" + this.greeting + "</h1>"; }; return Greeter;})();

var greeter = new Greeter("Hello, world!");var str = greeter.greet();document.body.innerHTML = str;

class Greeter { greeting: string;

constructor(greeting: string) { this.greeting = greeting; }

greet() { return "<h1>"+this.greeting+"</h1>"; }} var greeter = new Greeter("Hello, world!"); var str = greeter.greet(); document.body.innerHTML = str;

TypeScript

Page 66: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Don’t let layers hide too much complexity

Page 67: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Browser (is now a Virtual Machine)JavaScript (OS)

Memory Management

Garbage Collection

Graphics Subsystems

HTML, CSS, Canvas, Web

GL,Audio, Video

Storage

Cookies, IndexedDb,

File API

Threading

Web Workers

Events

DOM Events,Callbacks

Network

WebSockets,XHR, Offline,

Realtime

Security

Sandbox, SSL,CORS

APIs

GeoLocation,Sensors

Page 68: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“No one writes JavaScript anymore.They write jQuery.”

Page 69: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

“No one writes JavaScript anymore.They write jQuery.”

- Everyone plus me just now

Page 70: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Photo via Creative Commonshttp://www.flickr.com/photos/pmiaki/7443947216/

Page 71: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Photo via Creative Commonshttp://www.flickr.com/photos/hober/318163517/

Page 72: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

SharePoint?

Photo via Creative Commonshttp://www.flickr.com/photos/kisocci/3118105042/

Page 73: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Photo by Scott Hanselman at OMSI, Portland, OR 2012Original Sculpture by BrickArtist.com

Page 74: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Consider using theVanillaJSJavaScript Library

Page 75: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

expect morefromyourweb tools

Artistic Photo Illustration by Gustaf MantelUsed with Artist Permission http://iwdrm.tumblr.com/post/3181676800

Page 76: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The CloudMassive scale and elasticityYour choice of languages

The BrowserDeceptively powerful. Accelerated graphicsRich style and integrated virtual machine

Page 77: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The CloudYou have unlimited Virtual MachinesYou can write in any language

The BrowserYour user has a powerful Virtual Machine You can write JavaScript (or target it)

Page 78: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

The user’s Virtual Machine is part of the cloud also…put it to work.

Your cloud doesn’t need to work so hard.

Page 79: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

You are not obsolete. Artistic Photo Illustration by Gustaf MantelUsed with Artist Permission http://iwdrm.tumblr.com/post/3901348750

Page 80: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

You are powerful. Artistic Photo Illustration by Gustaf Mantel Used with Artist Permission http://iwdrm.tumblr.com/post/21381673042

Page 81: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

A new operating system ships every day.Reboot? F5.

Artistic Photo Illustration by Gustaf Mantel Used with Artist Permission http://iwdrm.tumblr.com/post/7893198413

Page 82: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

You already know the cloud.

You can program the browser.

Page 83: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Get to work!Artistic Photo Illustration by Gustaf MantelUsed with Artist Permission http://iwdrm.tumblr.com/post/8960688061

Page 84: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

Be well,write good code,

and stay in touch@shanselman

Page 85: < AngleBrackets /> &&  { Curly Braces } JavaScript, Open Source and the Cloud

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.