SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Slim Soussi   Vladimir Kostarev   David Catuhe   David Rousset
    Intel           Intel          Microsoft       Microsoft
David Catuhe / Microsoft                    David Rousset / Microsoft
http://blogs.msdn.com/eternalcoding   http://blogs.msdn.com/davrous
davca@microsoft.com                          davrous@microsoft.com
Agenda
•   Un peu d’histoire
•   Fondamentaux
•   Les outils
•   Quelques frameworks utiles…
Un peu d’histoire
• Développé par Brendan Eich de Netscape en 1995

• Nom de code Mocha puis renommé en LiveScript et
  finalement en JavaScript

• Première version avec Netscape 2.0 en Septembre 1995

• Peu de rapport avec Java (choix du nom surtout dicté par
  des raisons marketings de l’époque)

• Novembre 1996 : Soumission à l’ECMA et apparition de
  l’ECMAScript
Un peu d’histoire
• Juin 1997 : Première version de l’ECMAScript

• Juin 2011 : ECMAScript 5.1

• La marque « JavaScript » est sous copyright de Oracle

• JavaScript est sorti du pur web:
 • Développement coté serveur (nodeJS)
 • Développement applicatif (Windows 8)




                                                          6
Fondamentaux de JavaScript
JavaScript est :
• Construit autour de fonctions
• Un langage à base de prototype
• Un langage de script (mais pas que…)
• Dynamique
• Faiblement typé
Fondamentaux de JavaScript
En JavaScript tout est fonction. Elles servent à :
• Faire des fonctions (!!!)
• Mimiquer les concepts objets
 • Constructeurs
 • Méthodes
• Définir des namespaces
• Définir la portée


     PUZZLE.update = function () {
         for (var index = 0; index < PUZZLE.blocks.length; index++) {
             var block = PUZZLE.blocks[index];

              PUZZLE.updateBlock(block);
          }
     };



                                                                        9
10
Fondamentaux de JavaScript
Un langage à base de prototypes :
• Principe de clonage d’objets modèles (le prototype)
• Délégation des méthodes vers le prototype
• « Remplace » classes et héritage




     this.prototype.add = function (otherVector) {
         return new Vector2(this.x + otherVector.x, this.y +
     otherVector.y);
     };




                                                               11
12
Fondamentaux de JavaScript
Un langage de script :
• Compilé à la volée par les navigateurs modernes (JIT)
• Profite des dernières avancées des compilateurs
 • Multi cores
 • Optimisations




                                                          13
Fondamentaux de JavaScript
Un langage dynamique et faiblement typé :
• Les types sont associés aux valeurs et non aux variables
• Par exemple :
 • Une variable x peut être associée à un numérique à un instant et à une
   chaine de caractères plus tard
• Types de valeurs supportés :
 •   Number
 •   String
 •   Boolean
 •   Function
 •   Array
 •   Object




                                                                            14
15
Les outils
Les barres F12 des navigateurs
• Natif dans IE9/10 et Chrome
• Via Firebug dans Firefox
• Via DragonFly pour Opera
Les outils
• Microsoft Visual Studio 2010 + Web Standards Update
• Notepad++ 

•   http://jsfiddle.net/
•   http://prefixmycss.com/
•   http://ie.microsoft.com/testdrive/
•   http://jsonformatter.curiousconcept.com/
•   http://jslint.com/
•   http://erik.eae.net/playground/regexp/regexp.html
•   http://code.google.com/p/jsfuzzer/
•   http://fmarcia.info/jsmin/test.html
•   …


                                                        18
19
Quelques frameworks utiles…
•   jQuery : http://jquery.com/
•   jQuery UI : http://jqueryui.com/
•   Modernizr : http://www.modernizr.com/
•   Qunit : http://qunitjs.com/
•   YUI : http://developer.yahoo.com/yui/
•   SproutCore : http://www.sproutcore.com/
•   Midori : http://www.midorijs.com/
•   Fleegix : http://js.fleegix.org/
•   Prototype : http://www.prototypejs.org/
•   Dojo : http://dojotoolkit.org/
•   Mootools : http://mootools.net/
•   MochiKit : http://mochi.github.com/mochikit/
•   …
David Catuhe : davca@microsoft.com - http://blogs.msdn.com/eternalcoding
  David Rousset : davrous@microsoft.com – http://blogs.msdn.com/davrous

Weitere ähnliche Inhalte

Was ist angesagt?

Développement d'un composant win rt
Développement d'un composant win rtDéveloppement d'un composant win rt
Développement d'un composant win rtArnaud Auroux
 
Zend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesZend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesVincent Blanchon
 
Electron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARDElectron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARDLa Cuisine du Web
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Eric D.
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007Eric D.
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)guicara
 
Introduction TypeScript
Introduction TypeScriptIntroduction TypeScript
Introduction TypeScriptfelixbillon
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBContent Square
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPPascal MARTIN
 
Nuxt.js et les applications isomorphiques (Universelles/SSR)
Nuxt.js et les applications isomorphiques (Universelles/SSR)Nuxt.js et les applications isomorphiques (Universelles/SSR)
Nuxt.js et les applications isomorphiques (Universelles/SSR)Joffrey LEVEUGLE
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
Introduction à Zend Framework
Introduction à Zend FrameworkIntroduction à Zend Framework
Introduction à Zend FrameworkGauthier Delamarre
 

Was ist angesagt? (19)

Développement d'un composant win rt
Développement d'un composant win rtDéveloppement d'un composant win rt
Développement d'un composant win rt
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Zend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modulesZend Framework 2.0 - Le gestionnaire de modules
Zend Framework 2.0 - Le gestionnaire de modules
 
