SlideShare a Scribd company logo
End-to-end
     W3C APIs
      By Alexandre Morgaut
JS.everywhere(2012) Silicon Valley
Presentation
• W3C AC member
• Web Architect
• JS Expert
• REST Lover
• NoSQL Fanboy
• W3C “jseverywhere“
  community group

     @amorgaut
Agenda

• The World Wide Web
• The Standards
• Server-Side JavaScript
• Web Applications
• Now & Tomorrow
End-to-end W3C APIs
The Web
• WWW: WorldWideWeb
  (aka “Hypertext Project”)
 • UDI: Uniform Document Identifier
 • HTML: Hypertext Markup Language
 • HTTP: Hypertext Transfer Protocol
• created in 1989 by Tim Berners-Lee
REST
• Representational State Transfer
 • Client-Server
 • Stateless, Cache, Uniform Interface
 • Layered System
 • Code on Demand: JavaScript
• defined in 2000 by Roy Thomas Fielding
Web Standards
W3C
• Created at the MIT in 1994
• Led by Tim Berners-Lee and Dr. Jeffrey Jaffe
• Joint agreement among three "Host Institutions"
 • MIT, ERCIM, Keio University
• Working Groups
 • HTML, MathML, RDF, SVG, CSS, Audio, Device...
IANA
• Internet Assigned Numbers Authority
• created by Jon Postel and Joyce K. Reynolds
• department of ICANN Names and Numbers)
  (Internet Corporation for Assigned

• manages
 • Domain Names, IP Addresses, Protocol registries
• MIME Media Types
 • application, text, image, multipart...
IETF

• Internet Engineering Task Force
• organized activity of the Internet Society (ISOC)
• cooperates with W3C & ISO/IEC
• manages the RFCs (Request For Comments)
 • DNS, FTP, HTTP, SMTP, Zlib, Cookie, Atom
ECMA
•   European Computer Manufacturers Association

•   Standards
    •   CD-ROM, ECMAScript, C#, Office Open XML File Formats

•   JavaScript

    •   ECMA-262 aka ECMAScript aka ISO/IEC 16262

    •   TC39-TG1 managed by Mr. J. Neumann

    •   E4X: ECMAScript for XML

    •   ECMAScript Internationalization API

    •   Test262

                             http://wiki.ecmascript.org
WaSP
•   Web Standards Project

•   founded in 1998 by Georges Olsen, Glenn Davis, & Jeffrey Zeldman

•   convinced in 2001
    Microsoft, Netscape, Opera & other browsers to support
    HTML 4.01, XHTML 1.0, CSS1, and ECMAScript

•   AcidTests (by Ian Hickson)

    •   1: HTML 4 & CSS 1

    •   2: CSS 1 & CSS 2

    •   3: HTML 4, XHTML 1.0, CSS 2.1, DOM 2, ECMAScript 3.1

        •   Today last versions of all major Browsers 100% compliant
WHATWG
•   Web Hypertext Application Technology Working Group

•   founded in 2004 by individuals from Apple, the Mozilla & Opera

•   Led by Ian Hickson

•   Created to work on
    HTML5 based on Web Apps 1.0 + Web Forms 2.0 while the W3C
    choose to concentrate on XHTML

•   HTML being a living standard (no more versions)

•   Proposed

    •   Web Workers, Web Storage, Web Sockets, ...

•   New W3C working group created in 2007 to work on HTML5

•   WHATWG & W3C editions of HTML5 can have some differences
CommonJS
•   created in 2009 by Kevin Dangoor as ServerJS on Mozilla Wiki

    •   standards for JavaScript on the server

    •   Narwhal, Helma NG, v8CGI, GPSEE, chiron, Persevere

•   Renamed CommonJS

    •   command line tools, desktop, addon, or browser implementations

    •   joined by CouchDB, Wakanda, Sproutcore, node.js, RequireJS...

•   Modules, Packages, and Promises

•   Binary, FileSystem, System, I/O stream, Socket I/O

•   Browser like APIs: worker, console, HTTP client
Server-Side JavaScript
Engines
• Mozilla SpiderMonkey
• Mozilla Rhino
• Webkit JavaScriptCore
• Google V8
• Microsoft Chakra
• Opera Carakan
Standards


• ECMAScript

• CommonJS
Servers
• Microsoft IIS
• Persevere
• Jaxer
• node.js
• Wakanda
• RingoJS
• SilkJS
NoSQL Databases
• CouchDB
• MongoDB
• Riak
• WakandaDB
• ArangoDB
• OrientDB
Web Application “1.0”
HTML5 APIs
• XMLHttpRequest 2    • Web Cryptography
• Blob                • ImageData
• File / FileSystem   • Typed Arrays
• Web SQL             • Storage Quota
• Web Storage         • System Information
• Web Workers         • URL
• Web Sockets         • WebCL
Async & Sync
• XMLHttpRequest(method, url, async)
• FileReaderSync()
• requestFileSystemSync()
• openDatabaseSync()
• indexedDBSync.open()
• localStorage.getItem()
Web Workers
• Dedicated or Shared
• No Window, No Document
• WorkerGlobal, WorkerUtils
• WorkerNavigator, WorkerLocation
• postMessage(), onmessage(), onerror()
• importScripts()
Concept

• Server JS contexts == Workers
 • multi-threaded -> Dedicated Workers
 • single threaded EventLoop -> Shared
• Server JS contexts === Remote JS Workers
Now & Tomorrow
RingoJS
• W3C
 • Web Worker
• CommonJS
 • Modules
 • System, fs, binary, IO, Unit Test
• Other: console
SilkJS

• W3C
 • XMLHttpRequest
• CommonJS
 • Modules
node.js
• W3C via modules
 • XMLHttpRequest (node-xmlhttprequest)
 • Web Sockets (node-websocket-client)
 • DOM (node-o3-fastxml), IndexedDB (perstore)
• CommonJS
 • Modules, Packages
• Other: console
Wakanda
• W3C
 • XMLHttpRequest, WindowTimer,
 • Web Storage, Web Worker,
 • File, FileSystem, Blob, ...
• CommonJS
 • Modules, System, Unit Test
• Other: console
Summary
•   ECMAScript is already everywhere

•   Modules: CommonJS already standard, AMD, ECMAScript 6

•   Many W3C APIs already applicable server-side

•   Same APIs means

    •   better learning curve

    •   more shared libraries / modules

    •   DRY -> shared Model work Offline
Client and Server JavaScript APIs
     W3C Community Group




http://www.w3.org/community/jseverywhere/

More Related Content

What's hot (20)

PDF
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Fwdays
 
PDF
Develop realtime web with Scala and Xitrum
Ngoc Dao
 
PPTX
RESTful Services
Jason Gerard
 
PPTX
Let's server your Data
Frank van der Linden
 
PPTX
Be faster then rabbits
Vladislav Bauer
 
PDF
How to write a web framework
Ngoc Dao
 
PPTX
Bccon use notes objects in memory and other useful
Frank van der Linden
 
PPTX
Microservices with Apache Camel, Docker and Fabric8 v2
Christian Posta
 
PPTX
Modular & Event driven UI Architecture
Vytautas Butkus
 
PDF
An introduction to Node.js
Kasey McCurdy
 
PDF
Art of nodejs
Shadaï ALI
 
PDF
IMPACT Interoperability Framework - Clemens Neudecker
IMPACT Centre of Competence
 
PDF
Web Development using Ruby on Rails
Avi Kedar
 
PDF
Microservices and the Art of Taming the Dependency Hell Monster
C4Media
 
PDF
Play concurrency
Justin Long
 
PPTX
Web Ninja
Alfi Rizka
 
PPTX
No Container: a Modern Java Stack with Bootique
Andrus Adamchik
 
PPTX
Meanstack overview
Adthasid Sabmake
 
PDF
Building Rich Internet Apps with Silverlight 2
Microsoft Iceland
 
PDF
Apereo OAE - Bootcamp
Nicolaas Matthijs
 
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Fwdays
 
Develop realtime web with Scala and Xitrum
Ngoc Dao
 
RESTful Services
Jason Gerard
 
Let's server your Data
Frank van der Linden
 
Be faster then rabbits
Vladislav Bauer
 
How to write a web framework
Ngoc Dao
 
Bccon use notes objects in memory and other useful
Frank van der Linden
 
Microservices with Apache Camel, Docker and Fabric8 v2
Christian Posta
 
Modular & Event driven UI Architecture
Vytautas Butkus
 
An introduction to Node.js
Kasey McCurdy
 
Art of nodejs
Shadaï ALI
 
IMPACT Interoperability Framework - Clemens Neudecker
IMPACT Centre of Competence
 
Web Development using Ruby on Rails
Avi Kedar
 
Microservices and the Art of Taming the Dependency Hell Monster
C4Media
 
Play concurrency
Justin Long
 
Web Ninja
Alfi Rizka
 
No Container: a Modern Java Stack with Bootique
Andrus Adamchik
 
Meanstack overview
Adthasid Sabmake
 
Building Rich Internet Apps with Silverlight 2
Microsoft Iceland
 
Apereo OAE - Bootcamp
Nicolaas Matthijs
 

Viewers also liked (20)

PDF
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
Alexandre Morgaut
 
PDF
How to see the numbers in dt
Shariq Khan
 
PDF
Web Introduction
asim78
 
PPT
ACM 2016v7.Presentation English
keating349
 
PPT
Concert Sponsorship
mrogers1
 
PDF
Revenge of the ORMs
Megan Bowra-Dean
 
PPTX
Real World F# - SDD 2015
Phillip Trelford
 
PDF
[OTA15] Back to binary !
Nicolas Lesconnec
 
PDF
NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job
Nuno Job
 
PDF
L’agilité pour une organisation d’entreprise saine et efficiente
Jonas Vonlanthen
 
PPTX
Devnest 111115
Angus Fox
 
PDF
Simplicity: UXLx version
cxpartners
 
PDF
Startup Passion Smack-Down SXSW 2012
John Bradberry
 
PDF
Using Sakai with Multiple Locales
ballsy333
 
PDF
Marketing Your Tech Talent - OSCON 2014
deirdrestraughan
 
PDF
I Want My $28! Rockin' Email Marketing ROI
emfluence
 
PDF
Título de experto en programación con tecnologías web
AlicantePHP
 
PPTX
jclouds BoF
Everett Toews
 
PDF
The Web is Open. Let's Keep It That Way
Marek Stępień
 
PDF
With great power comes great (development) responsibility
Sally Lait
 
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World For...
Alexandre Morgaut
 
How to see the numbers in dt
Shariq Khan
 
Web Introduction
asim78
 
ACM 2016v7.Presentation English
keating349
 
Concert Sponsorship
mrogers1
 
Revenge of the ORMs
Megan Bowra-Dean
 
Real World F# - SDD 2015
Phillip Trelford
 
[OTA15] Back to binary !
Nicolas Lesconnec
 
NodeConf OneShot Budapest — Production Ready Node.js by Nuno Job
Nuno Job
 
L’agilité pour une organisation d’entreprise saine et efficiente
Jonas Vonlanthen
 
Devnest 111115
Angus Fox
 
Simplicity: UXLx version
cxpartners
 
Startup Passion Smack-Down SXSW 2012
John Bradberry
 
Using Sakai with Multiple Locales
ballsy333
 
Marketing Your Tech Talent - OSCON 2014
deirdrestraughan
 
I Want My $28! Rockin' Email Marketing ROI
emfluence
 
Título de experto en programación con tecnologías web
AlicantePHP
 
jclouds BoF
Everett Toews
 
The Web is Open. Let's Keep It That Way
Marek Stępień
 
With great power comes great (development) responsibility
Sally Lait
 
Ad

Similar to End-to-end W3C APIs (20)

PDF
End to-end W3C - JS.everywhere(2012) Europe
Alexandre Morgaut
 
PDF
End-to-end W3C APIs - tpac 2012
Alexandre Morgaut
 
PPT
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
PDF
Node.js
Matt Simonis
 
PPTX
Offience's Node showcase
cloud4le
 
PPTX
Java script nirvana in netbeans [con5679]
Ryan Cuprak
 
PDF
01/2009 - Portral development with liferay
daveayan
 
PPTX
Express yourself
Yaniv Rodenski
 
PDF
Full Stack Developer Course | Infinite Graphix Technologies
Infinite Graphix Technologies
 
PPTX
Comprehensive Guide to Node.js for Server-Side JavaScript Development
medtechno1999
 
PDF
End-to-end HTML5 APIs - The Geek Gathering 2013
Alexandre Morgaut
 
PPTX
Going Offline with JS
brendankowitz
 
PDF
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
Jon Peck
 
PPTX
Edy Dawson Notes on SF HTML5 Dev Conf
Edy Dawson
 
PPTX
After the LAMP, it's time to get MEAN
Jeff Fox
 
DOC
Google web toolkit gwt training
FuturePoint Technologies
 
PPT
Getting Started with Docker
visual28
 
KEY
20120306 dublin js
Richard Rodger
 
PPTX
Women Who Code, Ground Floor
Katie Weiss
 
End to-end W3C - JS.everywhere(2012) Europe
Alexandre Morgaut
 
End-to-end W3C APIs - tpac 2012
Alexandre Morgaut
 
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Node.js
Matt Simonis
 
Offience's Node showcase
cloud4le
 
Java script nirvana in netbeans [con5679]
Ryan Cuprak
 
01/2009 - Portral development with liferay
daveayan
 
Express yourself
Yaniv Rodenski
 
Full Stack Developer Course | Infinite Graphix Technologies
Infinite Graphix Technologies
 
Comprehensive Guide to Node.js for Server-Side JavaScript Development
medtechno1999
 
End-to-end HTML5 APIs - The Geek Gathering 2013
Alexandre Morgaut
 
Going Offline with JS
brendankowitz
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
Jon Peck
 
Edy Dawson Notes on SF HTML5 Dev Conf
Edy Dawson
 
After the LAMP, it's time to get MEAN
Jeff Fox
 
Google web toolkit gwt training
FuturePoint Technologies
 
Getting Started with Docker
visual28
 
20120306 dublin js
Richard Rodger
 
Women Who Code, Ground Floor
Katie Weiss
 
Ad

More from Alexandre Morgaut (20)

PDF
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Alexandre Morgaut
 
PDF
Past, present, and future of web assembly - Devfest Nantes 2017
Alexandre Morgaut
 
PDF
angular-wakanda ngParis meetup 15 at 42
Alexandre Morgaut
 
PDF
Carnet de Route du Développeur - ENSIMAG 2012
Alexandre Morgaut
 
PDF
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Alexandre Morgaut
 
PDF
HTML5 in automotive - web2day 2014
Alexandre Morgaut
 
PDF
JS in SMS - JS.everywhere(2013)
Alexandre Morgaut
 
PDF
Js in Automotive - JS.everywhere(2013)
Alexandre Morgaut
 
PDF
From Web App Model Design to Production with Wakanda
Alexandre Morgaut
 
PDF
NoSQL and JavaScript: a love story
Alexandre Morgaut
 
PDF
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
PDF
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Alexandre Morgaut
 
PDF
NoSQL and JavaScript: a Love Story
Alexandre Morgaut
 
PDF
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
PDF
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Alexandre Morgaut
 
KEY
State of the art - server side JavaScript - web-5 2012
Alexandre Morgaut
 
PDF
Etat de l'art Server-Side JavaScript - JS Geneve
Alexandre Morgaut
 
PDF
NantesJS premier meetup - Welcome
Alexandre Morgaut
 
KEY
State of the art: server-side javaScript - NantesJS
Alexandre Morgaut
 
PDF
State of the art: Server-Side JavaScript - dejeuner fulljs
Alexandre Morgaut
 
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Alexandre Morgaut
 
Past, present, and future of web assembly - Devfest Nantes 2017
Alexandre Morgaut
 
angular-wakanda ngParis meetup 15 at 42
Alexandre Morgaut
 
Carnet de Route du Développeur - ENSIMAG 2012
Alexandre Morgaut
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Alexandre Morgaut
 
HTML5 in automotive - web2day 2014
Alexandre Morgaut
 
JS in SMS - JS.everywhere(2013)
Alexandre Morgaut
 
Js in Automotive - JS.everywhere(2013)
Alexandre Morgaut
 
From Web App Model Design to Production with Wakanda
Alexandre Morgaut
 
NoSQL and JavaScript: a love story
Alexandre Morgaut
 
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Alexandre Morgaut
 
NoSQL and JavaScript: a Love Story
Alexandre Morgaut
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Alexandre Morgaut
 
State of the art - server side JavaScript - web-5 2012
Alexandre Morgaut
 
Etat de l'art Server-Side JavaScript - JS Geneve
Alexandre Morgaut
 
NantesJS premier meetup - Welcome
Alexandre Morgaut
 
State of the art: server-side javaScript - NantesJS
Alexandre Morgaut
 
State of the art: Server-Side JavaScript - dejeuner fulljs
Alexandre Morgaut
 

End-to-end W3C APIs

  • 1. End-to-end W3C APIs By Alexandre Morgaut JS.everywhere(2012) Silicon Valley
  • 2. Presentation • W3C AC member • Web Architect • JS Expert • REST Lover • NoSQL Fanboy • W3C “jseverywhere“ community group @amorgaut
  • 3. Agenda • The World Wide Web • The Standards • Server-Side JavaScript • Web Applications • Now & Tomorrow
  • 5. The Web • WWW: WorldWideWeb (aka “Hypertext Project”) • UDI: Uniform Document Identifier • HTML: Hypertext Markup Language • HTTP: Hypertext Transfer Protocol • created in 1989 by Tim Berners-Lee
  • 6. REST • Representational State Transfer • Client-Server • Stateless, Cache, Uniform Interface • Layered System • Code on Demand: JavaScript • defined in 2000 by Roy Thomas Fielding
  • 8. W3C • Created at the MIT in 1994 • Led by Tim Berners-Lee and Dr. Jeffrey Jaffe • Joint agreement among three "Host Institutions" • MIT, ERCIM, Keio University • Working Groups • HTML, MathML, RDF, SVG, CSS, Audio, Device...
  • 9. IANA • Internet Assigned Numbers Authority • created by Jon Postel and Joyce K. Reynolds • department of ICANN Names and Numbers) (Internet Corporation for Assigned • manages • Domain Names, IP Addresses, Protocol registries • MIME Media Types • application, text, image, multipart...
  • 10. IETF • Internet Engineering Task Force • organized activity of the Internet Society (ISOC) • cooperates with W3C & ISO/IEC • manages the RFCs (Request For Comments) • DNS, FTP, HTTP, SMTP, Zlib, Cookie, Atom
  • 11. ECMA • European Computer Manufacturers Association • Standards • CD-ROM, ECMAScript, C#, Office Open XML File Formats • JavaScript • ECMA-262 aka ECMAScript aka ISO/IEC 16262 • TC39-TG1 managed by Mr. J. Neumann • E4X: ECMAScript for XML • ECMAScript Internationalization API • Test262 http://wiki.ecmascript.org
  • 12. WaSP • Web Standards Project • founded in 1998 by Georges Olsen, Glenn Davis, & Jeffrey Zeldman • convinced in 2001 Microsoft, Netscape, Opera & other browsers to support HTML 4.01, XHTML 1.0, CSS1, and ECMAScript • AcidTests (by Ian Hickson) • 1: HTML 4 & CSS 1 • 2: CSS 1 & CSS 2 • 3: HTML 4, XHTML 1.0, CSS 2.1, DOM 2, ECMAScript 3.1 • Today last versions of all major Browsers 100% compliant
  • 13. WHATWG • Web Hypertext Application Technology Working Group • founded in 2004 by individuals from Apple, the Mozilla & Opera • Led by Ian Hickson • Created to work on HTML5 based on Web Apps 1.0 + Web Forms 2.0 while the W3C choose to concentrate on XHTML • HTML being a living standard (no more versions) • Proposed • Web Workers, Web Storage, Web Sockets, ... • New W3C working group created in 2007 to work on HTML5 • WHATWG & W3C editions of HTML5 can have some differences
  • 14. CommonJS • created in 2009 by Kevin Dangoor as ServerJS on Mozilla Wiki • standards for JavaScript on the server • Narwhal, Helma NG, v8CGI, GPSEE, chiron, Persevere • Renamed CommonJS • command line tools, desktop, addon, or browser implementations • joined by CouchDB, Wakanda, Sproutcore, node.js, RequireJS... • Modules, Packages, and Promises • Binary, FileSystem, System, I/O stream, Socket I/O • Browser like APIs: worker, console, HTTP client
  • 16. Engines • Mozilla SpiderMonkey • Mozilla Rhino • Webkit JavaScriptCore • Google V8 • Microsoft Chakra • Opera Carakan
  • 18. Servers • Microsoft IIS • Persevere • Jaxer • node.js • Wakanda • RingoJS • SilkJS
  • 19. NoSQL Databases • CouchDB • MongoDB • Riak • WakandaDB • ArangoDB • OrientDB
  • 21. HTML5 APIs • XMLHttpRequest 2 • Web Cryptography • Blob • ImageData • File / FileSystem • Typed Arrays • Web SQL • Storage Quota • Web Storage • System Information • Web Workers • URL • Web Sockets • WebCL
  • 22. Async & Sync • XMLHttpRequest(method, url, async) • FileReaderSync() • requestFileSystemSync() • openDatabaseSync() • indexedDBSync.open() • localStorage.getItem()
  • 23. Web Workers • Dedicated or Shared • No Window, No Document • WorkerGlobal, WorkerUtils • WorkerNavigator, WorkerLocation • postMessage(), onmessage(), onerror() • importScripts()
  • 24. Concept • Server JS contexts == Workers • multi-threaded -> Dedicated Workers • single threaded EventLoop -> Shared • Server JS contexts === Remote JS Workers
  • 26. RingoJS • W3C • Web Worker • CommonJS • Modules • System, fs, binary, IO, Unit Test • Other: console
  • 27. SilkJS • W3C • XMLHttpRequest • CommonJS • Modules
  • 28. node.js • W3C via modules • XMLHttpRequest (node-xmlhttprequest) • Web Sockets (node-websocket-client) • DOM (node-o3-fastxml), IndexedDB (perstore) • CommonJS • Modules, Packages • Other: console
  • 29. Wakanda • W3C • XMLHttpRequest, WindowTimer, • Web Storage, Web Worker, • File, FileSystem, Blob, ... • CommonJS • Modules, System, Unit Test • Other: console
  • 30. Summary • ECMAScript is already everywhere • Modules: CommonJS already standard, AMD, ECMAScript 6 • Many W3C APIs already applicable server-side • Same APIs means • better learning curve • more shared libraries / modules • DRY -> shared Model work Offline
  • 31. Client and Server JavaScript APIs W3C Community Group http://www.w3.org/community/jseverywhere/