• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World Forum 2011
 

State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World Forum 2011

on

  • 5,870 views

Presented at WebWorkersCamp IV during the Open World Forum 2011

Presented at WebWorkersCamp IV during the Open World Forum 2011

Statistics

Views

Total Views
5,870
Views on SlideShare
5,728
Embed Views
142

Actions

Likes
9
Downloads
58
Comments
1

5 Embeds 142

http://paper.li 49
http://www.linkedin.com 48
http://lanyrd.com 40
https://twitter.com 3
http://speakerrate.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World Forum 2011 State of the art: Server-Side JavaScript - WebWorkersCamp IV - Open World Forum 2011 Presentation Transcript

    • STATE OF THE ART SERVER-SIDE JAVASCRIPT@amorgaut 4d.com 2011-09-24
    • HISTORY
    • BIRTH• 1995 LiveScript/JavaScript• 1996 Microsoft JScript (IE4) NetScape Enterprise Server 2 aka LiveWire/iPlanet• 1997 ECMAScript 1 “DHTML” Windows IIS 3
    • MATURITY• 1998 - DOM, Mozilla Rhino• 1999 - ES3, XMLHttpRequest, HTML 4• 2000 - ActionScript, Helma Hop• 2001 - JSON, Apple JavaScript OSA• 2002 - JSLint• 2003 - JavaScript Adobe Press, JScript .NET• 2004 - E4X , “Web 2.0”• 2005 - Prototype, “Ajax”• 2006 - Firebug, jQuery, “Comet”, APE, “HTML5”• 2007 - SitePoint Persevere, Rhino on Rails
    • SSJS: THE COMEBACK• 2008 Aptana Jaxer CouchDB Acid Test 3• 2009 Narwhal & Jack GPSEE ServerJS -> CommonJS Node.js ECMAScript 5• 2010 Helma NG -> RingoJS Sun Phobos• 2011 Wakanda
    • SSJS: THE COMEBACK• 2008 Aptana Jaxer CouchDB Acid Test 3• 2009 Narwhal & Jack GPSEE ServerJS -> CommonJS Node.js ECMAScript 5• 2010 Helma NG -> RingoJS Sun Phobos• 2011 Wakanda
    • SSJS: THE COMEBACK• 2008 Aptana Jaxer CouchDB Acid Test 3• 2009 Narwhal & Jack GPSEE ServerJS -> CommonJS Node.js ECMAScript 5• 2010 Helma NG -> RingoJS Sun Phobos• 2011 Wakanda
    • SSJS: THE COMEBACK• 2008 Aptana Jaxer CouchDB Acid Test 3• 2009 Narwhal & Jack GPSEE ServerJS -> CommonJS Node.js ECMAScript 5• 2010 Helma NG -> RingoJS Sun Phobos• 2011 Wakanda
    • 60+ EXISTING SOLUTIONShttp://en.wikipedia.org/wiki/Comparison_of_server-side_JavaScript_solutions
    • ENGINES
    • C C+ +SpiderMonkey webkit JavaScriptCore: JSC TraceMonkey (JIT) SquirrelFish Extreme: SFX (JIT) JägerMonkey (JIT) IonMonkey (JIT) Nitro C+ Jav + a Rhino V8 C+ + Trident Chakra C+ + C+ + Carakan Tamarin Futhark
    • CLIENT-SIDESpiderMonkey JavaScriptCore Rhino V8 Tamarin Trident / Chakra Carakan / Futhark
    • SERVER-SIDESpiderMonkey JavaScriptCore Narwhal Narwhal CouchDB, MongoDB Wakanda APE, GPSEE, SpiderNode ... V8 Narwhal Akshell Node.js Rhino Trident / Chakra Narwhal IronJS Helma / RingoJS, AppJet Node.NET Persevere, Phobos, RhiNodeII ...
    • BENCHMARKS and what they worth....
    • BROWSERS WAR II (MAY 2009)http://www.maximumpc.com/article/features/browser_brouhaha_your_maximum_guide_browsers_today_and_tomorrow?page=0,6
    • PERSEVERE & JAVASCRIPTDB (APRIL 2009) http://www.sitepen.com/blog/2009/04/20/javascriptdb-perseveres-new-high-performance-storage-engine/
    • NODE VS THIN VS NARWHAL (SEPTEMBER 2009) 300 concurrent clients completed requests: thin 36045 node 35668 narwhal 2921 > summary(node300$ttime) Min. 1st Qu. Median Mean 3rd Qu. Max. 12.0 66.0 112.0 239.4 157.0 12200.0 > summary(thin300$ttime) Min. 1st Qu. Median Mean 3rd Qu. Max. 71.0 84.0 87.0 208.7 107.0 23950.0 > summary(narwhal300$ttime) Min. 1st Qu. Median Mean 3rd Qu. Max. 928 2837 2935 2921 3018 8759 http://four.livejournal.com/1019177.html
    • RINGOJS VS NODEJS (SEPTEMBER 2010) http://hns.github.com/2010/09/21/benchmark.html
    • SUNSPIDER 0.9.1 (AUGUST 2011) 7 8 6 5 4 3 2 1http://expansive-derivation.ossreleasefeed.com/2011/08/javascript-performance-test-results-with-sunspider/
    • MAIN CONCEPTS
    • INTEGRATION-ORIENTED• Rhino - Interaction with Java (APIs and objects) - Helma, Persevere, Narwhal, RingoJS, Sun Phobos...• JScript .Net - Interaction with MS .NET (APIs and objects) - IronJS, Node.NET
    • COMMON JAVASCRIPT• Ubiquity not only for ECMAScript• Server missing APIs• Web Applications 1.0• Asynchronous & Synchronous• Working Groups: - CommonJS - WHATWG - W3C - ECMA TC39
    • ASYNC. EVENT-BASED• Browser Event-Loop on the Server• An Event Loop in one single thread• Cooperative («one at a time») with async. callbacks• Node.js (V8), SpiderNode, RhiNodeII, Node.NET
    • SINGLE vs MULTI THREADING One context per thread
    • SINGLE vs MULTI THREADING One context per threadSINGLE MULTI• Low memory usage • Vertical scalability (multi-core)• Potentially handle lot of requests • Thread-safety for concurrent access• Cooperative • Preemptive: Parallel code execution• Shared context • Allow Synchronous APIs• Use mostly one core • Uses easily all available cores
    • DATABASE-DRIVEN• Document Store - CouchDB, MongoDB• Object Store - Wakanda• Push Store - APE
    • APIS
    • COMMONJS• Modules• Packages • Binary• Promises • File• System • JSGI• Unit-Testing • Stream http://wiki.commonjs.org/wiki/CommonJS
    • NODE ASYNC APIS• Buffer • Process• Events • Streams• File • Timers• Net • ...• OS http://nodejs.org/docs/v0.5.5/api/
    • W3C / HTML5 & OTHER STANDARDS• Console • Structured clones• Blob, Blob URL* • Typed Arrays*• DataView* • Web Sockets• File / FileSystem • Web Storage• Modules* • Web Workers• Progress Events • XHR 2
    • PACKAGES & MODULES• github: CommonJS modules in forks (Persevere, Narwhal, RingoJS, ...)• NPM: Node Package Manager (3600+ packages)• CPM: CommonJS Package Manager (new)• PINF: Universal module loader http://wiki.commonjs.org/wiki/CommonJS
    • STATE OF THE ART SERVER-SIDE JAVASCRIPT The End See us at Wakanday aka JS.everywhere(Boston, October, 15)@amorgaut 4d.com@thibarg Wakanda.org@wakanday Wakanday.org