ClojureScript для скептиков
Кто такие скептики?
То есть, по-хорошему - это большинство программистов
2
Откуда скептицизм к любому новому языку?
3
ClojureScript
Непривычно
5
Скобочки не с той стороны
Программисты делают вид что они все такие рациональные и
серьёзные, но ревут как дети когда кто-то двигает их скобочки.
Плюсы которые не сразу очевидны:
6
К скобочкам привыкаешь
7
CSS (Garden)
[:.panel {
:max-height "100vh"
:flex "1"
}
[:&.active
[:.panel-container {
:outline (str "1px " theme-blue " solid")
:box-shadow shadow-for-active
}]
]
]
8
HTML (Reagent, Rum, Hiccup)
(defn simple-component []
[:div
[:p "I am a component!"]
[:p.someclass
"I have " [:strong "bold"]
[:span {:style {:color "red"}} " and red "]
"text."
]
])
9
Config (immuconf)
{
:database {
:uri "jdbc:postgresql://db-server.com:1234/my-database"
:user "system"
:password #immuconf/override "Specify the database password here.
Ask Jim if you don't have it."
}
}
10
(нытьё)Пример
12
13
14
Классовая борьба
Объекты:
Классы:
Протоколы против анархии
15
Структуры данных
16
Стандартная библиотека
17
Google Closure (да, через “s”)
18
А ClojureScript тут причём?
19
Доступ к платформе
Не такой прямой в CoffeeScript или TypeScript из-за сильно отличающейся семантики
20
ClojureScript | JS |
(.ClassName one two three) | new ClassName(one, two, three); |
(new js/Date) | new Date(); |
(.now js/Date) | Date.now() |
(.-hostname js/location) | location.hostname; |
(set! (.-title js/document) "Hi!") | document.title = "Hi!"; |
Производительность
21
Инструменты
22
Сообщество
23
Кто использует
~120 компаний на https://clojurescript.org/community/companies
Минус в том, что не пишут где именно применяют
24
Крутые вещи чтобы заценить
25
(println "Thanks!")
(def me {
:twitter "https://twitter.com/YurySoloviov"
:github "https://github.com/YurySolovyov"
:email "biohazard707@gmail.com"
})
26