SlideShare a Scribd company logo
JavaScript
like it’s
2013miguel.ventura@outsystems.com
http://bit.ly/JavaScript2013
www.outsystems.com
Miguel Ventura
OutSystems R&D
@miguelventura
miguel.ventura@outsystems.com
JavaScript
2013jQuery
Backbone.js
Ember.js
AngularJS
Sammy.js
CanJS
Knockout
ExtJSasm.jsWinRT Emscripten
WebSockets WebGL
WebWorkers WebRTC CanvasWeb Audio/Video API
WebSpeech
WebCrypto
JavaScript Like It’s 2013
2013jQuery
asm.jsWinRT Emscripten
WebSockets WebGL
WebWorkers WebRTC CanvasWeb Audio/Video API
WebSpeech
WebCrypto
JavaScript
Backbone.js
Ember.js
AngularJS
Sammy.js
CanJS
Knockout
ExtJS
2013
Time to get it right!
2013: Now!
JavaScript Like It’s 2013
1995: JavaScript (Netscape)
2013: Now!
JavaScript
• Datepickers
• Drop-down menus
• Collapsible content
• Client-side form validation
• Cheesy animations
JavaScript Like It’s 2013
1995: JavaScript (Netscape)
2013: Now!
1995: JavaScript (Netscape)
2013: Now!
18 Years
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
2013: Now!
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2013: Now!
“The nice thing about standards
is that you have so many to
choose from.”
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2013: Now!
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2006: Browser compatibility (lack thereof)
2013: Now!
element.attachEvent( ... )
element.addEventListener( ... )
Checkpoint
Mandatory Technology
Nobody Understands
Inconsistent Implementations
JavaScript development cycle
• Copy
• Paste
• Kick it until it
works
JavaScript Like It’s 2013
JavaScript development cycle
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2006: Browser compatibility???
2013: Now!
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2006: Browser compatibility???
2013: Now!
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2006: jQuery
2013: Now!
JavaScript development cycle
• Download jQuery
plugin
• Copy
• Paste
• Kick it until it works
JavaScript development cycle
The problem with cycles
1995: JavaScript (Netscape)
1996: JScript (Microsoft)
1997: ECMA-262 Ed1
1999: ECMA-262 Ed3 (ES3 - Baseline)
2006: jQuery
2013: Now!
Breaking the Cycle
JavaScript Like It’s 2013
Breaking the Cycle
1. Know your language
JavaScript Like It’s 2013
#1 – Know your language
False Friends
English Portuguese
pretend fingir
to intend pretender
False Friends
var d = new Date("2013-05-08")
d.getYear()
d.getMonth()
d.getDay()
// 113
// 4
// 3
1900+Y
[0-11]
day of week
JavaScript Like It’s 2013
False Friends
var d = new Date("2013-05-08")
d.getYear()
d.getMonth()
d.getDay()
// 113
// 4
// 3
False Friends
var d = new Date("2013-05-08")
d.getFullYear()
d.getMonth()
d.getDay()
// 2013
// 4
// 3
False Friends
var d = new Date("2013-05-08")
d.getFullYear()
d.getMonth()+1
d.getDay()
// 2013
// 5
// 3
False Friends
var d = new Date("2013-05-08")
d.getFullYear()
d.getMonth()+1
d.getDate()
// 2013
// 5
// 8
JavaScript Like It’s 2013
False Friends
// the == operator
"a" == "a" // true
"a" == "b" // false
False Friends
// the == operator
false == null // false
false == 0 // true
0 == "" // true
...
False Friends
// the === operator
"a" === "a" // true
false === 0 // false
0 === "" // false
// there’s also the !== operator
#1 Know your language
If you lack absolute certainty
READ THE DOCS!
https://developer.mozilla.org/en/docs/JavaScript
JavaScript Like It’s 2013
Breaking the Cycle
1. Know your language
2. Know your tools
#2 Know your tools
Image credit: http://www.flickr.com/photos/justinbaeder/5317820857/
JavaScript Like It’s 2013
#2 Know your tools
• Don’t trust errors
• Console-test everything
• Change as you go!
• See documentation for Firebug and DevTools
#2 Know your tools
Breaking the Cycle
1. Know your language
2. Know your tools
3. Build for the future
Image credit: National Library of France (BnF)
Image source: http://www.flickr.com/photos/mikecogh/5969936605/
#3 Build for the future
if ( BrowserIsIE() ) {
e.attachEvent( ... );
} else {
e.addEventListener( ... );
}
#3 Build for the future
if ( BrowserIsIE() ) {
e.attachEvent( ... );
} else {
e.addEventListener( ... );
}
JavaScript Like It’s 2013
JavaScript Like It’s 2013
JavaScript Like It’s 2013
#3 Build for the future
if ( BrowserIsIE() ) {
e.attachEvent( ... );
} else {
e.addEventListener( ... );
}
#3 Build for the future
if ( e.addEventListener ) {
e.addEventListener( ... );
} else {
e.attachEvent( ... );
}
JavaScript Like It’s 2013
#3 Build for the future
if ( ? ) {
e.style.boxShadow =
"0 0 4px red";
} else {
e.style.border = "solid 1px red";
}
#3 Build for the future
if ( Modernizr.boxshadow ) {
e.style.boxShadow =
"0 0 4px red";
} else {
e.style.border = "solid 1px red";
}
#3 Build for the future
Feature Detection instead of
Browser Detection
http://modernizr.com/
Breaking the Cycle
1. Know your language
2. Know your tools
3. Build for the future
http://www.flickr.com/photos/wwarby/4782847556/
JavaScript Like It’s 2013
Thank You!
http://bit.ly/JavaScript2013
www.outsystems.com

