Рубрики
Без рубрики

Почему я решил учиться (и учить) Clojure

В 2017 году я начал углубляться в мир Функционального Программирования. Эта парадигма уже заработал… С тегом clojure, функциональный, java.

В 2017 году я начал углубляться в мир Функционального Программирования. Эта парадигма уже заработал довольно большую популярность, и все чаще основные языки программирования объектно-ориентированных включали ресурсов, вдохновленные этой парадигмы, в том числе язык, который я использовал: Java.

После выхода версии 8 JDK, в марте 2014 года, стал все чаще слышу, как люди разработчиков Java, используя такие термины, как: функциональное программирование, streams , , необязательно , карта ,

После долгих проб и ошибок, я решил углубиться в понятия. Книга Functional Thinking помог мне сделать первые шаги в правильном направлении.

Параллельно решил изучать язык функциональный более чистым, а не пытаться применить парадигму функционального объектно-ориентированный язык. После поиска довольно, я решил учиться Вяз . Поскольку язык функциональный, чистый и неизменный привлекло мое внимание. Кроме того, она направлена на развитие библиотеки, и, до этого, я не нашел никакого решения для разработки веб-страниц, который мне понравился.

После прохождения всего Руководство введение в язык Вяз читать книгу Elm in Action , уже чувствовал себя вполне комфортно в разработке библиотеки, в этой парадигмы. Понравилось, как Elm, которую я создал проект, для программирования учить для начинающих, используя этот язык и disponibilizei первые классы на сайте elm.dev.br .

Но была серьезная проблема, что мне еще нужно признать: Elm-это язык, предназначенный для разработки библиотеки, и он работает очень хорошо для этого, но я искал решение общего назначения, который может использоваться также в развитии backends . Так что я вернулся к изучению альтернатив.

Elm-это язык, статически типизированный и вдохновленные Haskell . Естественным шагом было бы использовать Elm в интерфейс и Haskell в backend . И был то, что я пытался сделать. Я с трудом книги Научу Тебя Хаскеллу для Великого Блага! (бесплатно здесь ), и я узнал много прохладно. Но для создания backend полный используя Haskell оказался на один шаг больше, чем я мог дать в тот момент. Тогда я решил искать другие варианты…

В течение всего этого процесса слово Lisp не выходил из моей головы! Время от времени esbarrava в некоторых видео какой-нибудь человек влиятельный в обществе говорить о ней (например, это видео или twit жалость Джон Кармак основатель id Software ). Казалось, что-то мистическое. И тот факт, что Nubank приняли Clojure привел один пример, вполне реальный и разумный использования диалекта Lisp в Бразилии.

До этого был postergando изучать ее, потому что был приоритетных языки статически строго и диалекты самых известных Lisp являются динамическими языками. Но в начале 2021 года решил, наконец, дать шанс. Выбрал язык Clojure и я начал читать книги Получение Clojure . В отличие от моих исследований, Haskell, я смог прочитать эту книгу на несколько дней! Параллельно начал делать уроки Образование Clojure из Alura , которые помогли мне увидеть больше на практике, как программировать на этом языке. Это было хорошее сочетание: в книге я узнавал глубже понятия языка и в ход он эти понятия и учился часть немного больше практики.

Основные характеристики Clojure

Lisp не является языком программирования, но семейство языки разное диалектов . Диалекты наиболее известных включают Common Lisp , Clojure , Схема e Ракетка . Таким образом после решили, что будет учиться, Lisp, нужно выбрать один из его диалектов.

Clojure выделяется для меня по двум причинам:

  • он использует виртуальную машину Java, обеспечивая совместимость с приложениями Java (что, как я сказал в начале статьи, – это язык, который я использую в backend ).
  • она преимущественно использует парадигму функционального. Некоторые диалекты Lisp (как Common Lisp, например) multiparadigma, но, как моим намерением было углубляться в мир функционального программирования, было больше смысла, чтобы принять диалекте, что для этого желательно, чтобы эта парадигма.

Опыт программирования на Clojure был очень раскрепощает. Практический TDD junto com o Разработка на основе REPL (методика довольно широко распространена в сообщество Clojure), приводит к тому, что цикл отзывы есть очень быстро. Тот факт, Clojure быть динамический язык, также способствует этому.

Еще одна особенность Clojure-это быть язык нечистая , то есть, мы можем произвести побочные эффекты в любое время. Основным преимуществом этого является то, что делает язык проще учиться (хотя принесите с собой много других проблем, что не бывает языков чисто, как Вяз или Haskell). Писать статьи о Функции Чисто , где объясняю, лучше эту тему. Я записал видео объясняя, что Функция Чисто.

Хотя это язык нечистой, она поощряет ряд хороших практик, которые делают потенциальные проблемы такого подхода были значительно сокращены.

Как сделать первые шаги в Clojure

Все эти особенности, которые я привел в этой статье, делают Clojure, хотя внешний вид немного запугать в начале, это на самом деле очень проста в использовании. Почему я выбрал также этот язык, чтобы поделиться с другими разработчиков основ функциональное программирование .

Для тех, кто любит книги, рекомендую начать по Getting Clojure , которая, как сказал это отличный способ понять основные принципы, лежащие в Clojure, или, если вы предпочитаете бесплатный вариант вы можете начать онлайн-версия книги Клоджур для Храбрых и верных . Другой вариант больше ориентирован на основы парадигмы и что рассматриваются другие языки, кроме Clojure книги Функциональное мышление , у Нила Форда. Я записал podcast где я говорю немного об этой работе. Эти 3 книги на английском языке. Если вы хотите читать в интернете: издательство Ванная Код доступной для вас книги Функциональное Программирование: Введение в Clojure .

Если вы предпочитаете учиться по курсы online , вы можете записаться на мой курс Clojure: Введение в Функциональное Программирование . Или вы можете сделать следующие курсы Подготовки Clojure из Alura .

И вы, какой ваш парадигмы предпочтительным? Уже пробовали программировать с помощью функциональной парадигмы? Каковы были их основные трудности? Поделитесь своим опытом в комментариях!

Если вам понравился этот текст, возможно, понравятся мои другие статьи, видео и подкасты, доступные в понедельник.tech .

Оригинал: “https://dev.to/marciofrayze/por-que-decidi-aprender-e-ensinar-clojure-1j6m”