Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JavaScript - From DHTML to a Multi-Paradigm Lan...
Search
Robert Vogt
September 23, 2016
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JavaScript - From DHTML to a Multi-Paradigm Language
Robert Vogt
September 23, 2016
More Decks by Robert Vogt
See All by Robert Vogt
React Native — Webnesday #9
deniaz
1
430
Hands On: React Native
deniaz
0
390
ADR Lightning Talk
deniaz
0
420
Other Decks in Technology
See All in Technology
データ_AIの事業の勝敗をわけるもの
nek0128
1
480
品質と信頼性を地続きにする
grimoh
2
980
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
740
Antigravity SDK for the Java Developer
glaforge
0
190
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
8
6.1k
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.3k
GitHub Agentic Workflows を触ってみる
htkym
1
100
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
290
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
SREは、MCPとAutopilotをこう使え!
kazumax55
3
960
おい、エージェントを使って終わらせろ
nwiizo
3
910
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
480
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Navigating Weather and Climate Data
rabernat
0
530
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
490
Music & Morning Musume
bryan
48
7.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Producing Creativity
orderedlist
PRO
348
41k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
520
Building Applications with DynamoDB
mza
96
7.2k
Transcript
JavaScript From DHTML to a Multi-Paradigm Language Robert Vogt #NCamp16
Robert Vogt Software Engineer from & in Sankt Gallen @_deniaz
None
«Web 2.0 describes World Wide Web websites that emphasize user-generated
content, usability, and interoperability for end users.»
jQuery MooTools Prototype JS script.aculo.us
Single-page application
Angular React Object-Oriented Functional
None
JavaScript
«A programming paradigm is a style or way of programming.
Some languages make it easy to write in some paradigms but not others.»
«Object-oriented programming is a programming language model organized around objects
rather than actions and data rather than logic.»
class Dog extends Animal {} let dog = new Dog();
dog.walk();
let Animal = { walk: function() {} }; let Dog
= Object.create(Animal); Dog.bark = function() { return ‘Woof!’; };
Class-based Inheritance Prototypical Inheritance
«Functional Programming is a programming paradigm that treats computation as
the evaluation of mathematical functions and avoids changing-state and mutable data.»
Functions First-Class
let sum = function(a, b) { return a + b;
}
Functions Higher-Order
$.get( 'http://example.com', (data) => { /* Success! */ } );
function createPrinter(a, b) { return function() { return ‘Namics’; }
} const print = createPrinter(); print(); // Namics.
Functions Pure
let double = (x) = x * 2;
Closures Function
let incrementer = (function() { let _value = 0; return
() => ++_value; })(); incrementer(); // 1 incrementer(); // 2 incrementer(); // 3
Data Immutable
const list1 = Immutable.List.of(1, 2); const list2 = list1.push(3, 4,
5);
Composition Function
let ten = double(sum(2, 3));
Soooo… Any Real World Examples?
None
Store View Action Action Dispatcher
const HelloMessage = (props) => ( <div>Hello {props.name}</div> );
«Those who are unaware they are walking in darkness will
never seek light.» — Bruce Lee find me on twitter @_deniaz