More Related Content

What's hot (20)

PDF
[jqconatx] Adaptive Images for Responsive Web Design
Christopher Schmitt
 
PDF
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
Nicholas Dionysopoulos
 
PDF
Responsive Design Tools & Resources
Clarissa Peterson
 
PDF
Progressive web and the problem of JavaScript
Christian Heilmann
 
PDF
Startup and Rapid web development
Lalit Shandilya
 
PDF
Front End Tooling and Performance - Codeaholics HK 2015
Holger Bartel
 
PDF
Introduction to Ruby on Rails
Diki Andeas
 
PPT
Html5 History-API
Mindfire Solutions
 
PDF
jQuery Conference Toronto
dmethvin
 
PPTX
jQuery Conference Chicago - September 2014
dmethvin
 
PDF
Web Performance Workshop - Velocity London 2013
Andy Davies
 
PPTX
J query
Chalermpon Areepong
 
KEY
Speed is Essential for a Great Web Experience
Andy Davies
 
PDF
Test-proof CSS
Vittorio Vittori
 
PDF
Front End Development - Beyond Javascript (Robin Cannon)
Future Insights
 
PDF
Atomic Design - An Event Apart San Diego
Brad Frost
 
PDF
Atomic Design - BDConf Nashville, 2013
Brad Frost
 
PDF
PrairieDevCon 2014 - Web Doesn't Mean Slow
dmethvin
 
PDF
jQueryTO: State of jQuery March 2013
dmethvin
 
KEY
HTML5 Intro
PavingWays Ltd.
 
[jqconatx] Adaptive Images for Responsive Web Design
Christopher Schmitt
 
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
Nicholas Dionysopoulos
 
Responsive Design Tools & Resources
Clarissa Peterson
 
Progressive web and the problem of JavaScript
Christian Heilmann
 
Startup and Rapid web development
Lalit Shandilya
 
Front End Tooling and Performance - Codeaholics HK 2015
Holger Bartel
 
Introduction to Ruby on Rails
Diki Andeas
 
Html5 History-API
Mindfire Solutions
 
jQuery Conference Toronto
dmethvin
 
jQuery Conference Chicago - September 2014
dmethvin
 
Web Performance Workshop - Velocity London 2013
Andy Davies
 
Speed is Essential for a Great Web Experience
Andy Davies
 
Test-proof CSS
Vittorio Vittori
 
Front End Development - Beyond Javascript (Robin Cannon)
Future Insights
 
Atomic Design - An Event Apart San Diego
Brad Frost
 
Atomic Design - BDConf Nashville, 2013
Brad Frost
 
PrairieDevCon 2014 - Web Doesn't Mean Slow
dmethvin
 
jQueryTO: State of jQuery March 2013
dmethvin
 
HTML5 Intro
PavingWays Ltd.
 

Viewers also liked (9)

PPTX
E-Voting System Development (Software Engineering Presentation)
Maruf Abdullah (Rion)
 
PPTX
Election managment
chikkujacob
 
PPTX
11 e voting-proposal_it_project_management10may12
Traitet Thepbandansuk
 
ODP
e-Voting Application using Barcode Vtoken
Bowo Prasetyo
 
PDF
Online Voting System-using Advanced Java
Sarthak Srivastava
 
PPTX
online voting system
student
 
PPT
Online Voting System - Project
Subhashis Das
 
PPT
Pumps
illpa
 
DOC
Online Voting System Project File
Nitin Bhasin
 
E-Voting System Development (Software Engineering Presentation)
Maruf Abdullah (Rion)
 
Election managment
chikkujacob
 
11 e voting-proposal_it_project_management10may12
Traitet Thepbandansuk
 
e-Voting Application using Barcode Vtoken
Bowo Prasetyo
 
Online Voting System-using Advanced Java
Sarthak Srivastava
 
online voting system
student
 
Online Voting System - Project
Subhashis Das
 
Pumps
illpa
 
Online Voting System Project File
Nitin Bhasin
 
Ad

Similar to JavaScript Like It’s 2013 (20)

