Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
JavaScript - From DHTML to a Multi-Paradigm Language
Robert Vogt
September 23, 2016
Technology
0
230
JavaScript - From DHTML to a Multi-Paradigm Language
Robert Vogt
September 23, 2016
Tweet
Share
More Decks by Robert Vogt
See All by Robert Vogt
React Native — Webnesday #9
deniaz
1
270
Hands On: React Native
deniaz
0
210
ADR Lightning Talk
deniaz
0
230
Other Decks in Technology
See All in Technology
OVN-Kubernetes-Introduction-ja-2023-01-27.pdf
orimanabu
1
420
初めてのデータ移行プロジェクトから得た学び
tjmtmmnk
0
380
OpenShiftクラスターのアップグレード自動化への挑戦! / OpenShift Cluster Upgrade Automation
skitamura7446
0
180
230125 古いタブレットの活用 かーでぃさん
comucal
PRO
0
16k
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
600
cdk deployに必要な権限ってなんだ?
kinyok
0
190
Stripe / Okta Customer Identity Cloud(旧Auth0) の採用に至った理由 〜モリサワの SaaS 戦略〜
tomuro
0
130
MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析 - 分析から機械学習システムの開発まで一人で複数ロールを担う大変さ
masatakashiwagi
3
760
OpenShiftでスポットVMを使おう.pdf
jpishikawa
1
380
Google Cloud Workflows: API automation, patterns and best practices
glaforge
0
100
日本ディープラーニング協会主催 NeurIPS 2022 技術報告会講演資料
tdailab
0
1.1k
Oracle Transaction Manager for Microservices Free 22.3 製品概要
oracle4engineer
PRO
5
110
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
217
21k
Designing Experiences People Love
moore
130
22k
Git: the NoSQL Database
bkeepers
PRO
419
60k
Code Reviewing Like a Champion
maltzj
508
38k
Into the Great Unknown - MozCon
thekraken
2
300
Testing 201, or: Great Expectations
jmmastey
25
5.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
63k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Navigating Team Friction
lara
177
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
182
15k
A Tale of Four Properties
chriscoyier
149
21k
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