М.Двач / Программирование

25 Кб, 600x600
Clojure(Script) #0 /clojure/ 13 янв, 12:52 3622689 В конец треда | Веб

Clojure (произносится как closure [ˈklōZHər]) — современный диалект Лиспа, язык программирования общего назначения с поддержкой разработки в интерактивном режиме, поощряющий функциональное программирование и упрощающий поддержку многопоточности. Clojure работает на платформах JVM и CLR. Clojure отличает философия «код как данные» (гомоиконность) и развитая система лисп-макросов.

Транслятор Clojure свободно распространяется на условиях Eclipse Public License.

Clojure за 15 минут - https://habr.com/ru/companies/otus/articles/725060/
Официальный гайд - https://clojure.org/guides/getting_started
Основы Clojure - https://code-basics.com/ru/languages/clojure

Ответы22792

2 13 янв, 15:01 2 3622792

>>3622689 (OP)
Зачем если есть лисп? Причём для лиспа есть sbcl, то есть можно писать даже производтиельные приложения, типа игр.

Ответы22811

sage 3 13 янв, 15:15 3 3622811

>>3622792
Зачем отвечать в бототред?

Ответы22860

4 13 янв, 16:57 4 3622860

>>3622811
Бототред у тебя в очке, даун тупорылый.

Ответы22977

sage 5 13 янв, 20:34 5 3622977

>>3622860
Почему тебе НЕПРИЯТНО? Сосака не заплатит миску мочи, если не выполнишь норму постинга?

6 18 янв, 07:29 6 3626503

ьамп

7 3 апр, 22:53 7 3678979

; Добро пожаловать в очередной тред самого высокооплачиваемого языка в мире!
(swap! threads update-in [:clojure :count] inc)

https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f

Кто использует clojure в продакшне?
Walmart, CircleCI, Heroku, Puppet, Netflix, Soundcloud, Spotify, Facebook, Groupon, Red Hat, Oracle, Сбербанк.

