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
ClojureScript: what are you?
Search
Roman Liutikov
March 12, 2016
Programming
2
130
ClojureScript: what are you?
Roman Liutikov
March 12, 2016
Tweet
Share
More Decks by Roman Liutikov
See All by Roman Liutikov
ClojureScript × Type Inference
roman01la
0
35
React Kyiv – Dec 19, 2017
roman01la
1
220
React & ClojureScript in production at Attendify
roman01la
0
190
Web Apps performance & JavaScript compilers
roman01la
3
120
Introduction to React.js
roman01la
0
76
React Native: Native Mobile Development in JavaScript @ LvivJS 2016
roman01la
0
130
React Native: Are we there yet? (Pokémon edition) @ VinnytsiaJS '16
roman01la
0
360
React Native: Native mobile development with JavaScript
roman01la
0
180
ClojureScript, что ты такое?
roman01la
1
200
Other Decks in Programming
See All in Programming
Amazon Qを使ってIaCを触ろう!
maruto
0
380
Ethereum_.pdf
nekomatu
0
380
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
140
macOS でできる リアルタイム動画像処理
biacco42
9
2.3k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
4
640
Better Code Design in PHP
afilina
PRO
0
110
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
170
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
120
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
280
CSC509 Lecture 09
javiergs
PRO
0
140
Macとオーディオ再生 2024/11/02
yusukeito
0
340
Quine, Polyglot, 良いコード
qnighy
4
630
Featured
See All Featured
It's Worth the Effort
3n
183
27k
Unsuck your backbone
ammeep
668
57k
Embracing the Ebb and Flow
colly
84
4.5k
Building Adaptive Systems
keathley
38
2.3k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
BBQ
matthewcrist
85
9.3k
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Language of Interfaces
destraynor
154
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
A better future with KSS
kneath
238
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Transcript
ClojureScript what are you? Roman Liutikov
None
None
http://www.lisperati.com/casting_spels.pdf
((((()))))
John McCarthy • AI • LISP • Garbage collection
None
(ns app.core (:require [cljsjs.react-dom :refer [render]])) (def app-component ;; code
) (render app-component (js/document.getElementById "app"))
Too many parens? not really ;) (double 5) double(5) Clojure
JavaScript
Companies using ClojureScript CircleCI Atlassian Cisco eBay ModnaKasta ! …
Because Clojure rocks, and JavaScript reaches. — Rich Hickey
ClojureScript Release - Rich Hickey https://www.youtube.com/watch?v=tVooR-dF_Ag
Why ClojureScript? • Functional programming • Immutable data (mori in
JS) • Great standard library + Google Closure Libraries • Interactive development • Robust libraries • Great optimizing compiler (dead code elimination, tree-shaking and more)
But it should be slow http://swannodette.github.io/2013/06/10/porting-notchs- minecraft-demo-to-clojurescript/ http://thi.ng/
Learn once, use anywhere • Server-side: JVM, Node.js • Client-side:
ClojureScript + React.js • Desktop: ClojureScript + Electron • Mobile: ClojureScript + React Native
Tools Code • Atom, LightTable, Vim, Emacs, whatever… • Parinfer
Tools Build
Tools Build • Leiningen (dependencies + Grunt in JS) •
Boot (dependencies + Gulp in JS) • Figwheel (Webpack’s HMR in JS) • Devcards (visual interactive development)
None
Tools Debugging • Source maps • Dirac (Chrome DevTools with
extra features for CLJS development)
None
Tools Testing • cljs.test • doo (multi env test runner,
supports Karma)
SPA libraries • Reagent + re-frame • Om • Rum
Libraries • clojars.org (NPM in JS) • cljsjs.github.io (for JS
deps) • clojurewerkz.org • www.clojure-toolbox.com
How to try ClojureScript? • jsbin.com • cljsfiddle.com (Reagent) •
clojurescript.net (Web REPL) • planck-repl.org (OSX REPL) • Replete (iOS REPL)
ClojureScript for Skeptics - Derek Slager https://www.youtube.com/watch?v=gsffg5xxFQI
Where to learn more? • clojurescriptkoans.com • kanaka.github.io/clojurescript/web/synonym.html • cljs.info/cheatsheet
• clojuredocs.org • github.com/clojure/clojurescript/wiki • gitter.im/dev-ua/clojure • clojurians.net
(questions?) Thanks! @roman01la