Electron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARDElectron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARD
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
Introduction TypeScript
Introduction TypeScriptIntroduction TypeScript
Introduction TypeScript
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHP
 
Nuxt.js et les applications isomorphiques (Universelles/SSR)
Nuxt.js et les applications isomorphiques (Universelles/SSR)Nuxt.js et les applications isomorphiques (Universelles/SSR)
Nuxt.js et les applications isomorphiques (Universelles/SSR)
 
Pas possible en drupal, c'est faux
Pas possible en drupal, c'est fauxPas possible en drupal, c'est faux
Pas possible en drupal, c'est faux
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
Introduction à Zend Framework
Introduction à Zend FrameworkIntroduction à Zend Framework
Introduction à Zend Framework
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Zenika MongoDB Tour - REX Amadeus
Zenika MongoDB Tour - REX AmadeusZenika MongoDB Tour - REX Amadeus
Zenika MongoDB Tour - REX Amadeus
 

Ähnlich wie Javascript & tools

Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projetjollivetc
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousjwajsberg
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdfOmbotimbe Salifou
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerJulien Chable
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web servicesoussemos
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopFrédéric Harper
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummiesMicrosoft
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéJulien Dubois
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSMicrosoft
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 

Ähnlich wie Javascript & tools (20)

Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projet
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et Docker
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummies
 
Javaoop
JavaoopJavaoop
Javaoop
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 

Javascript & tools

  • 1. Slim Soussi Vladimir Kostarev David Catuhe David Rousset Intel Intel Microsoft Microsoft
  • 2. David Catuhe / Microsoft David Rousset / Microsoft http://blogs.msdn.com/eternalcoding http://blogs.msdn.com/davrous davca@microsoft.com davrous@microsoft.com
  • 3. Agenda • Un peu d’histoire • Fondamentaux • Les outils • Quelques frameworks utiles…
  • 4.
  • 5. Un peu d’histoire • Développé par Brendan Eich de Netscape en 1995 • Nom de code Mocha puis renommé en LiveScript et finalement en JavaScript • Première version avec Netscape 2.0 en Septembre 1995 • Peu de rapport avec Java (choix du nom surtout dicté par des raisons marketings de l’époque) • Novembre 1996 : Soumission à l’ECMA et apparition de l’ECMAScript
  • 6. Un peu d’histoire • Juin 1997 : Première version de l’ECMAScript • Juin 2011 : ECMAScript 5.1 • La marque « JavaScript » est sous copyright de Oracle • JavaScript est sorti du pur web: • Développement coté serveur (nodeJS) • Développement applicatif (Windows 8) 6
  • 7.
  • 8. Fondamentaux de JavaScript JavaScript est : • Construit autour de fonctions • Un langage à base de prototype • Un langage de script (mais pas que…) • Dynamique • Faiblement typé
  • 9. Fondamentaux de JavaScript En JavaScript tout est fonction. Elles servent à : • Faire des fonctions (!!!) • Mimiquer les concepts objets • Constructeurs • Méthodes • Définir des namespaces • Définir la portée PUZZLE.update = function () { for (var index = 0; index < PUZZLE.blocks.length; index++) { var block = PUZZLE.blocks[index]; PUZZLE.updateBlock(block); } }; 9
  • 10. 10
  • 11. Fondamentaux de JavaScript Un langage à base de prototypes : • Principe de clonage d’objets modèles (le prototype) • Délégation des méthodes vers le prototype • « Remplace » classes et héritage this.prototype.add = function (otherVector) { return new Vector2(this.x + otherVector.x, this.y + otherVector.y); }; 11
  • 12. 12
  • 13. Fondamentaux de JavaScript Un langage de script : • Compilé à la volée par les navigateurs modernes (JIT) • Profite des dernières avancées des compilateurs • Multi cores • Optimisations 13
  • 14. Fondamentaux de JavaScript Un langage dynamique et faiblement typé : • Les types sont associés aux valeurs et non aux variables • Par exemple : • Une variable x peut être associée à un numérique à un instant et à une chaine de caractères plus tard • Types de valeurs supportés : • Number • String • Boolean • Function • Array • Object 14
  • 15. 15
  • 16.
  • 17. Les outils Les barres F12 des navigateurs • Natif dans IE9/10 et Chrome • Via Firebug dans Firefox • Via DragonFly pour Opera
  • 18. Les outils • Microsoft Visual Studio 2010 + Web Standards Update • Notepad++  • http://jsfiddle.net/ • http://prefixmycss.com/ • http://ie.microsoft.com/testdrive/ • http://jsonformatter.curiousconcept.com/ • http://jslint.com/ • http://erik.eae.net/playground/regexp/regexp.html • http://code.google.com/p/jsfuzzer/ • http://fmarcia.info/jsmin/test.html • … 18
  • 19. 19
  • 20.
  • 21. Quelques frameworks utiles… • jQuery : http://jquery.com/ • jQuery UI : http://jqueryui.com/ • Modernizr : http://www.modernizr.com/ • Qunit : http://qunitjs.com/ • YUI : http://developer.yahoo.com/yui/ • SproutCore : http://www.sproutcore.com/ • Midori : http://www.midorijs.com/ • Fleegix : http://js.fleegix.org/ • Prototype : http://www.prototypejs.org/ • Dojo : http://dojotoolkit.org/ • Mootools : http://mootools.net/ • MochiKit : http://mochi.github.com/mochikit/ • …
  • 22. David Catuhe : davca@microsoft.com - http://blogs.msdn.com/eternalcoding David Rousset : davrous@microsoft.com – http://blogs.msdn.com/davrous