«Почему Clojure?» | Николай Рыжиков

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ส.ค. 2022
  • Clojure - царица динамических языков или практичный FP. Введение в прагматичное функциональное программирование на лиспе в JVM c JS.
    Напоминаем, что Health Samurai на постоянной основе ищут единомышленников!
    Если ты начал свой путь в Clojure и хочешь активно развиваться, то заходи к нам и расскажи о себе: www.health-samurai.io/jobs/form
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 44

  • @user-ym9fp2je8u
    @user-ym9fp2je8u ปีที่แล้ว +6

    Николай, спасибо вам большое за интересный ликбез по Clojure! После вашего доклада захотелось эту технологию опробовать :)

    • @healthsamuraiteam
      @healthsamuraiteam  ปีที่แล้ว +1

      Виктор, спасибо за фидбек!)
      Мы всегда рады общению и будем рады, если поделитесь своим интересом! Сможем подкинуть полезных материалов ;)
      Можете написать нам на почту: hr@health-samurai.io

  • @georgytoporkov2041
    @georgytoporkov2041 10 หลายเดือนก่อน

    одно из лучших вводных видео по теме кложе! больше бы таких - больше бы людей подтянулось, мне кажется, не так давно занялся кложей после хаскеля (хотя обидно, конечно, что тут хаскель как-то так себе упомянули:)). Николаю - уважение

  • @alexandrkondratyev5379
    @alexandrkondratyev5379 ปีที่แล้ว

    браво

  • @dmitryaflitonov7984
    @dmitryaflitonov7984 ปีที่แล้ว +1

    Спасибо за доклад! Какие основные недостатки или проблемы видите в Clojure?

  • @hateman31
    @hateman31 ปีที่แล้ว

    Люблю кложу. Репл постараюсь осилить.
    Простой sql это здорово, но что делать когда есть большая бизнес-логика, которую тащить в приложение не выгодно?
    Какие-то регулярные расчеты, типа кредитов. Обычно делают хранимки в базе. Но здесь же придётся сырой sql тащить в код - не круто. Есть ли решение красивше honeyql ? Видел Toucan, но он тоже только для простых операций.

  • @artyomminsk8180
    @artyomminsk8180 ปีที่แล้ว

    кайф

  • @sighupcmd
    @sighupcmd ปีที่แล้ว +1

    Было интересно узнать, что STM редко используется, спасибо! А с агентами как дела обстоят? :)

    • @niquolaj
      @niquolaj ปีที่แล้ว +1

      Агенты часто используются чтобы сериализовать доступ к ресурсам типа записи многопоточных логов в файл

  • @aronin4392
    @aronin4392 ปีที่แล้ว +1

    Вечер добрый. Хочу спросить: есть ли смысл учить clojure в качестве первого яп? Или предварительно лучше начать с java, т.к., как я понял, код на clojure будет исполняться на jwm? Исходные данные: гуманитарий без технического бекграунда.

    • @erriour
      @erriour ปีที่แล้ว +4

      Лучше сначала выучи что попроще и приветливее: Java, C#, Python. Сначала нужны алгоритмы и структуры, которые тут вычленить сильно сложнее (да и в функциональном программировании в принципе). А то тут даже будучи программистом со стажем не особо четко понятно. Тем более тут тебе сходу грузят про потоки и имутабельность говорят, будет точно непонятно)

    • @aronin4392
      @aronin4392 ปีที่แล้ว

      @@erriour Благодарю.

    • @niquolaj
      @niquolaj ปีที่แล้ว +3

      Да - но java и js придётся выучить в параллель - будет неплохой комбо. У нас в компании много инженеров у которых clojure первый профессиональный язык

    • @erriour
      @erriour ปีที่แล้ว

      @@niquolaj и в этом нет ничего плохого, алгоритмы везде одинаковые, а язык выступает лишь инструментом для реализации этих алгоритмов

    • @scpmr
      @scpmr 11 หลายเดือนก่อน

      Начинай с ассемблера. Хотя бы основы. Ну и основы архитектуры процессора и компьютера. Чтобы понимать что на самом деле происходит в компьютере когда он твою программу выполняет. Потом язык программирования C. Он простой и небольшой. Это обязательно. Потом уже что-то выше уровнем. Java, C#

  • @WMakeev
    @WMakeev ปีที่แล้ว

    Я пока одного не могу понять, как быть с рефакторингом в языке с динамической типизацией?

    • @niquolaj
      @niquolaj ปีที่แล้ว

      Ну классический ответ это функциональные тесты! Современные ide дают инструменты не сильно уступающие static typed.

    • @hateman31
      @hateman31 ปีที่แล้ว +4

      а чо там рефакторить?

    • @AnarchySane
      @AnarchySane 8 หลายเดือนก่อน

      А в JS рефакторинг нет что ли?))) В Python?)))

  • @Lov3Catch
    @Lov3Catch ปีที่แล้ว

    Что скажете про racket? Начал тыкать его после первых глав SICP, пока заходит без особой боли (например F# вообще не зашел). Нормально ли он в качестве прелюдии перед переходом в clojure?

    • @niquolaj
      @niquolaj ปีที่แล้ว

      racket академический полигон - хороший язык. А почему не сразу clojure?

    • @Lov3Catch
      @Lov3Catch ปีที่แล้ว +3

      ​@@niquolaj на первом этапе хочу погрузиться в мир лиспов, но так что бы не отвлекаться на окружение (пакетный менеджер, текстовый редактор и его настройку для ЯП, и тд). Субъективно, но что бы запустить racket и начать экспериментировать - у меня меньше стоп-факторов, чем в clojure, DrRacket - пока все что мне нужно.
      Для себя уже решил что все свои пет-проекты, перепишу на Racket (ранее писал на питоне, затем переписал на пхп), потом наверное на Clojure.
      К слову - благодаря вам интерес к лиспам усиливается.

    • @nonamenobody2795
      @nonamenobody2795 ปีที่แล้ว

      Ракет компилится в натив. Бинарник около двадцати мб на винде. Вполне приемлемо. Сколько будет на кложе если проннать через натив имедж?

  • @rinatvaliullov3247
    @rinatvaliullov3247 ปีที่แล้ว +4

    А царь - JS? )

  • @swaytornado8327
    @swaytornado8327 ปีที่แล้ว

    В веб-разработке лидирующие позиции занимают React на фронте и Laravel на бэке. Не последнее место и у Node.js. Вы сказали, что Clojure вершина динамических языков. Если его использовать для веба, основной выигрыш это скорость, и в чем ещё плюс его? Вакансий я не видел, так много, как на вышеуказанные технологии. И как он в сравнении с Haskell. Спасибо. Видео очень интересное. И я сам всеми руками за функциональные ЯП, хотя пока что преобладают ООП парадигмы. Спасибо.

    • @niquolaj
      @niquolaj ปีที่แล้ว +2

      Привет, скорость, ФП, интерактивная разработка через REPL. Вакансий не много, но они есть и часто это проекты "от души" и команды с "сильной инженерной культурой".

    • @niquolaj
      @niquolaj ปีที่แล้ว +4

      Clojure на порядок "проще" Haskell. К сожалению есть заблуждение что ФП это Haskell. 80 процентов сложности Haskell это система типов - которая не является существенной для ФП и усложняет знакомство. Haskell был придуман академиками, clojure - инженером!

    • @swaytornado8327
      @swaytornado8327 ปีที่แล้ว +1

      @@niquolaj спасибо вам большое за ответы. буду с нетерпением ждать новых видео. спасибо.

    • @swaytornado8327
      @swaytornado8327 ปีที่แล้ว

      А для разработки на Windows 11 на чём лучше писать код, нужно что-то специально устанавливать? Мне Clojure понравился, но вы правильно подметили, что перед тем, как приступить к его обучению, нужно немного разобраться в близлежащих темах, расширить свой кругозор. И поработать с другими технологиями. А чистый код на Java тоже применяется в работе?

    • @user-pi6mt1lv7l
      @user-pi6mt1lv7l ปีที่แล้ว +1

      @@swaytornado8327 vs code + calve + Leiningen

  • @olezhonnv3215
    @olezhonnv3215 ปีที่แล้ว +1

    Концептуально - интересно.
    Но синтаксис, и стиль написания - дичь!
    Это реально - искусство!
    Главное, во фронт не тяните. Дет там, сидите - малюйте свои скобочки.
    Людям голову не задуривайте.

    • @georgytoporkov2041
      @georgytoporkov2041 10 หลายเดือนก่อน +1

      синтаксису больше шестидясети лет :) сразу видно - говнокодеры-аникейщики подтянулись, ни кругозора, ни понимания функции в математическом смысле

  • @olezhonnv3215
    @olezhonnv3215 ปีที่แล้ว +2

    Шоб вы все здоровыми были со своей кложурой!
    Только ради Бога, ну не тяните эту дичь во фронт!

    • @hateman31
      @hateman31 ปีที่แล้ว

      А что надо тянуть на фронт? Пайтон и дотнет уже вплотную к нему подошли))

    • @olezhonnv3215
      @olezhonnv3215 ปีที่แล้ว +1

      @@hateman31 На фронте все есть уже - JavaScript называется.
      Хотя, я, к примеру, решил все таки разобраться с Кложурой.
      Чтобы выйти за рамки привычного.

    • @hateman31
      @hateman31 ปีที่แล้ว

      @@olezhonnv3215 джаваскрипт, который ecmascript, у которого куча версий , и постоянно зоопарк фреймворков и библиотек. Этот?

  • @olezhonnv3215
    @olezhonnv3215 ปีที่แล้ว +2

    Вот зачем оборачивать скобками все функции?
    Это ФП - такая дичь,ивыглядит, как набор слов! Безсвязный!
    Все с ног на голову перевернули!
    Жесть! Чур вас всех!

    • @olezhonnv3215
      @olezhonnv3215 ปีที่แล้ว +2

      Куча скобок, в скобках, двоеточия - идите бинарники кодьте сразу, прямо хексом!

    • @healthsamuraiteam
      @healthsamuraiteam  ปีที่แล้ว

      Это дело привычки) Тот, кто откроет для себя возможности ФП, останется доволен, а к синтаксису быстро привыкаешь)

    • @niquolaj
      @niquolaj ปีที่แล้ว +2

      Посчитай в js/ts знаки препинания и удивись - их окажется больше (){}==![],;:

    • @erriour
      @erriour ปีที่แล้ว +1

      @@niquolaj справедливости ради, там всё намного понятнее. А гнатся за уменьшением символов - это уже шиза) С учетом того, что программист 80-90% времени думает, а не пишет код

    • @niquolaj
      @niquolaj ปีที่แล้ว +1

      @@erriour это реально дело привычки - конечно вы годами с молоком матери впитывали с-подобный синтакс ;) но если взглянуть свежим взглядом ... lisp это как понять матрицу - пишем и редактируем АСТ.