This document discusses the standardization of JavaScript across client and server environments. It outlines the history and roles of organizations like W3C, IETF, ECMA, and WHATWG in developing web standards. It describes how CommonJS and implementations like Node.js, RingoJS, and SilkJS have standardized JavaScript modules and APIs for servers. Many W3C web APIs can now be used both client-side through workers and server-side, improving code sharing across environments.
State of the art: Server-Side JavaScript - dejeuner fulljs
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
4.
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