SlideShare una empresa de Scribd logo
1 de 24
JavaScript
What Is JavaScript? “The programming language of the world’s largest open system.”  –Douglas Crockford
 clivelimpkin.com/ Architect
Speed v Performance Time to interactivity Interaction responsiveness Perceived performance
Threading Caching Streaming Server v Client
Designer
Accessibility   “In many cases, JavaScript can be used to increase accessibility.” –webaim.org
Administrator
XSS “The vulnerabilities are required by Web Standards. The consequences of standards behavior, not bugs” --Douglas Crockford
Developer
JavaScript Is… “The world’s most misunderstood programming language”  –Douglas Crockford
History Sun and Netscape release JavaScript™ Microsoft releases JScript ECMA standardizes ECMAScript
Scripting Language Claim: JavaScript is just a scripting language, not a “real programming language” like Java
Interpreted v Compiled Interpreted (traditional JavaScript): Run-time evaluation Dynamic binding, reflection, polymorphism Compiled (traditional Java): Faster execution (when already downloaded) Terrible for client-side execution Modern trends toward just-in-time (JIT) compilation
Type Casting Claim: JavaScript will never have the power of a true programming language, like Java, because it lacks strong types
Weak v Strong Typing You have to test values anyway Strong typing: More work Less adaptable Modern trends toward dynamic typing
Object-oriented Claim: JavaScript is object-based, not object-oriented, like Java, because it lacks classical inheritance
Classes v Prototypes Prototypes (Rosch, 1970’s) evolved from classes (Aristotle 350’s BCE) Classical JavaScript possible Classification difficult
Macro Language Claim: JavaScript is a procedural (imperative) language only good for writing browser “macros”
Functional v Procedural “JavaScript masquerades as a procedural language until you're ready to take it to the next level.” –Patrick Hunlock  “…the world’s most popular functional programming language.” –Douglas Crockford Based on Self and Scheme
Evolution AJAX Libraries JSON Beyond the browser
Beyond the Browser Embedded scripting (OpenOffice, PDF) Consumer electronics VM APIs (mobile and desktop) Compiled to machine code (V8) Server-side execution (SSJS) Database (NoSQL with JSON)
Resources JavaScript, The Good Parts Douglas Crockford, javascript.crockford.com Even Faster Web Sites Steve Souders, stevesouders.com YUI Theatre developer.yahoo.com/yui/theater/ GoogleTechTalks youtube.com/user/GoogleTechTalks

Más contenido relacionado

La actualidad más candente

Integrating grunt and bower with maven
Integrating grunt and bower with mavenIntegrating grunt and bower with maven
Integrating grunt and bower with mavenRahul Nanwani
 
NodeJS_Presentation
NodeJS_PresentationNodeJS_Presentation
NodeJS_PresentationArpita Patel
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020OdessaJS Conf
 
React Typescript for beginners: Translator app with Microsoft cognitive services
React Typescript for beginners: Translator app with Microsoft cognitive servicesReact Typescript for beginners: Translator app with Microsoft cognitive services
React Typescript for beginners: Translator app with Microsoft cognitive servicesFabio Biondi
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJSZahid Mahir
 
Go With The Reflow
Go With The ReflowGo With The Reflow
Go With The Reflowlsimon
 
Green Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmSkills Matter
 

La actualidad más candente (16)

React native
React nativeReact native
React native
 
Integrating grunt and bower with maven
Integrating grunt and bower with mavenIntegrating grunt and bower with maven
Integrating grunt and bower with maven
 
Groovy and noteworthy
Groovy and noteworthyGroovy and noteworthy
Groovy and noteworthy
 
Foolangjs
FoolangjsFoolangjs
Foolangjs
 
What does JavaScript
What does JavaScriptWhat does JavaScript
What does JavaScript
 
NodeJS_Presentation
NodeJS_PresentationNodeJS_Presentation
NodeJS_Presentation
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
 
Reason React
Reason ReactReason React
Reason React
 
SOA.2020
SOA.2020SOA.2020
SOA.2020
 
React Typescript for beginners: Translator app with Microsoft cognitive services
React Typescript for beginners: Translator app with Microsoft cognitive servicesReact Typescript for beginners: Translator app with Microsoft cognitive services
React Typescript for beginners: Translator app with Microsoft cognitive services
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Java vs. Node.js
Java vs. Node.jsJava vs. Node.js
Java vs. Node.js
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
 
Go With The Reflow
Go With The ReflowGo With The Reflow
Go With The Reflow
 
Green Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native Performance
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 

Destacado

Msc sylabus ptu
Msc sylabus ptuMsc sylabus ptu
Msc sylabus ptuJames West
 
Noam Kfir - There is no Java Script - code.talks 2015
Noam Kfir - There is no Java Script - code.talks 2015Noam Kfir - There is no Java Script - code.talks 2015
Noam Kfir - There is no Java Script - code.talks 2015AboutYouGmbH
 
