Clojure: расскажите чутка про язык?
Добрый день :)
Сразу говорю что готов к закидыванию какахами. Кидайте на здоровье, главное объясните пожалуйста.
Что за такой язык Clojure, какие в нём особенности, на какой язык больше всего похож его синтаксис/логика, и легко ли на него перейти с Java?
Заранее благодарен :)
12 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівОдин из альтернативных языков на JVM, из тех что сейчас в ходу — наименее популярный.
Любят его за то что:
— это лисп — гомоиконность, макросы, вот это вот все
— создатель Rich Hickey толкает здравые идеи и развивает язык, выступает за простоту в реализации и вообще пытается всячески влиять на мир программирования проповедуя собственные идеи
— можно использовать либы и тулы JVM экосистемы, производительность поэтому тоже неплохая
— есть REPL который позволяет быстро прототипировать и проверять гипотезы
— есть вариант писать full-stack с помощью ClojureScript
Не любят за то что:
— это лисп :) писать-читать код нужно иначе, изнутри-наружу, синтаксис отсутствует, программисты пишут AST руками
— Динамическая типизация имеет свои недостатки, читать-поддерживать код сложнее, особо в команде из более чем пару человек
— слабая популярность играет злую шутку с наймом, кложуристов мало и не особо прибавляется потому что опять же не самый популярный язык/стек
С Java сложно перейти тем кто кроме джавы ничего не видел. Легче будет перейти тем кто интересуется ФП, пробовал альтернативные языки или может сталкивался с лиспами.
Для себя я так и не придумал применения для этого языка кроме обучения другой парадигме. Для команд который пишут на Java переход не имеет смысла. Каких-то киллер-продуктов типа спарка для скалы, в мире clojure я также не вижу. Единственный вариант когда в этом есть смысл — когда команда уже пишет на clojure, либо есть один ментор-кложурист, а все остальные очень хотят попробовать что-то необычное :)
Если интересует ФП при этом хочется применять его в работе — советую посмотреть на Scala, это единственный мейнстрим язык с серьезной его поддержкой.
Особенности:
— один из диалектов лиспа
— заточен под функциональное программирование
— есть реализация не только под JVM, но и под .NET (ClojureCLR), и диалект-компилятор под джаваскрипт (ClojureScript)
— Испытал влияние: Lisp, ML, Haskell, Erlang, Prolog, Scheme, Java, Ruby © википедия
Более подробно можно на той же википедии почитать. :-)
Хз. Кложа все-таки функциональщина, а джава — ООП (хотя в джаве многие концепции из ФП тоже вроде реализованы уже). Поэтому думаю тут индивидуально смотреть надо — насколько быстро освоишься в новом языке с парадигмой, отличной от джавовской. Но в целом думаю наверное все-таки сложновато будет переходить.
Спасибо! :)
З імперативного на функціональне програмування переходити infamously важко. Що з Java на Clojure, що з C++ на Haskell, що з Паскаля на LISP.
Спасибо! :)
Функциональный язык с динамической типизацией.
Lisp
Если есть только цель перейти на функциональный язык, но нет цели перейти именно на динамическую типизацию (динамика хороша, если нужно писать какой-то DSL или работать с очень неструктурированным доменом и данными), то может стоит посмотреть в сторону Scala?
Вообще, мне нравится сам Rich Hickey как speaker. Его «Simple made Easy» один из моих самых любимых докладов ever: m.youtube.com/watch?v=kGlVcSMgtV4
И этого достаточно чтобы с ним не связываться
Спасибо! :)
youtube.com/watch?v=QUfau7U5WhA?t=18
Спасибо! :-DDD
Была статья на эту тему:
dou.ua/forums/topic/32578
Спасибо!!