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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Roman Liutikov
March 12, 2016
Programming
140
2
Share
ClojureScript: what are you?
Roman Liutikov
March 12, 2016
More Decks by Roman Liutikov
See All by Roman Liutikov
ClojureScript × Type Inference
roman01la
0
47
React Kyiv – Dec 19, 2017
roman01la
1
230
React & ClojureScript in production at Attendify
roman01la
0
200
Web Apps performance & JavaScript compilers
roman01la
3
140
Introduction to React.js
roman01la
0
92
React Native: Native Mobile Development in JavaScript @ LvivJS 2016
roman01la
0
160
React Native: Are we there yet? (Pokémon edition) @ VinnytsiaJS '16
roman01la
0
410
React Native: Native mobile development with JavaScript
roman01la
0
200
ClojureScript, что ты такое?
roman01la
1
220
Other Decks in Programming
See All in Programming
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
430
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
460
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
340
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
160
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
500
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
120
Oxlintのカスタムルールの現況
syumai
5
980
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
420
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.1k
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
310
Featured
See All Featured
A better future with KSS
kneath
240
18k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Curious Case for Waylosing
cassininazir
1
370
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Into the Great Unknown - MozCon
thekraken
41
2.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
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