Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Om/React.js/Clojurescript: An introduction
Search
Peter Brachwitz
May 21, 2014
Programming
1
300
Om/React.js/Clojurescript: An introduction
An introduction to Om/React.js/ClojureScript
Peter Brachwitz
May 21, 2014
Tweet
Share
More Decks by Peter Brachwitz
See All by Peter Brachwitz
Core.async
pebrc
0
61
Introduction to Clojure for Java Devs
pebrc
1
74
Other Decks in Programming
See All in Programming
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
970
AgentCoreとHuman in the Loop
har1101
5
220
Architectural Extensions
denyspoltorak
0
270
Data-Centric Kaggle
isax1015
2
760
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
540
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
420
AtCoder Conference 2025
shindannin
0
1k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
640
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
590
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
AI巻き込み型コードレビューのススメ
nealle
0
120
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
200
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
How to Talk to Developers About Accessibility
jct
2
130
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Visualization
eitanlees
150
17k
Practical Orchestrator
shlominoach
191
11k
Building AI with AI
inesmontani
PRO
1
680
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
OM AN INTRODUCTION / Peter Brachwitz @p_brc
WHAT? ... WHY? A new way of building web UIs
using Facebook's new React.js library ... but in ClojureScript with added "functional" benefits.
PARTIES INVOLVED 1. ClojureScript 2. React.js 3. Om
CLOJURESCRIPT A Clojure compiler that emits JavaScript code
Its output can be optimized with Google's Closure compiler
ALL OF CLOJURE? Almost. Excluded are the bits that don't
make sense in a JavaScript environment.
THINGS THAT WON'T WORK: Concurrency : Refs, Agents Data types:
BigDecimal, BigInteger, Ratio Host (Java, CLR) IO related things: *out* Full list of differences on GitHub
REACT.JS? A JavaScript library for building user interfaces
MVC? No.
MVP? No.
MVVM? No.
SIMPLE Just the view. No models. No controllers.
REACTIVE Data flow into the UI
FAST Let v be a virtual DOM dif f (
, ) = Δ v 0 v 1
WHY? JavaScript is fast DOM mutation is slow Minimize DOM
mutation and gain performance
OM A ClojureScript interface to React.js written by David Nolen
IMMUTABLE, PERSISTENT DATA STRUCTURES Snapshots, Undo, efficient rendering
xs d b g a c f h ys d'
g' f' e Source http://en.wikipedia.org/wiki/File:Purely_functional_tree_after.svg
TYPICALLY: CENTRALIZED APPLICATION STATE Using Clojure's atom (CAS) and om's
transact!
NO (VIEW) MODELS Cursors into global application state
LET'S LOOK AT SOME CODE!
SOURCES Om on Github Basic Om Tutorial React on Github
Comparing JavaScript and ClojureScript A ClojureScript tutorial by David Nolen