«Почему Clojure?» | Николай Рыжиков
ฝัง
- เผยแพร่เมื่อ 2 ส.ค. 2022
- Clojure - царица динамических языков или практичный FP. Введение в прагматичное функциональное программирование на лиспе в JVM c JS.
Напоминаем, что Health Samurai на постоянной основе ищут единомышленников!
Если ты начал свой путь в Clojure и хочешь активно развиваться, то заходи к нам и расскажи о себе: www.health-samurai.io/jobs/form - วิทยาศาสตร์และเทคโนโลยี
Николай, спасибо вам большое за интересный ликбез по Clojure! После вашего доклада захотелось эту технологию опробовать :)
Виктор, спасибо за фидбек!)
Мы всегда рады общению и будем рады, если поделитесь своим интересом! Сможем подкинуть полезных материалов ;)
Можете написать нам на почту: hr@health-samurai.io
одно из лучших вводных видео по теме кложе! больше бы таких - больше бы людей подтянулось, мне кажется, не так давно занялся кложей после хаскеля (хотя обидно, конечно, что тут хаскель как-то так себе упомянули:)). Николаю - уважение
браво
Спасибо за доклад! Какие основные недостатки или проблемы видите в Clojure?
Люблю кложу. Репл постараюсь осилить.
Простой sql это здорово, но что делать когда есть большая бизнес-логика, которую тащить в приложение не выгодно?
Какие-то регулярные расчеты, типа кредитов. Обычно делают хранимки в базе. Но здесь же придётся сырой sql тащить в код - не круто. Есть ли решение красивше honeyql ? Видел Toucan, но он тоже только для простых операций.
кайф
Было интересно узнать, что STM редко используется, спасибо! А с агентами как дела обстоят? :)
Агенты часто используются чтобы сериализовать доступ к ресурсам типа записи многопоточных логов в файл
Вечер добрый. Хочу спросить: есть ли смысл учить clojure в качестве первого яп? Или предварительно лучше начать с java, т.к., как я понял, код на clojure будет исполняться на jwm? Исходные данные: гуманитарий без технического бекграунда.
Лучше сначала выучи что попроще и приветливее: Java, C#, Python. Сначала нужны алгоритмы и структуры, которые тут вычленить сильно сложнее (да и в функциональном программировании в принципе). А то тут даже будучи программистом со стажем не особо четко понятно. Тем более тут тебе сходу грузят про потоки и имутабельность говорят, будет точно непонятно)
@@erriour Благодарю.
Да - но java и js придётся выучить в параллель - будет неплохой комбо. У нас в компании много инженеров у которых clojure первый профессиональный язык
@@niquolaj и в этом нет ничего плохого, алгоритмы везде одинаковые, а язык выступает лишь инструментом для реализации этих алгоритмов
Начинай с ассемблера. Хотя бы основы. Ну и основы архитектуры процессора и компьютера. Чтобы понимать что на самом деле происходит в компьютере когда он твою программу выполняет. Потом язык программирования C. Он простой и небольшой. Это обязательно. Потом уже что-то выше уровнем. Java, C#
Я пока одного не могу понять, как быть с рефакторингом в языке с динамической типизацией?
Ну классический ответ это функциональные тесты! Современные ide дают инструменты не сильно уступающие static typed.
а чо там рефакторить?
А в JS рефакторинг нет что ли?))) В Python?)))
Что скажете про racket? Начал тыкать его после первых глав SICP, пока заходит без особой боли (например F# вообще не зашел). Нормально ли он в качестве прелюдии перед переходом в clojure?
racket академический полигон - хороший язык. А почему не сразу clojure?
@@niquolaj на первом этапе хочу погрузиться в мир лиспов, но так что бы не отвлекаться на окружение (пакетный менеджер, текстовый редактор и его настройку для ЯП, и тд). Субъективно, но что бы запустить racket и начать экспериментировать - у меня меньше стоп-факторов, чем в clojure, DrRacket - пока все что мне нужно.
Для себя уже решил что все свои пет-проекты, перепишу на Racket (ранее писал на питоне, затем переписал на пхп), потом наверное на Clojure.
К слову - благодаря вам интерес к лиспам усиливается.
Ракет компилится в натив. Бинарник около двадцати мб на винде. Вполне приемлемо. Сколько будет на кложе если проннать через натив имедж?
А царь - JS? )
В веб-разработке лидирующие позиции занимают React на фронте и Laravel на бэке. Не последнее место и у Node.js. Вы сказали, что Clojure вершина динамических языков. Если его использовать для веба, основной выигрыш это скорость, и в чем ещё плюс его? Вакансий я не видел, так много, как на вышеуказанные технологии. И как он в сравнении с Haskell. Спасибо. Видео очень интересное. И я сам всеми руками за функциональные ЯП, хотя пока что преобладают ООП парадигмы. Спасибо.
Привет, скорость, ФП, интерактивная разработка через REPL. Вакансий не много, но они есть и часто это проекты "от души" и команды с "сильной инженерной культурой".
Clojure на порядок "проще" Haskell. К сожалению есть заблуждение что ФП это Haskell. 80 процентов сложности Haskell это система типов - которая не является существенной для ФП и усложняет знакомство. Haskell был придуман академиками, clojure - инженером!
@@niquolaj спасибо вам большое за ответы. буду с нетерпением ждать новых видео. спасибо.
А для разработки на Windows 11 на чём лучше писать код, нужно что-то специально устанавливать? Мне Clojure понравился, но вы правильно подметили, что перед тем, как приступить к его обучению, нужно немного разобраться в близлежащих темах, расширить свой кругозор. И поработать с другими технологиями. А чистый код на Java тоже применяется в работе?
@@swaytornado8327 vs code + calve + Leiningen
Концептуально - интересно.
Но синтаксис, и стиль написания - дичь!
Это реально - искусство!
Главное, во фронт не тяните. Дет там, сидите - малюйте свои скобочки.
Людям голову не задуривайте.
синтаксису больше шестидясети лет :) сразу видно - говнокодеры-аникейщики подтянулись, ни кругозора, ни понимания функции в математическом смысле
Шоб вы все здоровыми были со своей кложурой!
Только ради Бога, ну не тяните эту дичь во фронт!
А что надо тянуть на фронт? Пайтон и дотнет уже вплотную к нему подошли))
@@hateman31 На фронте все есть уже - JavaScript называется.
Хотя, я, к примеру, решил все таки разобраться с Кложурой.
Чтобы выйти за рамки привычного.
@@olezhonnv3215 джаваскрипт, который ecmascript, у которого куча версий , и постоянно зоопарк фреймворков и библиотек. Этот?
Вот зачем оборачивать скобками все функции?
Это ФП - такая дичь,ивыглядит, как набор слов! Безсвязный!
Все с ног на голову перевернули!
Жесть! Чур вас всех!
Куча скобок, в скобках, двоеточия - идите бинарники кодьте сразу, прямо хексом!
Это дело привычки) Тот, кто откроет для себя возможности ФП, останется доволен, а к синтаксису быстро привыкаешь)
Посчитай в js/ts знаки препинания и удивись - их окажется больше (){}==![],;:
@@niquolaj справедливости ради, там всё намного понятнее. А гнатся за уменьшением символов - это уже шиза) С учетом того, что программист 80-90% времени думает, а не пишет код
@@erriour это реально дело привычки - конечно вы годами с молоком матери впитывали с-подобный синтакс ;) но если взглянуть свежим взглядом ... lisp это как понять матрицу - пишем и редактируем АСТ.