Enviar pesquisa
Carregar
Clojure – есть ли жизнь после Java
•
0 gostou
•
46 visualizações
Olim Saidov
Seguir
Live coding session code: https://github.com/olimsaidov/clojure-demo-chat
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 19
Baixar agora
Baixar para ler offline
Recomendados
Reform: путь к лучшему ORM
Reform: путь к лучшему ORM
Badoo Development
2014-11-01 03 Николай Линкер. Open your clojure
2014-11-01 03 Николай Линкер. Open your clojure
Омские ИТ-субботники
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
Badoo Development
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Ontico
12 вариантов использования Redis — в Tarantool (Александр Календарев, Констан...
12 вариантов использования Redis — в Tarantool (Александр Календарев, Констан...
Ontico
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
SmartTools
ECMAscript harmony
ECMAscript harmony
FDConf
Recomendados
Reform: путь к лучшему ORM
Reform: путь к лучшему ORM
Badoo Development
2014-11-01 03 Николай Линкер. Open your clojure
2014-11-01 03 Николай Линкер. Open your clojure
Омские ИТ-субботники
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
Badoo Development
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Ontico
12 вариантов использования Redis — в Tarantool (Александр Календарев, Констан...
12 вариантов использования Redis — в Tarantool (Александр Календарев, Констан...
Ontico
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
SmartTools
ECMAscript harmony
ECMAscript harmony
FDConf
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JSFestUA
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Badoo Development
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Ontico
Clojure #2 (2014)
Clojure #2 (2014)
Alexander Podkhalyuzin
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
Ontico
Clojure #1
Clojure #1
Alexander Podkhalyuzin
Tarantool: как обрабатывать 1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 1,5 млрд запросов в сутки?
tfmailru
Python&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.by
Python Meetup
Caching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in Java
Andrei Pangin
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Ontico
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)
AvitoTech
Kubernetes в Avito - Евгений Ольков
Kubernetes в Avito - Евгений Ольков
AvitoTech
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Tanya Denisyuk
Scala on android
Scala on android
Valeriya Atamanova
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Ontico
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Ontico
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
e-Legion
Something about Golang
Something about Golang
Anton Arhipov
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Ontico
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Alexandre Kalendarev
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
Alex Ott
Обзор ES2015(ES6)
Обзор ES2015(ES6)
Alex Filatov
Mais conteúdo relacionado
Mais procurados
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JSFestUA
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Badoo Development
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Ontico
Clojure #2 (2014)
Clojure #2 (2014)
Alexander Podkhalyuzin
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
Ontico
Clojure #1
Clojure #1
Alexander Podkhalyuzin
Tarantool: как обрабатывать 1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 1,5 млрд запросов в сутки?
tfmailru
Python&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.by
Python Meetup
Caching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in Java
Andrei Pangin
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Ontico
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)
AvitoTech
Kubernetes в Avito - Евгений Ольков
Kubernetes в Avito - Евгений Ольков
AvitoTech
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Tanya Denisyuk
Scala on android
Scala on android
Valeriya Atamanova
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Ontico
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Ontico
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
e-Legion
Something about Golang
Something about Golang
Anton Arhipov
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Ontico
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Alexandre Kalendarev
Mais procurados
(20)
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Доклад Антона Поварова на Tarantool Meetup. "Tarantool в Badoo: хранение исто...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Clojure #2 (2014)
Clojure #2 (2014)
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
Использование Tarantool для хранения чатов и лент друзей (Константин Осипов)
Clojure #1
Clojure #1
Tarantool: как обрабатывать 1,5 млрд запросов в сутки?
Tarantool: как обрабатывать 1,5 млрд запросов в сутки?
Python&Printer / Андрей Пучко / penta.by
Python&Printer / Андрей Пучко / penta.by
Caching data outside Java Heap and using Shared Memory in Java
Caching data outside Java Heap and using Shared Memory in Java
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
Хочу знать, сколько уникальных посетителей было на моём сайте за произвольный...
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)
Kubernetes в Avito - Евгений Ольков
Kubernetes в Avito - Евгений Ольков
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Андрей Дроздов "Создание высокопроизводительных rest api на tarantool"
Scala on android
Scala on android
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
«Отладка приложений с помощью dtrace» — Станислав Краснояров, Redsteep
Something about Golang
Something about Golang
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Паттерны и примеры структур данных в NoSQL на примере Tarantool
Semelhante a Clojure – есть ли жизнь после Java
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
Alex Ott
Обзор ES2015(ES6)
Обзор ES2015(ES6)
Alex Filatov
Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)
Alex Ott
Functional
Functional
Andrey Volobuev
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
Timur Safin
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Roman Brovko
Лекция о языке программирования Haskell
Лекция о языке программирования Haskell
husniyarova
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
Python Meetup
Elixir: The Future of Web Development | Elixir: Будущее веб-разработки
Elixir: The Future of Web Development | Elixir: Будущее веб-разработки
Yaroslav Smirnov
JavaScript Intro
JavaScript Intro
Александр Рудевич
PHP Tricks
PHP Tricks
BlackFan
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
Regn
PowerShell
PowerShell
GetDev.NET
Dsl for c++
Dsl for c++
corehard_by
Компилируемые в реальном времени DSL для С++
Компилируемые в реальном времени DSL для С++
corehard_by
Константин Осипов (Mail.Ru)
Константин Осипов (Mail.Ru)
Ontico
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Mikhail Kurnosov
Enter: legacy code
Enter: legacy code
Kamil Samigullin
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
ScalaNsk
UWDC 2013, Yii2
UWDC 2013, Yii2
Alexander Makarov
Semelhante a Clojure – есть ли жизнь после Java
(20)
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
Обзор ES2015(ES6)
Обзор ES2015(ES6)
Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)
Functional
Functional
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция о языке программирования Haskell
Лекция о языке программирования Haskell
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
Elixir: The Future of Web Development | Elixir: Будущее веб-разработки
Elixir: The Future of Web Development | Elixir: Будущее веб-разработки
JavaScript Intro
JavaScript Intro
PHP Tricks
PHP Tricks
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
PowerShell
PowerShell
Dsl for c++
Dsl for c++
Компилируемые в реальном времени DSL для С++
Компилируемые в реальном времени DSL для С++
Константин Осипов (Mail.Ru)
Константин Осипов (Mail.Ru)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Enter: legacy code
Enter: legacy code
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
UWDC 2013, Yii2
UWDC 2013, Yii2
Clojure – есть ли жизнь после Java
1.
Clojure – есть ли жизнь
после Java
2.
Clojure – есть ли жизнь
после Java Ruby PHP Scala Python Javascript Go ... ...
3.
Парадигмы Declarative SQLDatalog Prolog Logic Functional ML Lisp CLOS Object-Oriented Java C++ C Pascal Procedural Bash Imperative
4.
Что такое Clojure •
Язык общего назначения • Запускается на JVM • Функциональный Lisp • С учетом многопоточности
5.
Сильные стороны • Динамическая
разработка (REPL) • Иммутабельность по умолчанию • Lisp (compact, code-as-data, macros) • Concurrency (atoms, software transactional memory) • Выполняется на JVM (access to the java ecosystem)
6.
* https://leonid.shevtsov.me/post/companies-that-are-using-clojure/
7.
Clojure Basics
8.
Примитивы "Hello" ;string 1 ;int 1.2
;float false ;boolean [1 2 3] ;vector (1 2 3) ;list {:a 1 :b 2} ;hash-map :abc ;keyword #{1 2 3} ;set !8
9.
Вызов функции (function-name arg1
arg2 arg3) Имя функции или макроса Аргументы s-expression
10.
Functions (str "Hel" "lo")
; => "Hello" (+ 1 1) ; => 2 (- 2 1) ; => 1 (* 1 2) ; => 2 (/ 2 1) ; => 2 (= 1 1) ; => true (= 2 1) ; => false
11.
(< 1 2)
; => true (> 3 2 1) ; => true (and true false) ; => false (or true false) ; => true (if (> 1 2) "good" "bad") ; => "bad" Functions
12.
(map inc [1
2 3]) ; => (2 3 4) (filter even? [1 2 3 4]) ; => (2 4) (reduce + [1 2 3]) ; => 6 (concat [1 2] [3 4]) ; => (1 2 3 4) (conj [1 2] 3) ; => [1 2 3] (assoc {:a 1} :b 2) ; => {:a 1 :b 2} (dissoc {:a 1 :b 2} :b) ; => {:a 1} Functions
13.
(defn say-hello [name] (str
"Hello " name)) (say-hello "World") ; => "Hello World" (map (fn [a] (* a a)) [1 2 3 4]) ; => (1 4 9 16) Functions
14.
( -> some-value (coerce) (validate) (save)) (save
(validate (coerce some-value))) Macros
15.
(defmacro infix [infixed] (list (second
infixed) (first infixed) (last infixed))) (infix (1 + 1)) ; => 1 Macros
16.
Vars and Bindings (def
word "hi") (def n 3) (repeat n word) ; => ("hi" "hi" "hi") (let [a 2 b 3] (+ a b)) ; => 5
17.
Java Interoperation (import java.util.Date) (Date.)
; => <a date object> (.getTime (Date.)) ; => 1534589618419 (System/currentTimeMillis) ; => 1534589705587
18.
Live Coding
19.
Learn Clojure • braveclojure.com •
clojurecourse.by
Baixar agora