Clojure: расскажите чутка про язык?

Добрый день :)

Сразу говорю что готов к закидыванию какахами. Кидайте на здоровье, главное объясните пожалуйста.

Что за такой язык Clojure, какие в нём особенности, на какой язык больше всего похож его синтаксис/логика, и легко ли на него перейти с Java?

Заранее благодарен :)

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Один из альтернативных языков на JVM, из тех что сейчас в ходу — наименее популярный.
Любят его за то что:
— это лисп — гомоиконность, макросы, вот это вот все
— создатель Rich Hickey толкает здравые идеи и развивает язык, выступает за простоту в реализации и вообще пытается всячески влиять на мир программирования проповедуя собственные идеи
— можно использовать либы и тулы JVM экосистемы, производительность поэтому тоже неплохая
— есть REPL который позволяет быстро прототипировать и проверять гипотезы
— есть вариант писать full-stack с помощью ClojureScript
Не любят за то что:
— это лисп :) писать-читать код нужно иначе, изнутри-наружу, синтаксис отсутствует, программисты пишут AST руками
— Динамическая типизация имеет свои недостатки, читать-поддерживать код сложнее, особо в команде из более чем пару человек
— слабая популярность играет злую шутку с наймом, кложуристов мало и не особо прибавляется потому что опять же не самый популярный язык/стек

С Java сложно перейти тем кто кроме джавы ничего не видел. Легче будет перейти тем кто интересуется ФП, пробовал альтернативные языки или может сталкивался с лиспами.
Для себя я так и не придумал применения для этого языка кроме обучения другой парадигме. Для команд который пишут на Java переход не имеет смысла. Каких-то киллер-продуктов типа спарка для скалы, в мире clojure я также не вижу. Единственный вариант когда в этом есть смысл — когда команда уже пишет на clojure, либо есть один ментор-кложурист, а все остальные очень хотят попробовать что-то необычное :)
Если интересует ФП при этом хочется применять его в работе — советую посмотреть на Scala, это единственный мейнстрим язык с серьезной его поддержкой.

Что за такой язык Clojure, какие в нём особенности, на какой язык больше всего похож его синтаксис/логика

Особенности:
— один из диалектов лиспа
— заточен под функциональное программирование
— есть реализация не только под JVM, но и под .NET (ClojureCLR), и диалект-компилятор под джаваскрипт (ClojureScript)
— Испытал влияние: Lisp, ML, Haskell, Erlang, Prolog, Scheme, Java, Ruby © википедия
Более подробно можно на той же википедии почитать. :-)

легко ли на него перейти с Java?

Хз. Кложа все-таки функциональщина, а джава — ООП (хотя в джаве многие концепции из ФП тоже вроде реализованы уже). Поэтому думаю тут индивидуально смотреть надо — насколько быстро освоишься в новом языке с парадигмой, отличной от джавовской. Но в целом думаю наверное все-таки сложновато будет переходить.

легко ли на него перейти с Java?

З імперативного на функціональне програмування переходити infamously важко. Що з Java на Clojure, що з C++ на Haskell, що з Паскаля на LISP.

Что за такой язык Clojure, какие в нём особенности

Функциональный язык с динамической типизацией.

на какой язык больше всего похож его синтаксис/логика

Lisp

легко ли на него перейти с Java?

Если есть только цель перейти на функциональный язык, но нет цели перейти именно на динамическую типизацию (динамика хороша, если нужно писать какой-то DSL или работать с очень неструктурированным доменом и данными), то может стоит посмотреть в сторону Scala?

Вообще, мне нравится сам Rich Hickey как speaker. Его «Simple made Easy» один из моих самых любимых докладов ever: m.youtube.com/watch?v=kGlVcSMgtV4

динамической типизацией

И этого достаточно чтобы с ним не связываться

Подписаться на комментарии