This document discusses the history and state of server-side JavaScript. It traces JavaScript's evolution from 1995 to the present, highlighting milestones like the development of Node.js in 2009. Today, server-side JavaScript powers many popular frameworks and sees widespread use in applications like web servers and databases. Standards organizations continue advancing the language with new features, while large communities support it with libraries, tools, and benchmarks. Overall, server-side JavaScript has experienced a resurgence and become a mature and versatile platform.
11. ÉDITEURS DE CODE
• Visual Studio
• XCode
• Eclipse
• NetBeans
• Wakanda Studio
• Cloud9
12. COMMUNAUTÉ
• Nombreux User Groups
• Nombreuses Conférences
• Langage aussi utilisé par les
autres développeurs
13. COMMUNAUTÉ
• Nombreux User Groups
• Nombreuses Conférences
• Langage aussi utilisé par les
autres développeurs
14. LIBRAIRIES
• JavaScript
est le language le
plus populaire sur GitHub
• Nombreuses librairies
• Nombreux framework
https://github.com/languages/JavaScript
http://javascriptlibraries.com/
20. EVERYWHERE
-> Widgets/Gadgets : Yahoo Widgets, Microsoft Gadgets, Google Desktop Gadgets, & Dashboards widgets;
-> Windows: WSH (Windows Script Host), JScript.Net, Managed JScript, and Windows 8 Metro Applications
-> PAC files for automatique proxy sélection;
-> Acrobat for interactive PDF forms;
-> XUL applications and Jetpack (as Firefox addons);
-> Open Office macros;
-> QtScript for QT;
-> Apple Cocoa (JSCocoa);
-> JetC (JavaScript Embedded Toolkit in C) allow to provide embedded application with JavaScript;
-> Pronto Philips products (programmable touchscreen remote controls) use ProntoScript based on JS 1.6;
-> but also : PHP (J2PA), Apache (mod_js), Ruby (Johnson), Python, Perl (JE), …
29. 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
30. COMMON JAVASCRIPT
• Working Groups:
- CommonJS
- WHATWG
- W3C
- ECMA TC39
• L’ubiquité au delà d’ECMAScript
• HTML5 est aussi connu sous le nom de : “Web Applications 1.0”
• Asynchronous & Synchronous APIs
31. ASYNC. EVENT-BASED
Node.js like
• 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
32. SINGLE & MULTI THREADING
One context per thread
SINGLE 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
Notes:
- an event loop can generate some other threads
- multi-thread architectures can run event loops in some of their threads
33. DATABASE-DRIVEN
• Document Store
- CouchDB, MongoDB
• Key/value Store
- Riak
• Object Store
- Wakanda
• Push Store
- APE