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, что ты такое?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Roman Liutikov
May 22, 2016
Programming
1
210
ClojureScript, что ты такое?
KharkivJS #6 21.05.2015
Roman Liutikov
May 22, 2016
Tweet
Share
More Decks by Roman Liutikov
See All by Roman Liutikov
ClojureScript × Type Inference
roman01la
0
45
React Kyiv – Dec 19, 2017
roman01la
1
230
React & ClojureScript in production at Attendify
roman01la
0
200
Web Apps performance & JavaScript compilers
roman01la
3
120
Introduction to React.js
roman01la
0
82
React Native: Native Mobile Development in JavaScript @ LvivJS 2016
roman01la
0
140
React Native: Are we there yet? (Pokémon edition) @ VinnytsiaJS '16
roman01la
0
390
React Native: Native mobile development with JavaScript
roman01la
0
190
ClojureScript: what are you?
roman01la
2
130
Other Decks in Programming
See All in Programming
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
Grafana:建立系統全知視角的捷徑
blueswen
0
330
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
740
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
CSC307 Lecture 06
javiergs
PRO
0
690
CSC307 Lecture 03
javiergs
PRO
1
490
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
150
CSC307 Lecture 01
javiergs
PRO
0
690
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.8k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
What's in a price? How to price your products and services
michaelherold
247
13k
HDC tutorial
michielstock
1
380
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Optimizing for Happiness
mojombo
379
71k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Marketing to machines
jonoalderson
1
4.6k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Transcript
ClojureScript что ты такое? Роман Лютиков
Зачем мне другой язык для веба?
Возможные причины • Я делаю сложные интерфейсы • Я хочу
быть более эффективным • Я устал от JavaScript
Зачем нам языки компилируемые в JavaScript? • Я все еще
хочу разрабатывать в вебе • Но сложность систем растет с каждым днем • Мне нужны соответствующие инструменты • Меньше сложности и неочевидности
Что же выбрать?
Идеальный язык должен быть… • Простым • Выразительным • Минимум
синтаксических конструкций • …
None
None
None
(CAR (CDR (CAR '((A B C) D E F))))
Сервер Клиент
(defn double [x] (* x 2)) (double 4)
function double(x) { return x * 2; } (defn double
[x] (* x 2))
Влияние на JavaScript • Неизменяемые структуры данных • Интерактивная разработка
• Единое глобальное состояние • Трансдьюсеры • Деструктурирование • Остаточные параметры
ClojureScript • Функциональное программирование • Неизменяемые структуры данных • Отличная
стандартная библиотека • Интерактивная разработка • Надежная экосистема • Мощный оптимизирующий компилятор
Где это можно использовать? • Сервер: JVM, Node.js • Клиент:
ClojureScript + React.js • Mobile: ClojureScript + React Native
Совместимость с JavaScript • Доступ к window в пространстве имен
js • Модули: AMD, CommonJS, ES2015 • Набор функций для работы с примитивами JS
Инструменты Код • Atom, LightTable, Vim, Emacs, … • Parinfer
Инструменты Сборка
Инструменты Сборка • Leiningen (зависимости и сборка) • Figwheel (перезагрузка
кода) • Devcards (разработка UI в изоляции)
None
Инструменты Отладка • Source maps • Dirac (Chrome DevTools для
CLJS)
None
Инструменты Тестирование • cljs.test • doo
SPA • Reagent + re-frame • Om • Rum
Библиотеки • clojars.org • cljsjs.github.io • clojurewerkz.org • www.clojure-toolbox.com
С чего начать? • jsbin.com • cljsfiddle.com • clojurescript.net •
planck-repl.org
Что почитать? • clojurescript.ru • kanaka.github.io/clojurescript/web/synonym.html • clojuredocs.org • github.com/clojure/clojurescript/wiki
• gitter.im/dev-ua/clojure • clojurians.net
Недостатки ClojureScript • Синтаксис Лиспа (высокий порог входа) • Непопулярность
• Меньше вакансий, чем на JavaScript
Ну и зачем мне язык, с которым сложно найти работу?
Чтобы расти как разработчик • Чтобы улучшать свои инструменты •
Чтобы перенимать практики • Чтобы не замыкаться в рамках одного языка/ парадигмы • Чтобы быть лучшим разработчиком
(вопросы?) Спасибо! @roman01la