PPSX
Webpack & EcmaScript 6 (Webelement #32)
srigi
 
PDF
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
PDF
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
Marco Cedaro
 
PDF
Angular js mobile jsday 2014 - Verona 14 may
Luciano Amodio
 
PDF
The Modern Java Web Developer Bootcamp - Devoxx 2013
Matt Raible
 
PDF
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
Marco Cedaro
 
PDF
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Matt Raible
 
KEY
Intro To Django
Udi Bauman
 
PPT
JavaScript 2.0 in Dreamweaver CS4
alexsaves
 
PPT
Building Web Hack Interfaces
Christian Heilmann
 
KEY
JavaScript For People Who Don't Code
Christopher Schmitt
 
PDF
Testing Angular 2 Applications - Rich Web 2016
Matt Raible
 
PDF
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
KEY
Active Web Development
Divya Manian
 
PPTX
3d web
Kevin Vandecar
 
PDF
The Server Side of Responsive Web Design
Dave Olsen
 
PDF
There is something about JavaScript - Choose Forum 2014
jbandi
 
PPT
(In)Security Implication in the JS Universe
Stefano Di Paola
 
PDF
Testing Angular Applications - Jfokus 2017
Matt Raible
 
PDF
Front-End Engineering 101
Milan Korsos
 
Webpack & EcmaScript 6 (Webelement #32)
srigi
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
Marco Cedaro
 
Angular js mobile jsday 2014 - Verona 14 may
Luciano Amodio
 
The Modern Java Web Developer Bootcamp - Devoxx 2013
Matt Raible
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
Marco Cedaro
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Matt Raible
 
Intro To Django
Udi Bauman
 
JavaScript 2.0 in Dreamweaver CS4
alexsaves
 
Building Web Hack Interfaces
Christian Heilmann
 
JavaScript For People Who Don't Code
Christopher Schmitt
 
Testing Angular 2 Applications - Rich Web 2016
Matt Raible
 
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
Active Web Development
Divya Manian
 
The Server Side of Responsive Web Design
Dave Olsen
 
There is something about JavaScript - Choose Forum 2014
jbandi
 
(In)Security Implication in the JS Universe
Stefano Di Paola
 
Testing Angular Applications - Jfokus 2017
Matt Raible
 
Front-End Engineering 101
Milan Korsos
 
Ad

More from OutSystems (20)

PPTX
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
OutSystems
 
PPTX
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
OutSystems
 
PPTX
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
OutSystems
 
PPTX
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
OutSystems
 
PPTX
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
OutSystems
 
PPTX
Fast and Furious: Modernizing Clinical Application
OutSystems
 
PPTX
What Is Light BPT and How Can You Use it for Parallel Processing?
OutSystems
 
PPTX
Enrich Visually Google Map Information With Layers
OutSystems
 
PPTX
Using Processes and Timers for Long-Running Asynchronous Tasks
OutSystems
 
PPTX
Unattended OutSystems Installation
OutSystems
 
PPTX
The 4-Layer Architecture in Practice
OutSystems
 
PPTX
Speed up Development by Turning Web Blocks Into First-Class Citizens
OutSystems
 
PPTX
Service Actions
OutSystems
 
PPTX
Responsive Ui with Realtime Database
OutSystems
 
PPTX
Reactive Web Best Practices
OutSystems
 
PPTX
RADS - Rapid Application Design Sprint
OutSystems
 
PPTX
Pragmatic Innovation
OutSystems
 
PPTX
Troubleshooting Dashboard Performance
OutSystems
 
PPTX
OutSystems Tips and Tricks
OutSystems
 
PPTX
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
OutSystems
 
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
OutSystems
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
OutSystems
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
OutSystems
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
OutSystems
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
OutSystems
 
Fast and Furious: Modernizing Clinical Application
OutSystems
 
What Is Light BPT and How Can You Use it for Parallel Processing?
OutSystems
 
Enrich Visually Google Map Information With Layers
OutSystems
 
Using Processes and Timers for Long-Running Asynchronous Tasks
OutSystems
 
Unattended OutSystems Installation
OutSystems
 
The 4-Layer Architecture in Practice
OutSystems
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
OutSystems
 
Service Actions
OutSystems
 
Responsive Ui with Realtime Database
OutSystems
 
Reactive Web Best Practices
OutSystems
 
RADS - Rapid Application Design Sprint
OutSystems
 
Pragmatic Innovation
OutSystems
 
Troubleshooting Dashboard Performance
OutSystems
 
OutSystems Tips and Tricks
OutSystems
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
OutSystems
 

Recently uploaded (20)

PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
 
PDF
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
PDF
LLM Search Readiness Audit - Dentsu x SEO Square - June 2025.pdf
Nick Samuel
 
PPTX
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
PPTX
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
 
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PPTX
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
 
PPTX
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
PDF
My Journey from CAD to BIM: A True Underdog Story
Safe Software
 
PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
DOCX
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PDF
Hello I'm "AI" Your New _________________
Dr. Tathagat Varma
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
PDF
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
PDF
Automating the Geo-Referencing of Historic Aerial Photography in Flanders
Safe Software
 
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
LLM Search Readiness Audit - Dentsu x SEO Square - June 2025.pdf
Nick Samuel
 
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
 
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
My Journey from CAD to BIM: A True Underdog Story
Safe Software
 
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
 
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
Hello I'm "AI" Your New _________________
Dr. Tathagat Varma
 
The Growing Value and Application of FME & GenAI
Safe Software
 
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
Automating the Geo-Referencing of Historic Aerial Photography in Flanders
Safe Software
 

JavaScript Like It’s 2013