Какие приложения написаны на clojure?
Walmart eReceipts - бэкенд обработки данных о покупках во всех отделениях Walmart для их мобильного приложения.
[https://www.datomic.com](https://www.datomic.com) - распределенная транзакционная база данных с языком запросов на основе datalog.
[https://roamresearch.com](https://roamresearch.com) - самый трендовый инструмент для ведения личных заметок и создания баз знаний (zettelkasten и прочие баззворды добавить по желанию)
[https://github.com/athensresearch/athens](https://github.com/athensresearch/athens) - то же, но без облака
[https://status.im](https://status.im) - мобильная блокчейн ОС на основе Ethereum'а и тулкит для создания p2p-приложений.
[http://lighttable.com](http://lighttable.com) - расширяемая интерактивная IDE для clojure, python и javascript.
[https://precursorapp.com](https://precursorapp.com) - инструмент для коллективного прототипирования онлайн (рекомендую попробовать, зависимость есть).
[http://circleci.com](http://circleci.com) - Continuous Integration and Delivery. Бэкенд и фронтенд на clojure+clojurescript.
[http://braid.chat/](http://braid.chat/) - более лучший слак, опенсорсный и с историей (альфа).
[http://maria.cloud/](http://maria.cloud/) - интерактивная онлайн-IDE для обучения программированию.
[https://defold.com](https://defold.com) - редактор для игрового движка.

TL;DR
Начать: [http://maria.cloud/](http://maria.cloud/)
Читать: [https://www.braveclojure.com](https://www.braveclojure.com)
Решать: [http://www.4clojure.com](http://www.4clojure.com)
Онлайн: [https://repl.it/site/languages/clojure](https://repl.it/site/languages/clojure)
Офлайн: [https://leiningen.org](https://leiningen.org)
Зомби: [http://www.parens-of-the-dead.com/](http://www.parens-of-the-dead.com/)
Гайды: [https://clojure.org/guides/getting_started](https://clojure.org/guides/getting_started)
Доки: [https://clojure.org/reference/documentation](https://clojure.org/reference/documentation)
Стайлгайд: [https://github.com/bbatsov/clojure-style-guide](https://github.com/bbatsov/clojure-style-guide)
IDE: [https://practicalli.github.io/clojure/development-tools/install-guides/](https://practicalli.github.io/clojure/development-tools/install-guides/)

Clojurescript
[https://clojurescript.org](https://clojurescript.org)
[https://figwheel.org](https://figwheel.org)
[https://github.com/Day8/re-frame](https://github.com/Day8/re-frame)

Документация
[https://cljdoc.org/](https://cljdoc.org/)
[https://clojuredocs.org/](https://clojuredocs.org/)
[https://clojure.org/api/cheatsheet](https://clojure.org/api/cheatsheet) && [https://cljs.info/cheatsheet/](https://cljs.info/cheatsheet/)
[https://clojure.org/reference/documentation](https://clojure.org/reference/documentation)
[http://clojure-doc.org](http://clojure-doc.org)

Задачи
[http://www.4clojure.com](http://www.4clojure.com)
[http://clojurekoans.com](http://clojurekoans.com)
[http://clojurescriptkoans.com](http://clojurescriptkoans.com)
[http://exercism.io/languages/clojure/about](http://exercism.io/languages/clojure/about)

Видео
[https://github.com/tallesl/Rich-Hickey-fanclub#talks](https://github.com/tallesl/Rich-Hickey-fanclub#talks)
[https://www.youtube.com/user/ClojureTV](https://www.youtube.com/user/ClojureTV)

Комьюнити
[https://ask.clojure.org/](https://ask.clojure.org/)
[http://clojurians.slack.com/](http://clojurians.slack.com/)
[https://clojureverse.org/](https://clojureverse.org/)
[https://www.reddit.com/r/Clojure/](https://www.reddit.com/r/Clojure/)
#clojure @ [irc.freenode.net](http://irc.freenode.net)
[https://groups.google.com/forum/#!forum/clojure](https://groups.google.com/forum/#!forum/clojure)
[https://stackoverflow.com/questions/tagged/clojure](https://stackoverflow.com/questions/tagged/clojure)

Блоги
Еженедельник: [https://therepl.net](https://therepl.net)
Все блоги: [http://planet.clojure.in](http://planet.clojure.in)
Производительность: [http://clojure-goes-fast.com](http://clojure-goes-fast.com)
Оффтоп: [http://tonsky.me/](http://tonsky.me/)

IDE
[https://cursive-ide.com](https://cursive-ide.com)
[https://docs.cider.mx/cider/index.html](https://docs.cider.mx/cider/index.html)
[https://github.com/tpope/vim-fireplace](https://github.com/tpope/vim-fireplace) || [https://github.com/Olical/conjure/](https://github.com/Olical/conjure/)
[http://lighttable.com](http://lighttable.com)
[http://nightcoders.net](http://nightcoders.net) || [https://sekao.net/nightcode](https://sekao.net/nightcode) || [https://sekao.net/lightmod](https://sekao.net/lightmod)
[https://shaunlebron.github.io/parinfer/](https://shaunlebron.github.io/parinfer/)

Библиотеки
[https://clj-templates.com](https://clj-templates.com)
[https://clojars.org](https://clojars.org) || [https://www.clojure-toolbox.com](https://www.clojure-toolbox.com) || [https://cljdoc.xyz](https://cljdoc.xyz)
Web: [http://www.luminusweb.net](http://www.luminusweb.net) || [https://github.com/duct-framework/duct](https://github.com/duct-framework/duct) || [http://pedestal.io](http://pedestal.io)
Express/Flask/Sinatra: [https://learnxinyminutes.com/docs/compojure](https://learnxinyminutes.com/docs/compojure) || [https://metosin.github.io/reitit](https://metosin.github.io/reitit)
REST: [https://clojure-liberator.github.io/liberator/](https://clojure-liberator.github.io/liberator/)
App Server: [http://aleph.io](http://aleph.io) || [http://immutant.org](http://immutant.org) || [http://http-kit.org](http://http-kit.org)
DI: [https://github.com/weavejester/integrant](https://github.com/weavejester/integrant) || [https://github.com/stuartsierra/component](https://github.com/stuartsierra/component) || [https://github.com/tolitius/mount](https://github.com/tolitius/mount) || [https://aroemers.github.io/mount-lite](https://aroemers.github.io/mount-lite)
SQL: [https://github.com/layerware/hugsql](https://github.com/layerware/hugsql) || [https://walkable.gitlab.io](https://walkable.gitlab.io)
UI (cljs): [https://github.com/Day8/re-frame](https://github.com/Day8/re-frame) || [https://github.com/tonsky/rum](https://github.com/tonsky/rum) || [https://github.com/omcljs/om](https://github.com/omcljs/om)
HTML: [https://github.com/weavejester/hiccup](https://github.com/weavejester/hiccup) || [https://github.com/cgrand/enlive](https://github.com/cgrand/enlive)
Macros: [https://github.com/cgrand/macrovich](https://github.com/cgrand/macrovich)
Magic: [https://github.com/nathanmarz/specter](https://github.com/nathanmarz/specter)
Spec: [https://github.com/bhb/expound](https://github.com/bhb/expound) || [https://github.com/jeaye/orchestra](https://github.com/jeaye/orchestra)
Test: [https://github.com/clojure/test.generative](https://github.com/clojure/test.generative)

FAQ

— СКОБКИ!!11
[http://clochure.org/](http://clochure.org/)

— Кейворды?..
[https://clojure.org/guides/faq#why_keywords](https://clojure.org/guides/faq#why_keywords)

— Common Lisp же есть, нинужна!!1
Просто _съеби_.

— Что нужно для вкатывания?
Знать английский, не быть тупым, иметь опыт программирования.

— Хочу начать изучать программирование, clojure мне подойдет?
Лучше сперва возьми PLT Racket и читай [http://htdp.org](http://htdp.org) или SICP (хотя можешь попробовать [http://maria.cloud/](http://maria.cloud/) ).

— Обязательно знать джаву и жс?
На уровне чтения документации.

— Как без классов представлять бизнес-сущности?
Используй хэшмапы, namespaced keywords и spec. Не поддавайся искушению создавать рекорды на каждый чих. Все есть _данные_. IT'S JUST D A T A

— Что по скорости?
Зависит от задачи. В среднем - медленнее скалы, быстрее рубипитонов.

— Печатаю элементы последовательности, а они не печатаются, ЧЯДНТ?
Ленивость + сайд-эффекты => используй doall или dorun.

— Итерируюсь по большой последовательности и получаю OutOfMemoryException, ЧЯДНТ?
[https://clojure.org/reference/lazy#_don_t_hang_onto_your_head](https://clojure.org/reference/lazy#_don_t_hang_onto_your_head)

— DSL - круто! Можно теперь все API делать на макросах?
The first rule of macro club is: "Don't write macros".

— Че там по пост-иронии?
[https://www.youtube.com/watch?v=jlPaby7suOc](https://www.youtube.com/watch?v=jlPaby7suOc)

— Батя одобряет?
Да: [https://www.youtube.com/watch?v=-ktUXFxkSkI&t=25m25s](https://www.youtube.com/watch?v=-ktUXFxkSkI&t=25m25s)

7 3 апр, 22:53 7 3678979

; Добро пожаловать в очередной тред самого высокооплачиваемого языка в мире!
(swap! threads update-in [:clojure :count] inc)

https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f

Кто использует clojure в продакшне?
Walmart, CircleCI, Heroku, Puppet, Netflix, Soundcloud, Spotify, Facebook, Groupon, Red Hat, Oracle, Сбербанк.

Какие приложения написаны на clojure?
Walmart eReceipts - бэкенд обработки данных о покупках во всех отделениях Walmart для их мобильного приложения.
[https://www.datomic.com](https://www.datomic.com) - распределенная транзакционная база данных с языком запросов на основе datalog.
[https://roamresearch.com](https://roamresearch.com) - самый трендовый инструмент для ведения личных заметок и создания баз знаний (zettelkasten и прочие баззворды добавить по желанию)
[https://github.com/athensresearch/athens](https://github.com/athensresearch/athens) - то же, но без облака
[https://status.im](https://status.im) - мобильная блокчейн ОС на основе Ethereum'а и тулкит для создания p2p-приложений.
[http://lighttable.com](http://lighttable.com) - расширяемая интерактивная IDE для clojure, python и javascript.
[https://precursorapp.com](https://precursorapp.com) - инструмент для коллективного прототипирования онлайн (рекомендую попробовать, зависимость есть).
[http://circleci.com](http://circleci.com) - Continuous Integration and Delivery. Бэкенд и фронтенд на clojure+clojurescript.
[http://braid.chat/](http://braid.chat/) - более лучший слак, опенсорсный и с историей (альфа).
[http://maria.cloud/](http://maria.cloud/) - интерактивная онлайн-IDE для обучения программированию.
[https://defold.com](https://defold.com) - редактор для игрового движка.

TL;DR
Начать: [http://maria.cloud/](http://maria.cloud/)
Читать: [https://www.braveclojure.com](https://www.braveclojure.com)
Решать: [http://www.4clojure.com](http://www.4clojure.com)
Онлайн: [https://repl.it/site/languages/clojure](https://repl.it/site/languages/clojure)
Офлайн: [https://leiningen.org](https://leiningen.org)
Зомби: [http://www.parens-of-the-dead.com/](http://www.parens-of-the-dead.com/)
Гайды: [https://clojure.org/guides/getting_started](https://clojure.org/guides/getting_started)
Доки: [https://clojure.org/reference/documentation](https://clojure.org/reference/documentation)
Стайлгайд: [https://github.com/bbatsov/clojure-style-guide](https://github.com/bbatsov/clojure-style-guide)
IDE: [https://practicalli.github.io/clojure/development-tools/install-guides/](https://practicalli.github.io/clojure/development-tools/install-guides/)

Clojurescript
[https://clojurescript.org](https://clojurescript.org)
[https://figwheel.org](https://figwheel.org)
[https://github.com/Day8/re-frame](https://github.com/Day8/re-frame)

Документация
[https://cljdoc.org/](https://cljdoc.org/)
[https://clojuredocs.org/](https://clojuredocs.org/)
[https://clojure.org/api/cheatsheet](https://clojure.org/api/cheatsheet) && [https://cljs.info/cheatsheet/](https://cljs.info/cheatsheet/)
[https://clojure.org/reference/documentation](https://clojure.org/reference/documentation)
[http://clojure-doc.org](http://clojure-doc.org)

Задачи
[http://www.4clojure.com](http://www.4clojure.com)
[http://clojurekoans.com](http://clojurekoans.com)
[http://clojurescriptkoans.com](http://clojurescriptkoans.com)
[http://exercism.io/languages/clojure/about](http://exercism.io/languages/clojure/about)

Видео
[https://github.com/tallesl/Rich-Hickey-fanclub#talks](https://github.com/tallesl/Rich-Hickey-fanclub#talks)
[https://www.youtube.com/user/ClojureTV](https://www.youtube.com/user/ClojureTV)

Комьюнити
[https://ask.clojure.org/](https://ask.clojure.org/)
[http://clojurians.slack.com/](http://clojurians.slack.com/)
[https://clojureverse.org/](https://clojureverse.org/)
[https://www.reddit.com/r/Clojure/](https://www.reddit.com/r/Clojure/)
#clojure @ [irc.freenode.net](http://irc.freenode.net)
[https://groups.google.com/forum/#!forum/clojure](https://groups.google.com/forum/#!forum/clojure)
[https://stackoverflow.com/questions/tagged/clojure](https://stackoverflow.com/questions/tagged/clojure)

Блоги
Еженедельник: [https://therepl.net](https://therepl.net)
Все блоги: [http://planet.clojure.in](http://planet.clojure.in)
Производительность: [http://clojure-goes-fast.com](http://clojure-goes-fast.com)
Оффтоп: [http://tonsky.me/](http://tonsky.me/)

IDE
[https://cursive-ide.com](https://cursive-ide.com)
[https://docs.cider.mx/cider/index.html](https://docs.cider.mx/cider/index.html)
[https://github.com/tpope/vim-fireplace](https://github.com/tpope/vim-fireplace) || [https://github.com/Olical/conjure/](https://github.com/Olical/conjure/)
[http://lighttable.com](http://lighttable.com)
[http://nightcoders.net](http://nightcoders.net) || [https://sekao.net/nightcode](https://sekao.net/nightcode) || [https://sekao.net/lightmod](https://sekao.net/lightmod)
[https://shaunlebron.github.io/parinfer/](https://shaunlebron.github.io/parinfer/)

Библиотеки
[https://clj-templates.com](https://clj-templates.com)
[https://clojars.org](https://clojars.org) || [https://www.clojure-toolbox.com](https://www.clojure-toolbox.com) || [https://cljdoc.xyz](https://cljdoc.xyz)
Web: [http://www.luminusweb.net](http://www.luminusweb.net) || [https://github.com/duct-framework/duct](https://github.com/duct-framework/duct) || [http://pedestal.io](http://pedestal.io)
Express/Flask/Sinatra: [https://learnxinyminutes.com/docs/compojure](https://learnxinyminutes.com/docs/compojure) || [https://metosin.github.io/reitit](https://metosin.github.io/reitit)
REST: [https://clojure-liberator.github.io/liberator/](https://clojure-liberator.github.io/liberator/)
App Server: [http://aleph.io](http://aleph.io) || [http://immutant.org](http://immutant.org) || [http://http-kit.org](http://http-kit.org)
DI: [https://github.com/weavejester/integrant](https://github.com/weavejester/integrant) || [https://github.com/stuartsierra/component](https://github.com/stuartsierra/component) || [https://github.com/tolitius/mount](https://github.com/tolitius/mount) || [https://aroemers.github.io/mount-lite](https://aroemers.github.io/mount-lite)
SQL: [https://github.com/layerware/hugsql](https://github.com/layerware/hugsql) || [https://walkable.gitlab.io](https://walkable.gitlab.io)
UI (cljs): [https://github.com/Day8/re-frame](https://github.com/Day8/re-frame) || [https://github.com/tonsky/rum](https://github.com/tonsky/rum) || [https://github.com/omcljs/om](https://github.com/omcljs/om)
HTML: [https://github.com/weavejester/hiccup](https://github.com/weavejester/hiccup) || [https://github.com/cgrand/enlive](https://github.com/cgrand/enlive)
Macros: [https://github.com/cgrand/macrovich](https://github.com/cgrand/macrovich)
Magic: [https://github.com/nathanmarz/specter](https://github.com/nathanmarz/specter)
Spec: [https://github.com/bhb/expound](https://github.com/bhb/expound) || [https://github.com/jeaye/orchestra](https://github.com/jeaye/orchestra)
Test: [https://github.com/clojure/test.generative](https://github.com/clojure/test.generative)

FAQ

— СКОБКИ!!11
[http://clochure.org/](http://clochure.org/)

— Кейворды?..
[https://clojure.org/guides/faq#why_keywords](https://clojure.org/guides/faq#why_keywords)

— Common Lisp же есть, нинужна!!1
Просто _съеби_.

— Что нужно для вкатывания?
Знать английский, не быть тупым, иметь опыт программирования.

— Хочу начать изучать программирование, clojure мне подойдет?
Лучше сперва возьми PLT Racket и читай [http://htdp.org](http://htdp.org) или SICP (хотя можешь попробовать [http://maria.cloud/](http://maria.cloud/) ).

— Обязательно знать джаву и жс?
На уровне чтения документации.

— Как без классов представлять бизнес-сущности?
Используй хэшмапы, namespaced keywords и spec. Не поддавайся искушению создавать рекорды на каждый чих. Все есть _данные_. IT'S JUST D A T A

— Что по скорости?
Зависит от задачи. В среднем - медленнее скалы, быстрее рубипитонов.

— Печатаю элементы последовательности, а они не печатаются, ЧЯДНТ?
Ленивость + сайд-эффекты => используй doall или dorun.

— Итерируюсь по большой последовательности и получаю OutOfMemoryException, ЧЯДНТ?
[https://clojure.org/reference/lazy#_don_t_hang_onto_your_head](https://clojure.org/reference/lazy#_don_t_hang_onto_your_head)

— DSL - круто! Можно теперь все API делать на макросах?
The first rule of macro club is: "Don't write macros".

— Че там по пост-иронии?
[https://www.youtube.com/watch?v=jlPaby7suOc](https://www.youtube.com/watch?v=jlPaby7suOc)

— Батя одобряет?
Да: [https://www.youtube.com/watch?v=-ktUXFxkSkI&t=25m25s](https://www.youtube.com/watch?v=-ktUXFxkSkI&t=25m25s)

Показать весь текст
Ответы79085

sage 8 4 апр, 09:34 8 3679085

>>3678979
Дурак, это ОП-паста для бототреда, зачем ты её в существующий бототред запостил? -15

9 6 апр, 19:36 9 3680849

Скоро выходит документалка про Clojure
https://www.youtube.com/watch?v=JJEyffSdBsk

Ответы81006

sage 10 7 апр, 05:30 10 3681006

>>3680849
Ютуб не работает против армии, сынок.

Обновить тред
« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion