Your SlideShare is downloading. ×
0
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
End-to-end W3C APIs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

End-to-end W3C APIs

1,166

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,166
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. End-to-end W3C APIs By Alexandre MorgautJS.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
  • 4. 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
  • 5. REST• Representational State Transfer • Client-Server • Stateless, Cache, Uniform Interface • Layered System • Code on Demand: JavaScript• defined in 2000 by Roy Thomas Fielding
  • 6. Web Standards
  • 7. 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...
  • 8. 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...
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. Server-Side JavaScript
  • 15. Engines• Mozilla SpiderMonkey• Mozilla Rhino• Webkit JavaScriptCore• Google V8• Microsoft Chakra• Opera Carakan
  • 16. Standards• ECMAScript• CommonJS
  • 17. Servers• Microsoft IIS• Persevere• Jaxer• node.js• Wakanda• RingoJS• SilkJS
  • 18. NoSQL Databases• CouchDB• MongoDB• Riak• WakandaDB• ArangoDB• OrientDB
  • 19. Web Application “1.0”
  • 20. 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
  • 21. Async & Sync• XMLHttpRequest(method, url, async)• FileReaderSync()• requestFileSystemSync()• openDatabaseSync()• indexedDBSync.open()• localStorage.getItem()
  • 22. Web Workers• Dedicated or Shared• No Window, No Document• WorkerGlobal, WorkerUtils• WorkerNavigator, WorkerLocation• postMessage(), onmessage(), onerror()• importScripts()
  • 23. Concept• Server JS contexts == Workers • multi-threaded -> Dedicated Workers • single threaded EventLoop -> Shared• Server JS contexts === Remote JS Workers
  • 24. Now & Tomorrow
  • 25. RingoJS• W3C • Web Worker• CommonJS • Modules • System, fs, binary, IO, Unit Test• Other: console
  • 26. SilkJS• W3C • XMLHttpRequest• CommonJS • Modules
  • 27. node.js• W3C via modules • XMLHttpRequest (node-xmlhttprequest) • Web Sockets (node-websocket-client) • DOM (node-o3-fastxml), IndexedDB (perstore)• CommonJS • Modules, Packages• Other: console
  • 28. Wakanda• W3C • XMLHttpRequest, WindowTimer, • Web Storage, Web Worker, • File, FileSystem, Blob, ...• CommonJS • Modules, System, Unit Test• Other: console
  • 29. 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
  • 30. Client and Server JavaScript APIs W3C Community Grouphttp://www.w3.org/community/jseverywhere/

×