Presentation.mehr
Presentation.mehrPresentation.mehr
Presentation.mehrimhammadali
 
Javascript operators
Javascript operatorsJavascript operators
Javascript operatorsMohit Rana
 
JavaScript: Operators and Expressions
JavaScript: Operators and ExpressionsJavaScript: Operators and Expressions
JavaScript: Operators and ExpressionsLearnNowOnline
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to JavascriptAmit Tyagi
 
JavaScript Programming
JavaScript ProgrammingJavaScript Programming
JavaScript ProgrammingSehwan Noh
 

Destacado (9)

Msc sylabus ptu
Msc sylabus ptuMsc sylabus ptu
Msc sylabus ptu
 
Noam Kfir - There is no Java Script - code.talks 2015
Noam Kfir - There is no Java Script - code.talks 2015Noam Kfir - There is no Java Script - code.talks 2015
Noam Kfir - There is no Java Script - code.talks 2015
 
Presentation.mehr
Presentation.mehrPresentation.mehr
Presentation.mehr
 
Javascript operators
Javascript operatorsJavascript operators
Javascript operators
 
JavaScript: Operators and Expressions
JavaScript: Operators and ExpressionsJavaScript: Operators and Expressions
JavaScript: Operators and Expressions
 
Java script
Java scriptJava script
Java script
 
Javascript
JavascriptJavascript
Javascript
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
 
JavaScript Programming
JavaScript ProgrammingJavaScript Programming
JavaScript Programming
 

Similar a Javascript

Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?jbandi
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Oscar Renalias
 
Java Script recruiting
Java Script recruitingJava Script recruiting
Java Script recruitingIhor Odynets
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusUni Systems S.M.S.A.
 
INTRODUCTION.docx
INTRODUCTION.docxINTRODUCTION.docx
INTRODUCTION.docxKaiSane1
 
Professional JavaScript Development (An Introduction for Java Developers)
Professional JavaScript Development (An Introduction for Java Developers)Professional JavaScript Development (An Introduction for Java Developers)
Professional JavaScript Development (An Introduction for Java Developers)jbandi
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Arun Gupta
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?jbandi
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 
Get Started with JavaScript Frameworks
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript FrameworksChristian Gaetano
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutionsAndrea Tino
 
Women Who Code, Ground Floor
Women Who Code, Ground FloorWomen Who Code, Ground Floor
Women Who Code, Ground FloorKatie Weiss
 
Talk 03 responsive-web-design
Talk 03 responsive-web-designTalk 03 responsive-web-design
Talk 03 responsive-web-designMonkeyshot
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...DevDay.org
 
Monkeytalk Fall 2012 - Responsive Web Design
Monkeytalk Fall 2012 - Responsive Web DesignMonkeytalk Fall 2012 - Responsive Web Design
Monkeytalk Fall 2012 - Responsive Web DesignSerge Hufkens
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?Balajihope
 

Similar a Javascript (20)

Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014
 
Java Script recruiting
Java Script recruitingJava Script recruiting
Java Script recruiting
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
 
INTRODUCTION.docx
INTRODUCTION.docxINTRODUCTION.docx
INTRODUCTION.docx
 
Professional JavaScript Development (An Introduction for Java Developers)
Professional JavaScript Development (An Introduction for Java Developers)Professional JavaScript Development (An Introduction for Java Developers)
Professional JavaScript Development (An Introduction for Java Developers)
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 
Get Started with JavaScript Frameworks
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
 
Coffee script throwdown
Coffee script throwdownCoffee script throwdown
Coffee script throwdown
 
Women Who Code, Ground Floor
Women Who Code, Ground FloorWomen Who Code, Ground Floor
Women Who Code, Ground Floor
 
Talk 03 responsive-web-design
Talk 03 responsive-web-designTalk 03 responsive-web-design
Talk 03 responsive-web-design
 
Asm.js introduction
Asm.js introductionAsm.js introduction
Asm.js introduction
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
 
Monkeytalk Fall 2012 - Responsive Web Design
Monkeytalk Fall 2012 - Responsive Web DesignMonkeytalk Fall 2012 - Responsive Web Design
Monkeytalk Fall 2012 - Responsive Web Design
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
Treinamento frontend
Treinamento frontendTreinamento frontend
Treinamento frontend
 

