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
ClojureScript: what are you?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Roman Liutikov
March 12, 2016
Programming
150
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ClojureScript: what are you?
Roman Liutikov
March 12, 2016
Transcript
28 slides
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
More Decks by Roman Liutikov
See All by Roman Liutikov
ClojureScript × Type Inference
roman01la
0
54
React Kyiv – Dec 19, 2017
roman01la
1
240
React & ClojureScript in production at Attendify
roman01la
0
210
Web Apps performance & JavaScript compilers
roman01la
3
150
Introduction to React.js
roman01la
0
100
React Native: Native Mobile Development in JavaScript @ LvivJS 2016
roman01la
0
170
React Native: Are we there yet? (Pokémon edition) @ VinnytsiaJS '16
roman01la
0
450
React Native: Native mobile development with JavaScript
roman01la
0
210
ClojureScript, что ты такое?
roman01la
1
230
Other Decks in Programming
See All in Programming
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
9k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
260
SODA - FACT BOOK(JP)
sodainc
1
40k
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
160
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
170
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
230
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
590
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
Getting Started with Vibe Coding
miccheng
0
200
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
We Are The Robots
honzajavorek
0
440
The untapped power of vector embeddings
frankvandijk
2
2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
WCS-LA-2024
lcolladotor
0
990
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
6
920
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Building an army of robots
kneath
307
47k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
60k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380