Javascript

  • 2. What Is JavaScript? “The programming language of the world’s largest open system.” –Douglas Crockford
  • 4. Speed v Performance Time to interactivity Interaction responsiveness Perceived performance
  • 5. Threading Caching Streaming Server v Client
  • 7. Accessibility “In many cases, JavaScript can be used to increase accessibility.” –webaim.org
  • 9. XSS “The vulnerabilities are required by Web Standards. The consequences of standards behavior, not bugs” --Douglas Crockford
  • 11. JavaScript Is… “The world’s most misunderstood programming language” –Douglas Crockford
  • 12. History Sun and Netscape release JavaScript™ Microsoft releases JScript ECMA standardizes ECMAScript
  • 13. Scripting Language Claim: JavaScript is just a scripting language, not a “real programming language” like Java
  • 14. Interpreted v Compiled Interpreted (traditional JavaScript): Run-time evaluation Dynamic binding, reflection, polymorphism Compiled (traditional Java): Faster execution (when already downloaded) Terrible for client-side execution Modern trends toward just-in-time (JIT) compilation
  • 15. Type Casting Claim: JavaScript will never have the power of a true programming language, like Java, because it lacks strong types
  • 16. Weak v Strong Typing You have to test values anyway Strong typing: More work Less adaptable Modern trends toward dynamic typing
  • 17. Object-oriented Claim: JavaScript is object-based, not object-oriented, like Java, because it lacks classical inheritance
  • 18. Classes v Prototypes Prototypes (Rosch, 1970’s) evolved from classes (Aristotle 350’s BCE) Classical JavaScript possible Classification difficult
  • 19. Macro Language Claim: JavaScript is a procedural (imperative) language only good for writing browser “macros”
  • 20. Functional v Procedural “JavaScript masquerades as a procedural language until you're ready to take it to the next level.” –Patrick Hunlock “…the world’s most popular functional programming language.” –Douglas Crockford Based on Self and Scheme
  • 21. Evolution AJAX Libraries JSON Beyond the browser
  • 22. Beyond the Browser Embedded scripting (OpenOffice, PDF) Consumer electronics VM APIs (mobile and desktop) Compiled to machine code (V8) Server-side execution (SSJS) Database (NoSQL with JSON)
  • 23.
  • 24. Resources JavaScript, The Good Parts Douglas Crockford, javascript.crockford.com Even Faster Web Sites Steve Souders, stevesouders.com YUI Theatre developer.yahoo.com/yui/theater/ GoogleTechTalks youtube.com/user/GoogleTechTalks

Notas del editor

  1. What is JavaScript?What system is he talking about?
  2. Despite that.. When your system architect looks at JavaScript, he may see this.A big pile of stuff that’s just going to slow things down.
  3. Customer acceptance starts with the front-end.The most important thing to consider is their perception of performance.
  4. Architects should know that proper use of JavaScript can:reduce server round tripsreduce load on the databaseimprove performanceStreaming: Initially load minimal content, AJAX the restThreading: Content pre-fetching, web workers, AJAXCaching: HTML5 storage features, Cookies
  5. When your designer looks at JavaScript he might see this.
  6. WebAIM's top goal is to help make the web more accessible to individuals with disabilities. 
  7. Whenyour system administrator looks at heavy JavaScript usage, they might see this.Some sort of crazy mash-up that’s, at best, a horrible idea.
  8. Security notes:Cross-site Request Forgery (CSRF) 1988, predates JavaScriptXSS invented in 1996Ads/mash-ups are self-inflicted XSS attacks.CSRF – cross-site request forgeryUse SSLUse POST (and server variable)Check referrerUse challenge tokens
  9. When the developer looks at JavaScript, they see this.Small investmentDocument Object Model (DOM)Browser Object Model (BOM)
  10. Why are developers so confused?PreconceptionsMisinformation“Bad parts”How could this happen?
  11. JavaScript March 1996 – v1.0Bring interactivity to the browser (like hypercard)Made syntax “look like Java”Simplified to appeal to beginnersJscript August 1996ES – Oct 1998European Computer Manufacturers Assoc.ECMAScript – title of ECMA-262 specificationES 1st-2nd (1998)ES 3rd edition (2000) ES 5th edition (2009)ES Harmony (6th edition?)Note:Do other “modern” languages have a standard?No: PHP, Ruby, Java (specification yes, not standardized), PerlYes: C, C++, C#, SQL
  12. That lead to several misconceptions.
  13. Java’s HotSpot is just-in-time compilation derived from research into Self
  14. Java’s generics and C#’s dynamic type are examples of strongly typed languages trying to be more like JavaScript.
  15. In a way, JavaScript’s own origins demonstrate prototypal inheritance. Without a standard (read class) to follow, JScript became another instance of “ECMAScript” by inheriting everything from another instance—JavaScript™.Information Architecture (IA) = all based in semiotics (study of sign processes: semantics, syntactics, pragmatics) = Classification (Ontology, or grouping) and Taxonomy (a scheme to name the groups)Very resistant to change = very fragile.Really helps to be orthogonal (balanced vectors) as wellOrthogonal IA takes time, patience, deep understanding of subject
  16. Self = prototypes, Scheme = functional
  17. JavaScript should have died, but it thrived and even evolved because of its:Simple, familiar syntaxExpressivenessFlexibilityAJAX starts in 1999 as Microsoft creates XMLHTTP ActiveX control in IE5.Implemented on large scale in 2002, patented 2003, standardized 2006.JSON.org launched in 2002, Yahoo! adoption in 2005 for web services.
  18. Consumer electronics like high-end remote controls