Двач.hk не отвечает.
Вы видите копию треда, сохраненную 19 января 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Clojure(Script) тред #2 /clojure/ 1342400 В конец треда | Веб
; Добро пожаловать в очередной тред самого высокооплачиваемого языка в мире!
(swap! threads update-in [:clojure :count] inc)

Кто использует clojure в продакшне?
Сбербанк, Walmart, CircleCI, Heroku, Puppet, Netflix, Soundcloud, Spotify, Facebook, Groupon, Red Hat, Oracle.

Какие приложения написаны на clojure?
Walmart eReceipts - бэкенд обработки данных о покупках во всех отделениях Walmart для их мобильного приложения.
https://www.datomic.com - распределенная транзакционная база данных с языком запросов на основе datalog.
http://status.im/ - мобильная блокчейн ОС на основе Ethereum'а и тулкит для создания p2p-приложений.
http://lighttable.com - расширяемая интерактивная IDE для clojure, python и javascript.
https://precursorapp.com - инструмент для коллективного прототипирования онлайн (рекомендую попробовать, зависимость есть).
http://circleci.com - Continuous Integration and Delivery. Бэкенд и фронтенд на clojure+clojurescript.
http://braid.chat/ - более лучший слак, опенсорсный и с историей (альфа).
http://putchar.org/ - реддит здорового человека (автор постит кучу интересных ссылок; алсо, код выложен на гитхабе).
http://maria.cloud/ - интерактивная онлайн-IDE для обучения программированию.

TL;DR
Начать: http://maria.cloud/
Читать: https://www.braveclojure.com
Решать: http://www.4clojure.com
Онлайн: https://repl.it/site/languages/clojure
Офлайн: https://leiningen.org
Зомби: http://www.parens-of-the-dead.com/
https://clojure.org/guides/getting_started
https://clojure.org/reference/documentation
https://github.com/bbatsov/clojure-style-guide

Clojurescript
https://clojurescript.org
https://figwheel.org
https://github.com/Day8/re-frame

Документация
https://clojuredocs.org/
https://clojure.org/api/cheatsheet && https://cljs.info/cheatsheet/
https://clojure.org/reference/documentation

Задачи
http://www.4clojure.com
http://clojurekoans.com
http://clojurescriptkoans.com
http://exercism.io/languages/clojure/about

Видео
https://github.com/tallesl/Rich-Hickey-fanclub#talks
https://www.youtube.com/user/ClojureTV

Комьюнити
https://www.reddit.com/r/Clojure/
https://clojureverse.org/
http://clojurians.slack.com/
#clojuR,ereANUSirc.freen$99odePUNCTUMnet
https://groups.google.com/forum/#!forum/clojure
https://stackoverflow.com/questions/tagged/clojure

Блоги
Еженедельник: https://therepl.net
Все блоги: http://planet.clojure.in
Производительность: http://clojure-goes-fast.com

IDE
https://cursive-ide.com
https://cider.readthedocs.io/en/latest
http://lighttable.com
http://nightcoders.net
https://sekao.net/nightcode && https://sekao.net/lightmod

Библиотеки
https://clojars.org && https://www.clojure-toolbox.com
Web: http://www.luminusweb.net || https://github.com/weavejester/compojure
App Server: http://immutant.org || http://aleph.io || http://http-kit.org/
DI: https://github.com/weavejester/integrant || https://github.com/stuartsierra/component || https://github.com/tolitius/mount
SQL: https://github.com/layerware/hugsql || https://walkable.gitlab.io
UI (cljs): https://github.com/Day8/re-frame || https://github.com/omcljs/om || https://github.com/tonsky/rum
HTML: https://github.com/weavejester/hiccup
Macros: https://github.com/cgrand/macrovich
Spec: https://github.com/bhb/expound && https://github.com/jeaye/orchestra
Test: https://github.com/clojure/test.generative && https://github.com/bensu/doo (cljs)

FAQ

— СКОБКИ!!11
http://clochure.org/

— Кейворды?..
https://clojure.org/guides/faq#why_keywords

— Common Lisp же есть, нинужна!!1
Просто съеби.

— Что нужно для вкатывания?
Знать английский, не быть тупым, иметь опыт программирования.

— Хочу начать изучать программирование, clojure мне подойдет?
Лучше сперва возьми PLT Racket и читай SICP + http://htdp.org

— Обязательно знать джаву и жс?
На уровне чтения документации.

— Как без классов представлять бизнес-сущности?
Используй хэшмапы, namespaced keywords и spec. Не поддавайся искушению создавать рекорды на каждый чих. Все есть данные.

— Что по скорости?
Зависит от задачи. В среднем - медленнее скалы, быстрее рубипитонов.

— Печатаю элементы последовательности, а они не печатаются, ЧЯДНТ?
Ленивость + сайд-эффекты => используй doall или dorun.

— Итерируюсь по большой последовательности и получаю OutOfMemoryException, ЧЯДНТ?
https://clojure.org/reference/lazy#_don_t_hang_onto_your_head

— DSL - круто! Можно теперь все API делать на макросах?
The first rule of macro club is: "Don't write macros".

— Че там по пост-иронии?
https://www.youtube.com/watch?v=jlPaby7suOc

— Батя одобряет?
Да: https://www.youtube.com/watch?v=-ktUXFxkSkI&t=25m25s
3 1342404
Паста про оценки по шкале от -5 до +5:

Clojure

>1. Применимость к реальному современному миру. На нём можно писать действительно полезные вещи, и люди это делают.


4. Можно писать интерпрайс (бэкенд walmart'а), можно веб-макакить (putchar.org), можно писать SPA в браузере (precursorapp.com, circleci, maria.cloud, braid.chat), можно писать десктоп (lighttable), можно писать мобильные приложения (status.im), с недавнего времени можно компилять в нативный код через graal. Единственный язык, который реально (а не для галочки) работает на jvm, clr и js платформах. Не подходит для байтоебства и систем, где критично минимальное потребление памяти, поэтому снимаем балл.

>2. Универсальность.


5. Смотри предыдущий пункт.

>3. Технологичекое качество и надёжность получаемых систем.


4. У комьюнити и создателей языка стронг фокус на разбиение разрабатываемой системы на независимые части, декларативное описание связей и датафлоу, минимизацию зависимостей и упрощение ризонинга о поведении системы (слово decomplect даже является эдаким местным мемчиком). Плюс из коробки есть мощная инфраструктура для тестирования (в том числе генеративного, на основе инвариантов) и контрактного программирования. Язык динамически типизированный, поэтому снимаем балл за отсутствие инструментов для формального доказательства свойств программ.

>4. Скорость разработки.


5. Главная фича языка - интерактивная разработка, горячая компиляция (hot reloading) и выполнение кода прямо внутри работающего приложения (в том числе задеплоенного в продакшн, можно подключиться своей ide к серверу и залить хотфикс, включить дебаггер или просто проверить текущее состояние процесса). Вся инфраструктура под это заточено, в комьюнити много инструментов, упрощающих написание reloadable кода. Пожалуй, это главный selling point. Алсо, можно хуяк-хуяк и в продакшн.

>5. Масштабируемость. Насколько легко разобраться, поддерживать, рефакторить и развивать уже имеющуюся кодовую базу.


2-3. Отсутствие статической типизации заставляет разбивать монолитный проект на микроили не очень микросервисы с четко документированными апи впрочем, это в любом случае хорошая идея. Язык относительно молодой, поэтому нет такого количества накопленного опыта проектирования и устоявшихся паттернов, как например в джаве. С другой стороны, минимизация сайд-эффектов, явный датафлоу, декларативная конфигурация зависимостей между модулями - благодаря этому всему разбираться в чужом коде намного проще, чем в ооп-лапше, поэтому в сумме имеем положительную оценку (но есть куда расти).

>6. Простота. Простому языку можно обучить 9 миллионов индусов


-2. Индусам придется ломать мышление и перестраиваться на функциональный стиль. Архитектурные паттерны тоже немного не такие (в сравнении с джавой; жс-индусы знакомые с реакт\редукс будут чувствовать себя как дома). С другой стороны, это именно практический, рациональный, инженерный язык, а не академический исследовательский проект, так что теорию категорий и отличия монад от эндофункторов знать не нужно.

>7. Хорошая (и безболезненная) поддержка многопоточности.


5. Пожалуй, лучший язык по части многопоточности. Все стандартные структуры данных потокобезопасны. Из коробки есть compare-and-swap, транзакционная память, агенты (акторы), асинхронщина через го-блоки (csp). Даже если тупо в лоб писать код и не думать о многопоточности вообще, то все равно все будет работать. Язык изначально создавался как раз чтобы решить проблему сложности написания многопоточного кода на жвм.

>8. Трудоустройство: насколько легко найти работу соискателю, который его знает, и насколько легко найти сотрудников в проект, который на нём написан.


-1. Найти сотрудников в проект легко. Найти работу трудно (по крайней мере в России). Джуны никому не нужны; обычно предполагается, что если уж ты пишешь на сабже, то ты убергруппенфюрерсеньор. Компенсируется высокими зарплатами (по данным stackoverflow, это язык с самыми высокими зарплатами в мире в 17-18 годах) и удаленкой в Штатах\Европе.

>9. Активное комьюнити. Документация, туториалы, треды на дваче Stack Overflow, митапы, конференции.


3. Комьюнити оче welcoming и активное, в основном тусуется в слаке, на реддите и на clojureverse.org. Много обучающей литературы (в том числе бесплатной), есть интерактивные вводные туториалы, есть видеокурсы (в том числе бесплатные), есть отличные сайты с задачками (4clojure.org, экцерцизм и т.п.). С другой стороны, нет такого количества туториалов и документации, как например для жс, и нет онлайн-курса на MOOC-платформе типа курсеры, как у скалы.

>10. Удобные инструменты разработки. Комфортная IDE, быстрая сборка, понятные сообщения об ошибках, быстрая перезагрузка при изменениях, инструменты для юнит- и прочих тестов.


-5--5. Сложный вопрос. С одной стороны - есть поддержка во всех актуальных редакторах\ide; хороший тулинг с поддержкой interactive development везде, от браузера до мобилок; отличная интеграция тулинга с хост-платформами (maven, npm и т.д.), при этом нет зоопарка билд-тулов, как в жс; в целом, пожалуй лучший воркфлоу с точки зрения удобства разработчика. С другой стороны - хитровыебанные сообщения об ошибках с километровыми стектрейсами (вроде как уже исправлено в следующей (еще не зарелизенной) версии, но хз), не совсем тривиальный сетап этого тулинга (хотя и есть специальные ide для нубов по типу "нажал одну кнопку и все работает", но это несерьезно), и в целом некая общая недопиленность в мелочах. По умолчанию как бы предполагается, что разработчик знает, что делает, его не нужно вести за ручку, и он может сам взять напильник и допилить, если ему что-то нужно.

Вердикт: язык для опытных инженеров, которым нужен эффективный инструмент для создания robust продуктов.
Область применения: бэкенд с нетривиальной логикой, микросервисы, обработка данных, full-stack SPA с нетривиальным интерфейсом.
Сильные стороны: отличный дизайн языка, стабильность и отсутствие breaking changes, превосходная поддержка многопоточности и асинхронности, один язык на сервере и на клиенте, сильное комьюнити, тулинг.
Слабые стороны: тулинг, относительно высокий порог вхождения, небольшое число вакансий, отсутствие поддержки со стороны корпораций типа гугла.
Стоит ли изучать: нет, если это первый язык или если нужно найти работу через 2 месяца; да, если нет аллергии на динамическую типизацию и хочется подняться на новый уровень.
3 1342404
Паста про оценки по шкале от -5 до +5:

Clojure

>1. Применимость к реальному современному миру. На нём можно писать действительно полезные вещи, и люди это делают.


4. Можно писать интерпрайс (бэкенд walmart'а), можно веб-макакить (putchar.org), можно писать SPA в браузере (precursorapp.com, circleci, maria.cloud, braid.chat), можно писать десктоп (lighttable), можно писать мобильные приложения (status.im), с недавнего времени можно компилять в нативный код через graal. Единственный язык, который реально (а не для галочки) работает на jvm, clr и js платформах. Не подходит для байтоебства и систем, где критично минимальное потребление памяти, поэтому снимаем балл.

>2. Универсальность.


5. Смотри предыдущий пункт.

>3. Технологичекое качество и надёжность получаемых систем.


4. У комьюнити и создателей языка стронг фокус на разбиение разрабатываемой системы на независимые части, декларативное описание связей и датафлоу, минимизацию зависимостей и упрощение ризонинга о поведении системы (слово decomplect даже является эдаким местным мемчиком). Плюс из коробки есть мощная инфраструктура для тестирования (в том числе генеративного, на основе инвариантов) и контрактного программирования. Язык динамически типизированный, поэтому снимаем балл за отсутствие инструментов для формального доказательства свойств программ.

>4. Скорость разработки.


5. Главная фича языка - интерактивная разработка, горячая компиляция (hot reloading) и выполнение кода прямо внутри работающего приложения (в том числе задеплоенного в продакшн, можно подключиться своей ide к серверу и залить хотфикс, включить дебаггер или просто проверить текущее состояние процесса). Вся инфраструктура под это заточено, в комьюнити много инструментов, упрощающих написание reloadable кода. Пожалуй, это главный selling point. Алсо, можно хуяк-хуяк и в продакшн.

>5. Масштабируемость. Насколько легко разобраться, поддерживать, рефакторить и развивать уже имеющуюся кодовую базу.


2-3. Отсутствие статической типизации заставляет разбивать монолитный проект на микроили не очень микросервисы с четко документированными апи впрочем, это в любом случае хорошая идея. Язык относительно молодой, поэтому нет такого количества накопленного опыта проектирования и устоявшихся паттернов, как например в джаве. С другой стороны, минимизация сайд-эффектов, явный датафлоу, декларативная конфигурация зависимостей между модулями - благодаря этому всему разбираться в чужом коде намного проще, чем в ооп-лапше, поэтому в сумме имеем положительную оценку (но есть куда расти).

>6. Простота. Простому языку можно обучить 9 миллионов индусов


-2. Индусам придется ломать мышление и перестраиваться на функциональный стиль. Архитектурные паттерны тоже немного не такие (в сравнении с джавой; жс-индусы знакомые с реакт\редукс будут чувствовать себя как дома). С другой стороны, это именно практический, рациональный, инженерный язык, а не академический исследовательский проект, так что теорию категорий и отличия монад от эндофункторов знать не нужно.

>7. Хорошая (и безболезненная) поддержка многопоточности.


5. Пожалуй, лучший язык по части многопоточности. Все стандартные структуры данных потокобезопасны. Из коробки есть compare-and-swap, транзакционная память, агенты (акторы), асинхронщина через го-блоки (csp). Даже если тупо в лоб писать код и не думать о многопоточности вообще, то все равно все будет работать. Язык изначально создавался как раз чтобы решить проблему сложности написания многопоточного кода на жвм.

>8. Трудоустройство: насколько легко найти работу соискателю, который его знает, и насколько легко найти сотрудников в проект, который на нём написан.


-1. Найти сотрудников в проект легко. Найти работу трудно (по крайней мере в России). Джуны никому не нужны; обычно предполагается, что если уж ты пишешь на сабже, то ты убергруппенфюрерсеньор. Компенсируется высокими зарплатами (по данным stackoverflow, это язык с самыми высокими зарплатами в мире в 17-18 годах) и удаленкой в Штатах\Европе.

>9. Активное комьюнити. Документация, туториалы, треды на дваче Stack Overflow, митапы, конференции.


3. Комьюнити оче welcoming и активное, в основном тусуется в слаке, на реддите и на clojureverse.org. Много обучающей литературы (в том числе бесплатной), есть интерактивные вводные туториалы, есть видеокурсы (в том числе бесплатные), есть отличные сайты с задачками (4clojure.org, экцерцизм и т.п.). С другой стороны, нет такого количества туториалов и документации, как например для жс, и нет онлайн-курса на MOOC-платформе типа курсеры, как у скалы.

>10. Удобные инструменты разработки. Комфортная IDE, быстрая сборка, понятные сообщения об ошибках, быстрая перезагрузка при изменениях, инструменты для юнит- и прочих тестов.


-5--5. Сложный вопрос. С одной стороны - есть поддержка во всех актуальных редакторах\ide; хороший тулинг с поддержкой interactive development везде, от браузера до мобилок; отличная интеграция тулинга с хост-платформами (maven, npm и т.д.), при этом нет зоопарка билд-тулов, как в жс; в целом, пожалуй лучший воркфлоу с точки зрения удобства разработчика. С другой стороны - хитровыебанные сообщения об ошибках с километровыми стектрейсами (вроде как уже исправлено в следующей (еще не зарелизенной) версии, но хз), не совсем тривиальный сетап этого тулинга (хотя и есть специальные ide для нубов по типу "нажал одну кнопку и все работает", но это несерьезно), и в целом некая общая недопиленность в мелочах. По умолчанию как бы предполагается, что разработчик знает, что делает, его не нужно вести за ручку, и он может сам взять напильник и допилить, если ему что-то нужно.

Вердикт: язык для опытных инженеров, которым нужен эффективный инструмент для создания robust продуктов.
Область применения: бэкенд с нетривиальной логикой, микросервисы, обработка данных, full-stack SPA с нетривиальным интерфейсом.
Сильные стороны: отличный дизайн языка, стабильность и отсутствие breaking changes, превосходная поддержка многопоточности и асинхронности, один язык на сервере и на клиенте, сильное комьюнити, тулинг.
Слабые стороны: тулинг, относительно высокий порог вхождения, небольшое число вакансий, отсутствие поддержки со стороны корпораций типа гугла.
Стоит ли изучать: нет, если это первый язык или если нужно найти работу через 2 месяца; да, если нет аллергии на динамическую типизацию и хочется подняться на новый уровень.
4 1342406
Паста про вкат в сабж с питона:

Clojure. Динамически типизированный диалект Lisp.

Простота
Лично я вкатился на нее с Питона. Это было сравнительно просто, потому что оба языка типизированы неявно, строго и динамически. Здесь нет сложной системы статических типов, как в той же Скале, что очень упрощает код. Самым сложным было привыкание к синтаксису и к неизменяемым данным.

Вот несколько примеров кода на Питоне и на Кложуре:

print("Hello, World!")
(println "Hello, World!")

a, b, c = [1, 2, 3]
(let [[a b c] [1 2 3]]) ; после конца let, переменные перестают существовать, в отличие от питона

len([1, 2, 3]) # 3
(count [1 2 3]) ; 3

list(map(lambda x: x ∗ x, range(1, 4))) # [1, 4, 9]
(map (fn [x] (∗ x x)) (range 1 4)) ; [1 4 9]

В последнем примере, можно вместо формы fn написать #(∗ % %), как в Cкале с _.

JVM
Язык, как и Скала, хостится на JVM, то есть тебе доступны все Джавовские библиотеки.

Leiningen
Отличный сборщик проектов. Описываешь зависимости и настройки через Кложуровские структуры данных (которые напоминают JSON). Собирает, на мой вкус, долговато, но на что нам REPL?

REPL
Интерактивный интерпретатор. Многие редакторы/IDE могут подключаться к нему, слать туда код и выводить тебе результат прямо в редактор. Можно лайв-кодить даже веб.
Вообще, лисперы предпочитают именно лайв-кодить, а не пересобирать проект после каждого изменения. Изменил функу — можешь перегрузить чисто эту функу, отправив ее в REPL еще раз.

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

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

Неизменяемые данные по умолчанию
Охуеннейшая фича Кложуры. Можно слать данные в функи, отдавать потокам — делать что хочешь. Исходные данные не изменяются, если ты не обернешь их, например, в атом.

Атомы позволяют синхронизированно изменять данные в нескольких потоках.

Короче, очень трудно выстрелить себе в ногу в многопоточной среде.

Макросы
Фича Лиспа. Не имеют ничего общего с текстовыми макросами из C. Позволяют пилить собственный синтаксис, преобразовывая код. Многие стандартные операции реализованы именно через них. То есть, программист находится на том же уровне, что и автор языка, и может расширять язык удобным способом.

Один из самых нужных лично мне макросов — это "->". Позволяет чейнить несколько функций, передавая им нужные параметры. Для этого не нужны "Билдер Паттерны".

Задавай ответы, если заинтересовало.
4 1342406
Паста про вкат в сабж с питона:

Clojure. Динамически типизированный диалект Lisp.

Простота
Лично я вкатился на нее с Питона. Это было сравнительно просто, потому что оба языка типизированы неявно, строго и динамически. Здесь нет сложной системы статических типов, как в той же Скале, что очень упрощает код. Самым сложным было привыкание к синтаксису и к неизменяемым данным.

Вот несколько примеров кода на Питоне и на Кложуре:

print("Hello, World!")
(println "Hello, World!")

a, b, c = [1, 2, 3]
(let [[a b c] [1 2 3]]) ; после конца let, переменные перестают существовать, в отличие от питона

len([1, 2, 3]) # 3
(count [1 2 3]) ; 3

list(map(lambda x: x ∗ x, range(1, 4))) # [1, 4, 9]
(map (fn [x] (∗ x x)) (range 1 4)) ; [1 4 9]

В последнем примере, можно вместо формы fn написать #(∗ % %), как в Cкале с _.

JVM
Язык, как и Скала, хостится на JVM, то есть тебе доступны все Джавовские библиотеки.

Leiningen
Отличный сборщик проектов. Описываешь зависимости и настройки через Кложуровские структуры данных (которые напоминают JSON). Собирает, на мой вкус, долговато, но на что нам REPL?

REPL
Интерактивный интерпретатор. Многие редакторы/IDE могут подключаться к нему, слать туда код и выводить тебе результат прямо в редактор. Можно лайв-кодить даже веб.
Вообще, лисперы предпочитают именно лайв-кодить, а не пересобирать проект после каждого изменения. Изменил функу — можешь перегрузить чисто эту функу, отправив ее в REPL еще раз.

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

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

Неизменяемые данные по умолчанию
Охуеннейшая фича Кложуры. Можно слать данные в функи, отдавать потокам — делать что хочешь. Исходные данные не изменяются, если ты не обернешь их, например, в атом.

Атомы позволяют синхронизированно изменять данные в нескольких потоках.

Короче, очень трудно выстрелить себе в ногу в многопоточной среде.

Макросы
Фича Лиспа. Не имеют ничего общего с текстовыми макросами из C. Позволяют пилить собственный синтаксис, преобразовывая код. Многие стандартные операции реализованы именно через них. То есть, программист находится на том же уровне, что и автор языка, и может расширять язык удобным способом.

Один из самых нужных лично мне макросов — это "->". Позволяет чейнить несколько функций, передавая им нужные параметры. Для этого не нужны "Билдер Паттерны".

Задавай ответы, если заинтересовало.
5 1342407
Паста про фп:

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



Основная идея в том, что в си-подобных языках у тебя состояние неявно размазано по всей программе, поэтому ты его не контролируешь. То же самое, что и с глобальными переменными, короче: у тебя возникает куча неявных неочевидных связей между разными частями программы, из-за чего ее сложнее поддерживать. В функциональщине глобальное состояние и взаимодействие с внешним миром изолируют от бизнес-логики.
Алсо, предметную область моделируют с помощью значений. В условной джаве объекты - это по сути старые-добрые указатели на куски памяти, которые смешивают в кучу identity и value. Вот смотри: x = 42. Здесь "икс" - это identity (что такое), а 42 - это value (чему оно равно). Если тебе нужно прибавить к иксу единицу, ты не изменяешь само число 42 - ты просто выкидываешь старое значение и приравниваешь икс к новому значению: x = 42 + 1. То же самое со строками: ты просто пишешь str = "foo" + "bar", выкидываешь старое значение и связываешь identity с новым значением. Но вот когда у тебя есть класс User, и у тебя юзер зашел на сайт и изменил свой адрес, например, то ты зачем-то меняешь само значение вместо того, чтобы привязать identity к новому значению (это как если бы ты менял само число 42 вместо того, чтобы написать x = 42 + 1). Представь, что было бы, если бы ты каждый раз менял само число 42? Вся математика бы постоянно ломалась в неожиданных местах, потому что это был бы глобальный, неконтролируемый эффект (эдакое "дальнодействие"), влияющий на все части математики (то есть твоей программы). А в примере с User ты именно это и делаешь, из-за чего возникает куча низкоуровневых проблем: как проверить, что два юзера равны друг другу (по ссылке или по значению?); как быть уверенным, что изменения в одном куске кода не затронут совершенно другой кусок кода; как сериализовать и восстанавливать состояние; как сделать копию юзера (нужен deep clone и т.п.); как откатить состояние на один шаг назад; наконец, если ты попытаешься в многопоточность, то это будет худший кошмар в твоей жизни (race condition'ы и дедлоки ждут тебя).
Неизменяемые данные решают все эти технические проблемы (естественные сравнения на эквивалентность и хэшируемость из коробки, lock-free concurrency, traveling time debugger, etc), попутно облегчая анализ логики твоего кода, потому что интуитивно проще рассуждать в терминах значений (данных), а не кусков памяти и указателей на них.

А вообще, изначально под "функциональным программированием" понимался любой язык со сборщиком мусора и лямбдами (анонимными функциями и функциями высшего порядка). Теперь эти фичи уже перекочевали во все языки (с запозданием на 10-20 лет), и иммутабельность по умолчанию потихоньку тоже перекочевывает в мейнстрим (гугл, например, давным-давно написал свою библиотеку иммутабельных коллекций для джавы вместо стандартной мутабельной; в том же жс реакт и прочее - это реализация идей функционального реактивного программирования, которым лет 15, плюс на современный фронтенд сильно повлияли элм и кложескрипт, и т.д.) Еще через 10-20 лет иммутабельность будет дефолтом во всех прикладных языках, поскольку она делает язык более высокоуровневым.
5 1342407
Паста про фп:

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



Основная идея в том, что в си-подобных языках у тебя состояние неявно размазано по всей программе, поэтому ты его не контролируешь. То же самое, что и с глобальными переменными, короче: у тебя возникает куча неявных неочевидных связей между разными частями программы, из-за чего ее сложнее поддерживать. В функциональщине глобальное состояние и взаимодействие с внешним миром изолируют от бизнес-логики.
Алсо, предметную область моделируют с помощью значений. В условной джаве объекты - это по сути старые-добрые указатели на куски памяти, которые смешивают в кучу identity и value. Вот смотри: x = 42. Здесь "икс" - это identity (что такое), а 42 - это value (чему оно равно). Если тебе нужно прибавить к иксу единицу, ты не изменяешь само число 42 - ты просто выкидываешь старое значение и приравниваешь икс к новому значению: x = 42 + 1. То же самое со строками: ты просто пишешь str = "foo" + "bar", выкидываешь старое значение и связываешь identity с новым значением. Но вот когда у тебя есть класс User, и у тебя юзер зашел на сайт и изменил свой адрес, например, то ты зачем-то меняешь само значение вместо того, чтобы привязать identity к новому значению (это как если бы ты менял само число 42 вместо того, чтобы написать x = 42 + 1). Представь, что было бы, если бы ты каждый раз менял само число 42? Вся математика бы постоянно ломалась в неожиданных местах, потому что это был бы глобальный, неконтролируемый эффект (эдакое "дальнодействие"), влияющий на все части математики (то есть твоей программы). А в примере с User ты именно это и делаешь, из-за чего возникает куча низкоуровневых проблем: как проверить, что два юзера равны друг другу (по ссылке или по значению?); как быть уверенным, что изменения в одном куске кода не затронут совершенно другой кусок кода; как сериализовать и восстанавливать состояние; как сделать копию юзера (нужен deep clone и т.п.); как откатить состояние на один шаг назад; наконец, если ты попытаешься в многопоточность, то это будет худший кошмар в твоей жизни (race condition'ы и дедлоки ждут тебя).
Неизменяемые данные решают все эти технические проблемы (естественные сравнения на эквивалентность и хэшируемость из коробки, lock-free concurrency, traveling time debugger, etc), попутно облегчая анализ логики твоего кода, потому что интуитивно проще рассуждать в терминах значений (данных), а не кусков памяти и указателей на них.

А вообще, изначально под "функциональным программированием" понимался любой язык со сборщиком мусора и лямбдами (анонимными функциями и функциями высшего порядка). Теперь эти фичи уже перекочевали во все языки (с запозданием на 10-20 лет), и иммутабельность по умолчанию потихоньку тоже перекочевывает в мейнстрим (гугл, например, давным-давно написал свою библиотеку иммутабельных коллекций для джавы вместо стандартной мутабельной; в том же жс реакт и прочее - это реализация идей функционального реактивного программирования, которым лет 15, плюс на современный фронтенд сильно повлияли элм и кложескрипт, и т.д.) Еще через 10-20 лет иммутабельность будет дефолтом во всех прикладных языках, поскольку она делает язык более высокоуровневым.
6 1342408

>Где-то слышал миф, что для общего развития, кроме C/C++ ещё стоит выучить какой-нибудь диалект лиспа. Что это даст?



У лиспов (это семейство языков такое) две основных особенности, общие для всех языков семейства:

1) Гомоиконность. Это значит, что текст программы представлен не тупо потоком символов, как в си, а литеральными структурами данных. JSON видел? Ну вот его еще в 60-ых придумали, лол. И ты пишешь весь код не просто текстом, а структурами данных, как в жсоне. Это позволяет его легко и удобно парсить компьютером и человеком (нет неоднозначностей, все чотка и строго, не нужно запоминать приоритеты операторов и ставить точки с запятой, редактор может за тебя расставлять скобки и т.п.), и, что важнее, - позволяет реализовать мощную и простую систему метапрограммирования. Это когда ты пишешь программу, которая пишет другую программу. В си метапрограммирование ограничено текстовыми макросами, которые (как ты уже знаешь, если писал на си) сосут с проглотом. А тут ты можешь запускать при компиляции любые функции на том же языке, которые принимают и возвращают структуры данных (которые представляют код). Поэтому ты можешь иметь минималистичное ядро языка, а все остальное добавлять в него библиотеками с помощью макросов (в то время как в си тебе нужно менять компилятор для добавления любой фичи). Например, можно добавить систему типов (библиотекой!), можно добавить async\await или каналы и го-блоки, как в go (библиотекой!), можно добавить логическое программирование, и т.п. С метапрограммированием тебе в любом случае придется сталкиваться (к тому же сейчас его пытаются добавить в любой новый язык), и лучше его изучить на хорошем, корректно сделанном языке, чем на костылях типа шаблонов с++.

2) Интерактивность. В си ты меняешь код, компилируешь программу, запускаешь, видишь результат. Повторяешь все заново. В лиспах ты запускаешь программу, потом подключаешься прямо к этой работающей программе и меняешь код внутри нее прямо во время ее работы. Это абсолютно другой (и качественно лучший) воркфлоу, и - опять же - его сейчас везде пихают (пытаются запихать), от unity до жаваскрип-фреймворков. Поскольку это очень трендовая тема, опять же, с ней надо познакомиться. В других языках в силу их ограничений полной интерактивности до сих пор нет.

Алсо, если бы ты спросил лет 10-15 назад, то я бы добавил "функциональное программирование, функции высшего порядка и т.п." - теперь это уже (наконец-то) перекочевало в мейнстрим и трудно представить современный язык без поддержки ФП.

Алсо, если бы ты спросил лет 20-25 назад, то я бы добавил "сборщик мусора, автоматическое управление памятью и т.п." - теперь это уже (слава богу!) перекочевало в мейнстрим и трудно представить современный язык без поддержки какой-либо формы автоматического управления памятью.
6 1342408

>Где-то слышал миф, что для общего развития, кроме C/C++ ещё стоит выучить какой-нибудь диалект лиспа. Что это даст?



У лиспов (это семейство языков такое) две основных особенности, общие для всех языков семейства:

1) Гомоиконность. Это значит, что текст программы представлен не тупо потоком символов, как в си, а литеральными структурами данных. JSON видел? Ну вот его еще в 60-ых придумали, лол. И ты пишешь весь код не просто текстом, а структурами данных, как в жсоне. Это позволяет его легко и удобно парсить компьютером и человеком (нет неоднозначностей, все чотка и строго, не нужно запоминать приоритеты операторов и ставить точки с запятой, редактор может за тебя расставлять скобки и т.п.), и, что важнее, - позволяет реализовать мощную и простую систему метапрограммирования. Это когда ты пишешь программу, которая пишет другую программу. В си метапрограммирование ограничено текстовыми макросами, которые (как ты уже знаешь, если писал на си) сосут с проглотом. А тут ты можешь запускать при компиляции любые функции на том же языке, которые принимают и возвращают структуры данных (которые представляют код). Поэтому ты можешь иметь минималистичное ядро языка, а все остальное добавлять в него библиотеками с помощью макросов (в то время как в си тебе нужно менять компилятор для добавления любой фичи). Например, можно добавить систему типов (библиотекой!), можно добавить async\await или каналы и го-блоки, как в go (библиотекой!), можно добавить логическое программирование, и т.п. С метапрограммированием тебе в любом случае придется сталкиваться (к тому же сейчас его пытаются добавить в любой новый язык), и лучше его изучить на хорошем, корректно сделанном языке, чем на костылях типа шаблонов с++.

2) Интерактивность. В си ты меняешь код, компилируешь программу, запускаешь, видишь результат. Повторяешь все заново. В лиспах ты запускаешь программу, потом подключаешься прямо к этой работающей программе и меняешь код внутри нее прямо во время ее работы. Это абсолютно другой (и качественно лучший) воркфлоу, и - опять же - его сейчас везде пихают (пытаются запихать), от unity до жаваскрип-фреймворков. Поскольку это очень трендовая тема, опять же, с ней надо познакомиться. В других языках в силу их ограничений полной интерактивности до сих пор нет.

Алсо, если бы ты спросил лет 10-15 назад, то я бы добавил "функциональное программирование, функции высшего порядка и т.п." - теперь это уже (наконец-то) перекочевало в мейнстрим и трудно представить современный язык без поддержки ФП.

Алсо, если бы ты спросил лет 20-25 назад, то я бы добавил "сборщик мусора, автоматическое управление памятью и т.п." - теперь это уже (слава богу!) перекочевало в мейнстрим и трудно представить современный язык без поддержки какой-либо формы автоматического управления памятью.
7 1342409
Паста про simple vs easy:

>3 класса по вашему проще одной функции? Камон


----
Ты путаешь понятия "простота" (simplicity) и "легкость в изучении, использовании, etc" (easiness). Для обывателя это нормально, но если ты претендуешь на то, чтобы быть разработчиком, тебе нужно разбираться в этих вещах (принципах построения абстракций).

Увеличение простоты обычно ведет к разъединению (decomplection) сущностей. Увеличение легкости, напротив, обычно ведет к агрегации разных сущностей в одну.

Можно привести такую аналогию: отдельные клетки человека проще чем сам человек целиком - согласен? Каждый орган человека состоит из миллионов этих клеток - но это не делает сами эти клетки сложнее. Клетки проще чем орган, который из них состоит (несмотря на то, что их очень много). А сам этот орган (хоть он и один) сложнее этих клеток. При этом взаимодействовать с органом проще, чем с отдельными клетками. Если у тебя сбоит желудок, то ты во большей части случаев 1) поймешь, из-за чего это "пельмешки просроченные зохавал" 2) сможешь выпить таблетку\приложить подорожник и исправить проблему. Если у тебя сбоят клетки, то ты скорее всего сдохнешь от рака. Желудок люди умеют лечить давно, а с отдельными клетками до сих пор до конца не разобрались. Итак, клетки проще, но с ними труднее взаимодействовать; орган сложнее, но с ним проще взаимодействовать.

Простота\сложность - объективная собственная характеристика объекта (в нашем случае - абстракции), его внутренней структуры.
Легкость\трудность - субъективная характеристика, которая зависит от того, кто и в приложении к чему ее оценивает (легкость в изучении, легкость в использовании и т.п.).
sage 8 1342435
>>342408
И че? Где денежки-то этим заработать можно?
10 1342601
>>342435

>Где денежки-то этим заработать можно?


С такими вопросами функциональщина тебе не зайдёт
11 1342738
>>342400 (OP)
http://circleci.com - Continuous Integration and Delivery. Бэкенд и фронтенд на clojure+clojurescript.

Полюзуюсь для CI этой няшей.

Ну, штош попробуем написать что-нибудь!
12 1342740
>>342435
У Никиты Прокопова спроси, лол.
13 1342747
>>342738
Не могу понять, что это такое, поясни нубасу
14 1342758
>>342747
Ты про что конкретно?
15 1342778
>>342758
Про этот сайт. Что вообще за сервис там предлагают?
16 1342803
>>342778
Бля, зайди и прочти.
17 1342900
>>342778
Пушишь коммит в репу, оно за тебя В ОБЛАКЕ все собирает, развертывает, прогоняет тесты, показывает красивый отчетик в браузере.
18 1342945
>>342900
Впрочем, ничего нового
19 1343029
>>342945
Ну как бы да, я вообще не представляю, насколько 1сником надо быть, чтобы только сейчас впервые услышать про CI
20 1343038
Вдруг не пропустил кто
https://www.youtube.com/watch?v=jlPaby7suOc
21 1343040
"Вдруг пропустил кто", конечно же.
22 1343273
Ананасы, тен времени со всем зоопарком разбираться, какой фремворк\либу использовать в кложе для бека? Что самое поддерживаемое, что самое богатое по функционалу?
23 1343414
>>343038
Обновленную шапку не читай @ ссылку в тред кидай :3
Совершенно топовый софтваре стендап кстати, лол, я больше проигрывал наверное только с wat

>>343273

>Web: http://www.luminusweb.net || https://github.com/weavejester/compojure


можешь еще pedestal упороться, если хочется поупарываться
24 1343447
Как пофиксить емакс, что бы он пересатал открывать новое окно(фрем, хз как правильно), для каждой ошибки? Каждый раз как ексепшен выскакивает, он открывает новое окно для него, потом еще, еще, еще...
25 1343483
>>343447
(setq cider-show-error-buffer nil)
26 1343546
Я походу конченый. Не удавалось в емаксе подключиться к реплу (он то страртует M-x cider-jack-in), окно репла открывается, работает, но из файла доступа нет. Поставил спейсмакс, думал может у мой конфиг просто кривой. Репл вообще не стартует, требует lein 2.8.3. Удалил свой репл, скачал скрипт с их страницы, запускаю его which: no lein in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin)
О рили? Установочник жалуется, что не установлен пакет, который он устанавливает? ЧТо за херня?
27 1343555
Ладно, я превозмог, есть вопросик, модно ли выполнить весь код от начала файла до курсора без выделения кода?
28 1343600
>>343546
Нихуя не понял. Добавь в profiles.clj:
:aliases {"dev" ["trampoline" "repl" ":headless"]}
lein dev @ M-x cider-connect

>>343555
Можно (в крайнем случае можно написать, это пару строчек), но я хз зачем, так что не знаю, есть ли это из коробки. А нахуя тебе это? Я обычно выполняю текущий блок, текущий деф или текущий буфер - как-то даже не приходило в голову выполнять от начала до курсора.
29 1343715
>>343600
Ну я работаю над файлом, сохраняю, выхожу, на следующий день возвращаюсь, и мне надо выполнить готовую часть кода, а 2-3 функции которые еще не закончены не выполнять.
Может оно и вправду нахуй надо, вряд ли такая ситуация часто будет случатся.
30 1343834
>>342407
то, что описано в начале называется независимой организацией кода, и относится к фп настолько же как и к другим видам организации кода.

> изначально под "функциональным программированием" понимался любой язык со сборщиком мусора



любой язык основной логической единицей которого являлась функция, как и сейчас, собсна

обожаю разговоры с пастой
31 1344029
>>343834

>то, что описано в начале называется независимой организацией кода


Нет, это называется изоляцией сайд-эффектов.

>и относится к фп настолько же как и к другим видам организации кода.


Нет, сайд-эффектфул код от чистого кода строго отделяют именно в фп (по определению).

>любой язык основной логической единицей которого являлась функция


Например, си и перл, ок.

лучша бы чукча был читатель, а не писатель
32 1344124
>>342400 (OP)
Боже, почему Clojure настолько проще чем Scala? Все просто, логично и самое главное лаконично. Открываешь библиотеку какого-нибудь хуя на гитхабе и сразу можешь читать и понимать код. Попробуй так со скалой, лол.
Рич Хикки действительно гений.
33 1344288
>>343715
Хуй знает, я просто заворачиваю в (comment ...), если какое-то месиво, которое не надо трогать.

>>344124
Имхо, все из-за того, что задачи изначально стояли разные: у скалы - скрестить ужа с ежом, у сабжа - делать хуяк-хуяк и в продакшн.
34 1344895
Какие профиты, если сравнивать со Скалой, которую я уже знаю?
Не траллю, просто интересно, есть ли смысл изучать.
35 1344915
Есть бенчмарки сравнения скорости этого языка с остальными языками?
36 1344965
>>343414
Поставил себе люминус пример проекта и охуел, он зависимости выкачивал минут 15, там библиотек в гостевухе больше чем у меня волос на голове.
Есть какой-то вкат в бекенд попроще? Хотя бы без mount, я с этой хуйни вообще сгорел.
37 1344983
>>344895
Можно будет больше не писать на скале пека
А какие профиты вообще с того что ты знаешь несколько языков, к тому же столь мало популярных?
38 1344984
>>344965
Так тебе не обязательно их всех использовать то. Да библиотеки там наверняка в основном жаваскриптовые дял cljs, их google closure при компиляции обрежет, оставив только нужные, да и в тех будет только тот код, который задействован в проекте.
39 1345005
>>344984
так а я ебу что использовать а что нет. Я просто написал lein new lumius gostevuha, и там оно всё завязано.
Короче поищу че попроще, чтобы чисто веб-сервер, роутинг и jdbc и встроенный репл. Потом довезу чето для базы и темплейтинга, и только в самом конце ебучие маунты/компоненты, конфигурации и вот это всё.
40 1345057
Это похоже на язык программирования инопланетян, ни черта не понятно, этот язык будут использовать три с половиною компаний на критичных участках.
41 1345121
>>344983

> А какие профиты вообще с того что ты знаешь несколько языков, к тому же столь мало популярных?


В мейнстримных языках больше быдланов, вкатившихся ради бабла и прочих хипстеров. В малопопулярных языках чаще встречаются энтузиасты своего дела, какой-нибудь Васян-вкатывальщик лучше выучит JS или Java, а не Scala/Clojure/Haskell.
Понятно что выбор работы у тебя будет меньше, но если ты знаешь несколько таких языков, можно уже что-то повыбирать.
Я вот вкатился в Скалу, потому что не нашёл работу на Хаскелле, а потом втянулся.
42 1345126
>>345121

>Я вот вкатился в Скалу, потому что не нашёл работу на Хаскелле


Так а работу то нашёл? Имеет смысл в скалу перекатиться?
43 1345134
>>345126

> Так а работу то нашёл?


Нашёл.

> Имеет смысл в скалу перекатиться?


Откуда? Если с кложуры то я бы наверно искал зарубежную удалёнку, а не перекатывался.
Вообще, если тебе главное найти работу - ищи работу на Java, а там глядишь сможешь пересадить всех на кложуру. Если просто из интереса к языкам программирования - конечно стоит, но начать лучше с Хаскелля.
44 1345157
>>345134
Не понимаю те компании которые использую не популярные языки и которые не быстрее пайтона или пхп.
45 1345164
>>345121
Ну ты примерно ответил на свой вопрос, если еще есть, задавай.
46 1345167
>>345157
Что их упомянутого им не быстрее питона или ПожалуйстаХватитПисатьнамне ?
47 1345255
>>344915
http://clojure-goes-fast.com/blog/ https://dragan.rocks полуркай тут

>>344895
Нет ебли с типами, все максимально просто и понятно, уберстабильная стандартная библиотека, можно писать веб и мобилки.
48 1345256
>>344965
Ну так это пример полноценного фулстак приложения, хуль ты хотел. Посмотри на структуру проекта, полистай код. Если хочешь попроще и с нуля ставь голый compojure и подключай сам, что тебе нужно, написано жеж:

>Web: http://www.luminusweb.net || https://github.com/weavejester/compojure



Алсо, поясни, чем тебе mount не понравился? Наоборот он самый легкий и наотъебись, если сравнивать с component и integrant - просто делаешь defstate вместо def и все. Главный минус имхо в том, что работает в кложе и кложескрипте немного по-разному.
(JPEG Image, 474 × 238 pixels).jpeg19 Кб, 474x238
49 1345258
>>345057

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

50 1345309
Игровой движок на этом языке можно написать?
51 1345310
>>345309
Можно, пиши, на дваче разрешили.
53 1345358
>>345327
2 и 3 ссылки несколько безнадежно протухли
54 1345878
>>345256
Спасибо. Я не говорю что не нравится, просто надо по одному разбирать, наверное, а не сразу всё кучей.

Алсо, видел такое мнение от людей с пректами на кложе, что они скорее возьмут опытного разработчика и научат кложе, чем возьмут кложе июня. Что скажете, есть шансы вкатиться на кложе куда-то без многолетнего опыта?
55 1346088
>>345358
М? Нет, не протухли. Вторая ссылка - старая версия на jvm и новая в браузере (последний коммит две недели назад). Третья ссылка - статья с описанием архитектуры. Вы там со своими жс-фреймворками совсем обезумели уже, счет протухания идет на часы?

>>345878
Шансы-то конечно есть, но вряд ли это будет какая-то вакансия с условного хх.ру, сам понимаешь.
56 1346098
>>346088

>М? Нет, не протухли


Я немножко в глаза долблюсь, пардон.
57 1346601
>>343273
А вон тут еще один туториал пацаны подогнали: https://circleci.com/blog/build-a-clojure-web-app-using-duct/
58 1346695
>>344029

> В функциональщине глобальное состояние и взаимодействие с внешним миром изолируют от бизнес-логики.


> Нет, это называется изоляцией сайд-эффектов.


> >и относится к фп настолько же как и к другим видам организации кода.


> Нет, сайд-эффектфул код от чистого кода строго отделяют именно в фп (по определению).



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

Мой кейс лишь в том что это ни коем образом не относится исключительно к фп и потому мне странно почему это описано как одно из отличий.

> отделяют именно в фп (по определению)


Вбрось. У разных авторов разные определения.
59 1346972
>>346695

>Изоляция бизнес логики уж точно не специфичное только для фп действие


А изоляция глобального состояния и сайд-эффектов - специфичное.

>я определенно говорил про независимую организацию кода


Не понял, мы же пасту обсуждаем, ее же не ты писал. В пасте написано про изоляцию стейта.

>бизнес логика является входными данными для не зависящего от нее кода.


Что-то не то, остальной код как раз зависит от бизнес-логики (а бизнес-логика от остального кода не зависит).

>вспоминая не мало известного Егора


Ну так он и пишет фпшный код с плохим синтаксисом, лол. На самом деле у него конечно очень своеобразное сочетание обоих подходов - он сам об этом писал, кстати.

>это ни коем образом не относится исключительно к фп и потому мне странно почему это описано как одно из отличий.


Ну смотри как это со стороны выглядит:

>изоляция состояния - одна из черт фп


>>а независимая организация кода свойственна всем парадигмам


>ок, но изоляция состояния - одна из черт именно фп


>>нет, независимоая организация кода не относится к фп


>...


Нутыпонел.

>Вбрось. У разных авторов разные определения.


Ну хуй знает, определение на википедии меня устраивает: https://en.wikipedia.org/wiki/Functional_programming
Короче, это все пустой пиздеж и спор о терминах энивей, просто возьми и напиши какой-нибудь тетрис или арканоид в функциональном стиле и все подобные вопросы отпадут, имхо. Алсо, можешь прочитать это (про state и identity самое важное):
https://clojure.org/about/rationale
https://clojure.org/about/state
https://clojure.org/about/functional_programming
59 1346972
>>346695

>Изоляция бизнес логики уж точно не специфичное только для фп действие


А изоляция глобального состояния и сайд-эффектов - специфичное.

>я определенно говорил про независимую организацию кода


Не понял, мы же пасту обсуждаем, ее же не ты писал. В пасте написано про изоляцию стейта.

>бизнес логика является входными данными для не зависящего от нее кода.


Что-то не то, остальной код как раз зависит от бизнес-логики (а бизнес-логика от остального кода не зависит).

>вспоминая не мало известного Егора


Ну так он и пишет фпшный код с плохим синтаксисом, лол. На самом деле у него конечно очень своеобразное сочетание обоих подходов - он сам об этом писал, кстати.

>это ни коем образом не относится исключительно к фп и потому мне странно почему это описано как одно из отличий.


Ну смотри как это со стороны выглядит:

>изоляция состояния - одна из черт фп


>>а независимая организация кода свойственна всем парадигмам


>ок, но изоляция состояния - одна из черт именно фп


>>нет, независимоая организация кода не относится к фп


>...


Нутыпонел.

>Вбрось. У разных авторов разные определения.


Ну хуй знает, определение на википедии меня устраивает: https://en.wikipedia.org/wiki/Functional_programming
Короче, это все пустой пиздеж и спор о терминах энивей, просто возьми и напиши какой-нибудь тетрис или арканоид в функциональном стиле и все подобные вопросы отпадут, имхо. Алсо, можешь прочитать это (про state и identity самое важное):
https://clojure.org/about/rationale
https://clojure.org/about/state
https://clojure.org/about/functional_programming
61 1347560
>>347538
Рич же говорил, что ему так и не удалось заработать на Clojure и его компания не принесла ни копейки.
62 1347644
>>347560
Я думал, datomic таки покупают.
63 1347784
>>346972

> >независимая организация кода свойственна всем парадигмам. Изоляция бизнес логики уж точно не специфичное только для фп действие


> А изоляция глобального состояния и сайд-эффектов - специфичное.



Окей, мне казалось что первое подразумевает второе, но наверно я не прав. Мне просто тяжело предоставить кейс в котором у может быть описан независимый код полагающийся на зависимые от бизнес логики стейты и сайдэффекты и конкретно это меня и смутило
64 1348310
>>347560
Не понял, к чему это ты? Не вижу связи с постом, на который ты отвечаешь. Сама кложа (язык) денег разумеется не приносит - я слабо представляю, как язык может приносить какой-то доход, ну разве что кроме каких-то суперспецифичных областей, где нужны сертифицированные компиляторы со 100% доказательствами корректности и подобная байда. Когнитект зарабатывает консалтингом, разработкой интерпрайса и продажей датомика, насколько мне известно.
65 1348337
>>348310

>как язык может приносить какой-то доход


Ну у LispWorks хорошо получается зарабатывать на их реализации CL + IDE
66 1348387
>>342400 (OP)
Вот сколько прохожу мимо вашего треда, посоны, и мне все время кажется что на четвертой пикче ОП-поста - СИЛЬНО спившаяся Рипли, которая уже задолбалась жизнью и борьбой с багами чужими.
мимо проходил
!lisp-chan.jpg55 Кб, 600x900
67 1348414
>>348337
Ну это по-моему как раз из разряда "суперспецифичная йоба".

>>348387
Кек, как теперь это развидеть? Кстати, маскот коммон лиспа - это такой зелененький чужой инопланетянин... Совпадение? Не думаю.
68 1348447
>>342400 (OP)

> — Common Lisp же есть, нинужна!!1


>Просто съеби.



Вот это порвало.
3e0135fc8f18ff889e00f87646f84fdd.jpg22 Кб, 506x453
69 1348455
Общий лиспотред куда-то проебался, поэтому запощщу сюда.
Пикрелейтед - моё актуальное лицо, когда прочитал про макрос loop в Common Lisp.
Серьёзно, что за нахуй? DSL для циклов с условием в стандарте? Не могли, как в концептуально стройной няшной Scheme сделать - вот тебе TCO, вот тебе named let, и крутись как хочешь. Нет блядь, надо нахуевертить, чтобы как в C++ было, только со скобочками))))))))))
70 1348515
>>348455
Половина хейтит луп, половина мотает головой и повторяет: "да ну чо епт, да нормас епт, ДСЛ епты ж бля!".

В сабже кстати тоже есть что-то подобное ну не совсем, как бы круче, но и скоуп другой - манипуляции коллекциями, а не просто циклы: https://github.com/nathanmarz/specter - автор дико бугуртил по поводу того, что мол ну я ведь лучше сделал, работает быстрее, кода меньше, хуль вы в core это не пихаете... нутыпонел
71 1348700
>>348455
Common Lisp -- outdated устаревшее говнецо, чего стоят хотя бы разные неймспейсы функций и переменных.
И я читал в свое время On List, да, еще когда Reddit был фан-сайтом Пола Грехема.
Алсо, помню Clojure еще в зародыше. Как я проиграл сейчас, увидев, что в его Rationale до сих пор упоминается SISC, который почил в бозе больше 10 лет назад.
И че я вам скажу, ребятки. Работа с сырой датой нудна и нескалабильна. Помню, как я охуел после курсов SICP и построения компиляторов на Scheme, когда на продвинутом курсе построения языков решил реализовать набор интерпретаторов на жабке. Как все просто оказалось-то с нормальным ООП! Интерпретатор Scheme легче реализовать на жабке, чем на Scheme, такие дела.
72 1348723
>>348700

> Интерпретатор Scheme легче реализовать на жабке, чем на Scheme, такие дела.


Позволь с тобой не согласиться. Интерпретатор (или компилятор) простого, без выкрутасов подмножества Scheme на Scheme помещается в один экран. ООП - не панацея all heil closures, ну и в идее написания интерпретатора/компилятора на языке, им же обрабатываемом, есть что-то невыразимо фундаментально правильное (вроде бы в "Гёдель, Эшер, Бах" эта идея мусолится со всех сторон).
73 1348738
>>348723

>ну и в идее написания интерпретатора/компилятора на языке, им же обрабатываемом, есть что-то невыразимо фундаментально правильное


Так появляются языки - DSL для написания интерпретаторов. И языки эти говно для большей части прикладных задач.
74 1348747
>>348738
Не понял, о чём ты. Приведи пример?..
clojure-cannot-into-tail-recursion.png8 Кб, 1209x131
75 1348748
>>348723
Да даже в простом интерпретаторе нужно постоянно парсить дату, а как только тебе нужно добавить что-то нетривиальное типа lazy evaluation, то пиши кранты. А на жабке я чуть оргазм не испытал, когда понял, что можно оверрайдить методы в классе Expression, например.

Кстати, посоны, че-то я не понял, пикрелейтед означает, что кложа сосет? Несмотря на третье тысячелетие? Это, типа, такой убийца Лиспа? Может оно еще и в call/cc не умеет?
76 1348751
>>348700

>чего стоят хотя бы разные неймспейсы функций и переменных.


В этом нет ничего устаревшего, это просто две разных опции. На самом деле, это даже удобно, потому что в лисп-1 (в частности в кложе) часто локальные переменные затеняют функции из core (первый пример, что приходит на ум - name). Но да, лисп-1 концептуально гораздо более логичен, конечно, поэтому я предпочитаю его.

>Интерпретатор Scheme легче реализовать на жабке, чем на Scheme, такие дела.


Это неправда ложь, пиздежь и провокация хотя бы потому, что в scheme у тебя уже реализованы функции парсинга секспов, так что тебе элементарно нужно меньше реализовывать. Ну и да, простой интерпретатор - это полтора десятка строчек, помещается на один экран. На руби\схеме\питоне он будет проще и короче, чем на джаве, просто в силу специфики предназначения этих языков.

>>348748

>А на жабке я чуть оргазм не испытал, когда понял, что можно оверрайдить методы в классе Expression, например.


Гхм, ну... slowpoke.png

>пикрелейтед


Я понимаю, что ты троллишь прекрати, это не го-тред, но все равно отвечу на платину: https://clojure.org/about/functional_programming#_recursive_looping
77 1348753
>>348748

> lazy evaluation


Дак это же традиционно добавляется макросом, который заворачивает выражение-аргумент в лямбду, не?
clojure-cannot-into-tail-recursion-really.png17 Кб, 1175x220
78 1348754
>>348753
Ну не в этом суть, речь о том, что парсинг даты подходит лишь для простых задач. А для простых задач есть Питон! Который тоже не умеет в tail recursion, как и кложа — см. пикрелейтед.
79 1348755
>>348748

> call/cc


Scheme, мне, конечно, нравится как эта няша вообще может кому-то не нравиться?, но call/cc - это, кмк, самая ёбнутая её фича. Понятно, конечно, что мощща, все дела, что всю муть типа try/catch, unwind-protect и прочего можно реализовать поверх call/cc, но всё равно такое.
80 1348756
>>348754

> Ну не в этом суть, речь о том, что парсинг даты подходит лишь для простых задач.


Ну да, для сложных задач есть макросы которых, естественно, в гвидобейсике нет. Что не так-то?

Алсо, питон - это такая кривая пародия на Scheme с нескучным синтаксисом, это я говорю как человек, пишущий на этом говне года с двенадцатого и преподающий эту хуйню за деньги.
81 1348757
>>348755

>но call/cc - это, кмк, самая ёбнутая её фича


Это потому что ты не умеешь ее готовить.
Мы через нее реализовывали co-routines, например.
И да, лучше язык с сильными фичами в ядре, поверх которых можно реализовать все остальное, чем нагромождение хаков в том же ядре. Факт, что хорошие интерпретаторы Scheme нормально и эффективно все реализовывали, тот же SISC, например.
82 1348759
>>348747

>Не понял, о чём ты. Приведи пример?..


Не буду, потому что увидел тред и не хочу разводить срач в тематике
83 1348761
>>348756

>Алсо, питон - это такая кривая пародия на Scheme с нескучным синтаксисом, это я говорю как человек, пишущий на этом говне года с двенадцатого и преподающий эту хуйню за деньги.


Вот нинада, нинада грязи. В третьем Питоне даже nonlocal есть для любителей SICP и курс тоже есть, и дизайн в нем заебись, весь такой математический, чего стоит хотя бы униформный подход к атрибутам класса — хочешь, static, хочешь, не static. Я преподавал SICP на Питоне за бабло, лол, и это гораздо приятнее, чем Scheme.
84 1348767
>>348751

>но все равно отвечу на платину: https://clojure.org/about/functional_programming#_recursive_looping


И таки да, объясните тупому, позязя, почему вот это вот:

>Since Clojure uses the Java calling conventions, it cannot, and does not, make the same tail call optimization guarantees. Instead, it provides the recur special operator, which does constant-space recursive looping by rebinding and jumping to the nearest enclosing loop or function frame.


не является "я ниасилил, хнык хнык"? Зачем ему recur для tail call optimization внутри функции, и при чем здесь Java calling conventions, если это все исключительно внутри функции происходит? И почему SISC осилил полный tail recursion в JVM, а Clojure — ниасилил?
85 1348770
>>348761
Ну фломастеры, да. Я не могу всерьёз воспринимать язык без TCO, сорь. Про макросы вообще молчу, таких же макросов, как в лиспах, вроде больше ни в одном языке нет.

> весь такой математический


Да брось. Фортран математический. Питон простой, как тяпка, из-за этого в него в начале 10-х хлынули толпы вкатывальщиков, а дух старой школы, unix-хакеры, все дела, соответственно, ушёл.

>>348759
А ты мне в личку напиши
86 1348775
>>348767

> И почему SISC осилил полный tail recursion в JVM, а Clojure — ниасилил?


Кстати, присоединюсь к вопросу. Как я помню из упражнения 5.52 в SICP, хвостовая рекурсия не особо сложно реализуется, просто пара лишних мозговых трюков при компиляции вызова функции.
87 1348778
В прочем, вы уже сретесь.
>>348747

>Не понял, о чём ты. Приведи пример?..


Короче, есть язык питон. Универсальный язык для людей. На котором имплементируются мощные вещи типа theano и tensorflow. И если присмотреться к нему, то у него важные куски типа парсера написаны на си.

А есть языки, при рассмотрении фич которых под микроскопом можно понять, что автор языка интересны языки и средства для написания языков. Он и язык свой рассматривает как штуку, на которой он напишет компилятор языка. И все фичи ориентированны на это. В итоге получается такой язык для написания DSL, на котором обыкновенные прикладные задачи писать неудобно.
factorial.png26 Кб, 930x764
88 1348781
Этому треду не хватает ламбда-исчисления.
89 1348785
>>348770

>Я не могу всерьёз воспринимать язык без TCO, сорь. Про макросы вообще молчу, таких же макросов, как в лиспах, вроде больше ни в одном языке нет.


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

>Фортран математический


Ты его видел? То, что на нем много легаси-математики написано не делает его математическим языком, да и сам этот код от старости не стал лучше, типичный инженерный говнокод.

А питон далеко не прост, точнее его простота сложна с точки зрения проектирования. Просто спроектировать неортогональную поебень типа PHP или visual basic'а. Спроектировать питон сложно, даже он получился только с третьего раза и имеет шанс скатиться с уходом фюрера со сцены.
90 1348786
>>348785

>Спроектировать питон сложно, даже он получился только с третьего раза и имеет шанс скатиться с уходом фюрера со сцены.


Вот-вот. Когда реализуешь а-ля SICP классы на Питоне, то понимаешь, насколько он охуенен.
https://wizardforcel.gitbooks.io/sicp-in-python/content/13.html
(PNG Image, 512 × 846 pixels) - Scaled (78).png779 Кб, 512x846
91 1348807
>>348781
Вы все еще делаете аппликацию вместо композиции? Тогда вставайте к стенке!
92 1348811
>>348754
Микросервисы и распределенные архитектуры подходят только для простых задач, мы тебя услышали. Ну вот ей богу, такую хуйню люди несут, когда не разбираются в том, о чем говорят, ну пиздец же просто.

>>348757
Где теперь sisc и где кложа. Пиздежь ни о чем. ¯\_(ツ)_/¯
93 1348822
>>348754

>пикрелейтед


Анон, а ты не пробовал читать документацию к функциям, которые вызываешь? Ну чтоб не позориться тип. trampoline ожидает thunk с рекурсивным вызовом внутри, а ты написал какую-то хуйню, не имеющую никакого смысла. На этом, думаю, все разговоры о ГЛУБИННОЙ СУТИ языков с тобой можно закончить, ну сам как думаешь? Только честно. (trampoline (fn [x] (fn [] (x x))) (fn [x] (fn [] (x x)))) ну или (trampoline ((fn [x] (fn [] (x x))) (fn [x] (fn [] (x x))))), если хочется просто обернуть вызов как в оригинале
94 1348833
>>348767
>>348775
Вторая ссылка в гугле: https://stackoverflow.com/questions/19462314/why-cant-tail-calls-be-optimized-in-jvm-based-lisps

>>348778

>На котором имплементируются мощные вещи типа theano и tensorflow.


Тензорфлоу по факту написан на крестах. Алсо, если уж сравнивать "мощные вещи", то на сабже написаны apache storm, onyx, riemann, neanderthal ну и собственно датомик. Что-то я сходу не назову проектов уровня датомик на питоне . Но в любом случае это довольно глупый и бессмысленный подход к сравнению языков.
95 1348848
>>348807
В оригинале там и были комбинаторы, это уже скомпилированный результат, так сказать.
96 1348853
>>348811

>Микросервисы и распределенные архитектуры подходят только для простых задач, мы тебя услышали.


Помню точно такие же аргументы 20-летней давности, только тогда это было про применение Лиспа для уберсложных систем заказа билетов и прочей хуиты типа систем символьной алгебры. По факту, это обычно какой-то фанатик в роли CTO пропихивает свои фетиши.
97 1348857
>>348822

>(trampoline (fn [x] (fn [] (x x))) (fn [x] (fn [] (x x))))


Лол, работает же.
98 1348861
>>348853
При чем тут лисп? Перечитай последние два поста в цепочке еще раз.
99 1348863
>>348853

>Помню точно такие же аргументы 20-летней давности, только тогда это было про применение Лиспа для уберсложных систем заказа билетов и прочей хуиты типа систем символьной алгебры.


На Лиспе был написан (Полом Грэмом) первый генератор интернет магазинов Viaweb, типа нынешних Ecwid, InSales, и прочих. Это было в 90-х, когда динамических сайтов было по пальцам пересчитать. Потом его купил Yahoo, и благодаря этой продаже Пол Грэм стал миллионером.
100 1348869
Да и если уж на то пошло, символьная алгебра с экспертными системами были не 20, а 40 лет назад (в 80-ых), и тогда для нее лишп как раз успешно применялся (пока весь этот пузырь символьных вычислений не крякнулся).
101 1348872
>>348857
Ну да, если иногда включать голову и читать документацию, то все вдруг начинает работать, кек. А если ничего из перечисленного не получается, то возможно и вправду будет "интерпретатор на жабке легче написать, чем на scheme". ¯\_(ツ)_/¯
102 1348878
>>348863

>На Лиспе был написан (Полом Грэмом) первый генератор интернет магазинов Viaweb, типа нынешних Ecwid, InSales, и прочих


Типичное "какой-то фанатик в роли CTO пропихивает свои фетиши."

>Потом его купил Yahoo,


И все переписал

>и благодаря этой продаже Пол Грэм стал миллионером.


Во время доткомбума. В биткоины он не вложился случайно?
wolfram.jpg169 Кб, 500x357
103 1348879
>>348869

>пока весь этот пузырь символьных вычислений не крякнулся



Он не крякнулся, просто всякие медленные и неудобные Максимы))) были вытеснены лучшими инструментами.
104 1348881
>>348879
Он крякнулся. Тогда это было примерно то же, что нейронки сейчас, панацея от всего.
А вольфрам.жпг молодец, единственный нормальный лисп в этом мире.
105 1348894
>>348881
Но нейронки ведь и вправду панацея от всего. Ну мам, ну сингулярность ведь, ну мам!
106 1348950
>>348878

>Типичное "какой-то фанатик в роли CTO пропихивает свои фетиши."


Ты фанатик чепухи. Ты даже не можешь объяснить, что ты хочешь донести своими набросами. Ты как раз таки фанатик, только непонятно чего. А Грэм успешный программист и бизнесмен. Он создал множество успешных проектов. И коммерчески успешных и технически. Создал язык программирования. Написал несколько книг. Множество статей.

>>348878

>И все переписал


Это не имеет никакого значения. Когда Грэм вел проект, Лисп позволил им быть успешнее конкурентов. Они были первопроходцами в своем деле. И были такие же фанатики как и ты, которые хейтили их подход к разработке, к выбору инструментов. Но они не смотрели на таких, а просто делали дело.

>>348878

>Во время доткомбума.


Он с компаньеном продал рабочий продукт, который и после них работал, и если не ошибаюсь до сих пор существует под другим уже названием.

В общем я тебя понял. Ты обычный завистливый самодовольный хейтер. Сам ничего подобного не сделал. Завидуй молча.
15472449245470.jpg1,4 Мб, 1080x1080
107 1349029
>>348872
Ну, начнем с того, что ты пиздоглазое мудило что я этот Clojure поставил на поиграться за 5 минут до того, в отличие от Scheme, на котором я компиляторы писал, например, а первые версии кложы я успел забыть уже ты тогда еще под стол пешком ходил, щенок ебаный. И ((lambda (x) (x x)) (lambda (x) (x x))) — первая вещь, которую я пробую на очередном убийце Лишпа, особенно если оно на JVM, потому что забавно читать неосиляторские отмазки, умея в байткод, например. Так что все с вашей кложей ясно, потому что поиграться гораздо комфортнее и правильнее будет с Chez Scheme, если хардкорно, или в DrRacket, если лениво. А норм проекты писать лучше на C++, жабке даже не Скале и Питончике, такие дела.
108 1349032
>>348881

>А вольфрам.жпг молодец, единственный нормальный лисп в этом мире.


Эта... там же ядро с говнокодом на Си, не? А норм лисп это Maple же.
graham-hierarchy.png72 Кб, 500x375
109 1349039
>>348950

>Он создал множество успешных проектов. И коммерчески успешных и технически.


Это ты про Reddit. Ньюфаги не знают, но Реддит полностью провалился, как технический проект, потому что задумывался, как recommendation system для новостей, где каждый получает индивидуальную подборку под себя, а в результате получился более вылизанный Digg. И все потому, что гений Грэм выбрал для проекта дебилов-студентов, которые даже пароли хранили в открытом виде.

>Множество статей.


О да, графоман, прямо как Joel. И ценность статей аналогичная.

>Когда Грэм вел проект, Лисп позволил им быть успешнее конкурентов.


О, как. Объясняю малышне, как это работает на самом деле (тм). Новомодные языки, как та же кложа сейчас, позволяют набирать в сплоченную команду оче умных увлеченных программистов-рубистов (в основном свежевыпеченных студентов, но не только), которые к тому же никуда не уйдут потом, потому что ниша оче узкая. Именно это позволяет быть успешнее конкурентов, а не язык.

>Сам ничего подобного не сделал. Завидуй молча.


Лол, совсем недавно полсосача дрочили вприсядку на мои проекты. Впрочем, взгляни хотя бы на диаграмку своего гуры, щенок.
110 1349050
>>349039

> Cental Point


Какой он у тебя, собственно?
111 1349058
>>349039

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


Скажи мне, что это такой тонкий самоироничный троллинг, пожалуйста.
112 1349071
>>349039

>О, как. Объясняю малышне, как это работает на самом деле (тм). Новомодные языки, как та же кложа сейчас, позволяют набирать в сплоченную команду оче умных увлеченных программистов-рубистов (в основном свежевыпеченных студентов, но не только), которые к тому же никуда не уйдут потом, потому что ниша оче узкая.


Ну предположим.

> Именно это позволяет быть успешнее конкурентов, а не язык.


> а не язык


А тут логическая ошибка, даже если "новомодные языки" привлекают умных программистов, то из этого не следует, что язык из-за своих свойств не увеличивает конкурентоспособность.
113 1349072
>>349039

>Реддит полностью провалился


Пфф, пешы есчо, я записываю. Реддит обогнал фэйсбук по посещаемости в США, заняв 3-е место в США, и 6-е в мире по посещаемости.

https://tjournal.ru/flood/71525-issledovanie-reddit-obognal-facebook-i-voshel-v-troyku-samyh-populyarnyh-saytov-v-ssha

Посещаемость реддита сотни миллионов человек в месяц. Оценочная стоимость около 2-х миллиардов долларов.

Вообще то я имел ввиду Y Combinator, его создал Грэм. Но и в создании Reddit поучаствовал. Проинвестировал его, и направлял как ты говоришь "студентов" в нужное русло, чтобы они смогли выпустить рабочую версию продукта.

На этом ликбез закончен. Смотри не захлебнись желчью.
114 1349074
>>349039
Дура, они писали на Common Lisp. При чем тут Clojure. И Clojure это Лисп, поэтому никак не может быть "новомодным". Лиспам уже больше 50-ти лет.
115 1349080
>>349029

>я этот Clojure поставил на поиграться за 5 минут до того


Да все с тобой уже ясно, можешь не оправдываться. Впрочем, ты и сам наверняка понимаешь, как это со стороны выглядит.
116 1349082
Кстати, подолью масла в огонь: Пол не только лишпер и штартапер, но и республиканец-совкохейтер: https://twitter.com/paulg/status/1089194158961684480

Повторяйте за мной вслух и медленно.Республиканец. Штартапер. Из кремниевой. Долины.

Чувствуете божественную благодать?
117 1349086
>>349082
Ну это только доказывает, что чувак шарит в жизни. Пойду Land of LISP читать, хотя раньше даже и не думал о лиспе!
15495657042610.jpg47 Кб, 660x371
118 1349091
119 1349110
>>349072
Лулз, какой же ты тупой неудевительно, так как являешься адептом некроязыков.
Перечитай мой пост еще раз. Какая разница, кого там Реддит обогнал по посещаемости? Когда он создавался, и Грэм и фаундеры вопили о том, что он кардинально отличается от Дигга, но скачок в популярности состоялся лишь тогда, когда Дигг начал загибаться. Если бы Дигг не загнулся, о Реддите все уже давно забыли бы.
93401914.jpg210 Кб, 1500x954
120 1349113
>>349074

>Дура, они писали на Common Lisp. При чем тут Clojure


>И Clojure это Лисп

121 1349125
>>349110

>Успех и не успех вовси, и милливоны долляров не миливоны)))


Анон раскрывает секреты успеха, спешите купить курсы.
Мимо другой анон.
122 1349128
>>349110

>Если бы Дигг не загнулся, о Реддите все уже давно забыли бы.


Совковая логика. Нет никаких если. Ты не умеешь заглядывать в будущее, и знать что было бы если бы произошло "если". Как известно, если бы у бабушки был... Так что оставь свои манявры кому-нибудь другому. То что ты говоришь это детский лепет.
123 1349129
>>349110
А если бы у бабушки тебя был хуй мозг, то она ты была бы дедушкой итт так не серил под себя, наверное.
124 1349133
>>349113
Снова дура... Там написано, что успех был благодаря "новомодным языкам" наподобие Clojure. Дура, повторяю, они не писали на Clojure, и они не писали на "новомодном языке". Они писали на том, что школота называет "говном мамонта", "хуйней без задач", и тому подобными эпитетами. Как оказалось, такое говно позволяет писать проекты любой сложности в максимально сжатые сроки, и при этом иметь удобно поддерживаемый продукт, а не софт на выброс.
125 1349137
>>349125

>Если ты такой умный, то где тваё бабло?


С таким подходом пиздуй в тред про пехопе, маня.

>>349128
Аналогично, речь о технологических преимуществах лишперов, а не о бабле.
Я хорошо помню развитие Реддита, долгое время это было обычное сектантское дрочерство на лишп/либертариантство/атеизм, с эпическими проебами, как когда у них увели базу данны с cleartext-паролями. Фаундеры там были истерички типа Скотта Ааронсона. С точки зрения технологии там нет ничего интересного вообще, они тупо скопипастили Дигг, а изначальную идею ниасилили.

>>349133
Лол, Грэм быстро начал пилить свой язык, и книжку про макросы он просто так написал.

>Как оказалось, такое говно позволяет писать проекты любой сложности в максимально сжатые сроки, и при этом иметь удобно поддерживаемый продукт


Лол, а ты это конечно пишешь с позиции опытного студента-иксперда, поддерживавшего проекты аж из трех файлов?
126 1349139
>>349137
>>349137

>Я хорошо помню развитие Реддита


Опять обосрался. Речь была про Viaweb. Есть статья про него, называется "Lisp: побеждая посредственность".

http://www.nestor.minsk.by/sr/2003/07/30710.html

Этот проект сделал Грэма миллионером. Когда разрабатывали Reddit он уже был верчурным инвестором, а не стартапером или разрабом. В любом случае Reddit стал одним из успешнейших веб-проектов за всю историю.

>>349137

>Я хорошо помню развитие Реддита, долгое время это было обычное сектантское дрочерство на лишп/либертариантство/атеизм, с эпическими проебами, как когда у них увели базу данны с cleartext-паролями.


Что ты несешь дура. Тебе тогда еще сопли подтирали. Воспоминальщик хренов.
127 1349143
>>349139
Лол, ты в английский хоть можешь, студентик ссаный?)))
128 1349146
>>349143
Хули ты маняврируешь. Ты даже на русском не осилишь.
129 1349150
Капитализация Reddit достигла $3 млрд после привлечения $300 млн инвестиций

https://habr.com/ru/company/iticapital/blog/440540/

Шах и мат.
130 1349154
>>349150
Поясните зачем борде 300 лямов? Что они могут на эти деньги сделать?
131 1349165
>>349154
Сервера, например.
132 1349169
>>349146
Ясно, студентик)))
large.jpg58 Кб, 800x450
133 1349193
Итак, в кложетреде срутся за Common Lisp, политоту и коммерческий успех стартапов. Двач. Двач никогда не меняется.
hickey.png139 Кб, 527x394
134 1349201
>>349193

>твое лицо когда зашел в кложетред на дваче

135 1349205
>>349193
А что обсуждать, кложу?
Кложа, это такое говно, чтобы опердени писать. Да, писать без омерзения, в отличии от жавки. Но только вот интересным языком она от этого не становится. Вот Common Lisp, в отличии от, интересный, поэтому и срёмся.
136 1349215
>>349165
Если на форум нужны сервера за 300 лямов то извините но это пиздец.
137 1349234
>>349205

>Common Lisp


>Clojure


Спор не об этом. А о том, что Лиспы крутые, и на них писали и пишут крутой софт.
138 1349235
>>349234
Настолько крутые, что приходится это постоянно доказывать
139 1349240
>>349235
ИЧСХ другим лисперам в лиспосрачах.
140 1349252
>>349235
Если кто-то набрасывает, то почему бы не натыкать его носом. Я привел голые факты. От себя ничего не придумал. Нужно уметь доказывать свою точку зрения. Не просто говном кидаться, а делать это последовательно, стройно, методично. Этот навык очень полезен в жизни.
141 1349315
>>349234
Лиспы крутые, но Clojure - не лисп.
142 1349541
>>349315

>Clojure - не лисп


Ога, и курица не птица.
143 1349584
>>349205

>Common Lisp


>интересный


Scheme гораздо интереснее.
144 1349630
>>349584
Особенно Racket.
145 1349722
>>349630
Gambit
146 1349743
>>349722

>Gambit


Не умеет r6rs, оф. сайт состоит из пустой страницы, закапывайте.
147 1349925
>>349541
А, ну тогда жээс - это сишка, да.
148 1349927
>>349722
А вообще, есть что-то лучше чем Chez?
149 1349929
>>349584
Раз ты у нас такой скимер, весь из себя, покажи какие-нибудь интересные примеры использования call/cc, только не генераторы и подобное.
150 1349931
>>349029

>первая вещь, которую я пробую на очередном убийце Лишпа


Я не пони, а зачем ты эту вещь пробуешь? Во что по-твоему должна вычисляться омега?
151 1349942
>>349925
Что с тобой не так? Clojure это Лисп.
152 1349955
>>349315
>>349942
На всякий случай напомню вам, что все этим ваши лиспы — это не Лисп.
153 1349961
>>349955
Лекарство прими.
154 1349981
>>349955
Если я правильно понял, то это синтаксис в форме Бэкуса - Наура (БНФ). Только и всего.
155 1349982
>>349955
Какой бы ни был синтаксис, семантика Лиспа всегда едина.
156 1350001
>>349927
Есть, stalin Джеффри Сискинда. Заброшен в 2006, но до сих пор в бенчмарках по быстродействию не даёт за щёку только Chez, да и то только потому, что поддерживает только R4RS, и больше половины бенчмарков на нём тупо не запускаются.
157 1350003
>>349929
Ну дык вон выше в треде анон поверх него корутины делал. Это ещё в TSPL было, как раз в главе про продолжения.
158 1350015
>>349252
Откровения студентика с нулевым опытом в индустрии, обчитавшегося переводных сектантских статей, спешите видеть)))
159 1350019
>>349927
Нет Chez лучше всех, там куча инноваций, которые долгое время были коммерчески закрыты. И вообще, лучшие реализации Scheme пришли из универа Индианы, это неспроста — тот же SISC, автор которого написал создал RabbitMQ для кложы, например. У меня лектор по построению компиляторов и по функциональщине тоже из Индианы был.
160 1350021
>>349931
Элементарная проверка TCO, это ж азы.
161 1350062
>>349205
О, а вот и наш старый друг местный коммонлиспер пожаловал))00))0

>>349982

>семантика Лиспа


Это что такое? Опиши ее, пожалуйста.
162 1350065
>>349929
Формлеты, еще веб-фреймворк на них какой-то был, seehorse или seesaw, что-то такое.

>>350015

>)))


Да анон, ты слился уже, причем в двух разных дискуссиях (если я не путаюсь в семенах), прекращай гореть и просто move on я другой анон

>>350019

>RabbitMQ для кложы


Это что? Можно линк?
163 1350070
>>350062

>Это что такое? Опиши ее, пожалуйста.


Ты не знаешь что такое семантика? В двух словах я бы называл семантику Лиспа как Лямбда-исчисление в виде S-выражений.
164 1350082
>>350070
Но тогда получается, что CL - не лисп.
165 1350097
>>350082
С чего это вдруг? БНФ как я понял использовалась в ранних версиях Лиспа. Сейчас повсеместно прижился другой синтаксис. Но семантика осталась прежней.
166 1350105
>>350065

>а анон, ты слился уже, причем в двух разных дискуссиях


Ты хочешь сказать, что этот ИТТ тхреад не состоит из семенов студентоты без опыта чуть менее, чем полностью? Аргументы-то про кложу для риал-ворлд, это примерно как Генту в дата центрах.
167 1350126
>>350097
Ну с того, что он не имеет практически ничего общего с лямбда-исчислением. Да и вообще, утверждение вида "семантика х - это y в виде s-expr'ов", ну оно некорректное, потому что секспры - это же синтаксис, а не семантика.

Кстати, в ранних версиях Лиспа (именно Лиспа, не семейства, а конкретного языка от Маккарти) вроде использовались f-expr'ы, но я уже не помню деталей.

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

>>350105
Я не знаю, из кого там что состоит, я не телепат. Я просто читаю тред и вижу то, о чем я написал в прошлом посте. Вот и сейчас ты продолжаешь то же самое (по-моему совершенно зря, но дело хозяйское).
168 1350204
>>350126

>секспры - это же синтаксис, а не семантика


S-выражения это прежде всего структура данных. Может записываться по разному. В БНФ синтаксисе или по другому.

>>350126

>не имеет практически ничего общего с лямбда-исчислением


Как это не имеет. Лисп основан на математических моделях таких как теория рекурсивных функций, Лямбда-исчисление, Комбинаторная логика. Все это почти что одно и тоже.

>>350126

>Есть си-подобные языки, есть лиспообразные. В лиспах мы читаем поток символов и получаем структуру данных, которую можем потом ворочать макросами. В си-подобных мы ебемся в фигурные скобки.


Ты говоришь о синтаксисе, а не о семантике. JS хоть и имеет Си-подобный синтаксис, но также имеет в основе Лямбда-исчисление, которое не про синтаксис. Его легко можно использовать как язык подобный Лямбда-исчислению, так как в нем есть функции первого класса и высшего порядка. В ES6 синтаксис функций сделали еще более приближенным к синтаксису ЛИ.

Посмотри как выглядят выражения в синтаксисе Лямбда-исчисления и в синтаксисе JS. Это почти одно и тоже.

https://www.youtube.com/watch?v=3VQ382QG-y4
169 1350535
>>350204

>S-выражения это прежде всего структура данных.


Ну вот википедия: In computing, s-expressions, sexprs or sexps (for "symbolic expression") are a notation for nested list (tree-structured) data - википедиоры опять все перепутали? Вот сам маккарти: http://www-formal.stanford.edu/jmc/recursive/node3.html

>В БНФ синтаксисе или по другому.


Блядь, какой еще бнф синтаксис вообще? БНФ - система записи кс-грамматики, при чем они тут?

>Как это не имеет.


Ну открой PCL или ansi cl и почитай.

>JS хоть и имеет Си-подобный синтаксис, но также имеет в основе Лямбда-исчисление


Блядь, жс имеет в основе императивную динамикодрисню, на которую сбоку прилепили лямбды. Ты уже совсем хуйню какую-то пишешь. Х-ль имеет в основе лямду (не простую, а систем ф), а жс и кл имеют к ней такое же отношение, как и с++. Иди смотри https://en.wikipedia.org/wiki/Lambda_cube

>Его легко можно использовать как язык подобный Лямбда-исчислению


С++ тоже можно, давай теперь говорить, что лямбда является формальной моделью крестов. Ну хуйня короче, разговор ни о чем.
170 1350656
Кончайте срач, кложа не манна небесная, все знают, а за лиспы трепаться делайте свой тред и трепитесь там. Я вам даже шапку скину, если сами не найдете.
171 1350662
>>350656
Ну ладно тебе, дядь, вон на реддите тоже срутся: https://www.reddit.com/r/Clojure/comments/ari2vd/insideclojure_journal_20197_jdk_regression_spec/
172 1350665
>>350662
Разве эти смерды нам ровня?
173 1350688
>>350665
nuuu tuuupye
174 1350767
>>350535

>list (tree-structured)


Лист это что? Структура данных.
175 1350769
>>350535

>жс имеет в основе императивную динамикодрисню


JS испытал влияние Scheme. Функции в JS объекты первого класса, в отличие от Java например.
176 1350890
>>342400 (OP)
Нахуй он нужен?
177 1350900
>>350890
Тебе не нужен. Еще вопросы?
178 1350916
>>350767
Список - структура данных, секспры - нотация. Ну анон, не тролли тупостью.

>>350769
Джава тоже испытала влияние схемы, лол, учи матчасть. К "имеет в основе лямбду" это не имеет вообще никаког отношения.
179 1350917
>>350890
Чтобы пилить динамические фулстак опердени в основном.
180 1350918
>>350900
Как в него играть?
181 1350935
>>342400 (OP)

>Начать: http://maria.cloud/


Прикольный сайтик.
182 1350944
>>342400 (OP)
Только что узнал, что klipse оказывается на сабже написан:
https://github.com/viebel/klipse

И его автор еще пилит книжку по кложе для вкатывальщиков (никогда бы не подумал, что так можно было):
https://www.manning.com/books/get-programming-with-clojure?a_aid=viebel&a_bid=399d9d64

И вообще у него довольно интересный блог, есть вот очень понятное введение в re-frame (и все эти ваши редуксы\рефлуксы\эльм-архитектуры в целом):
https://blog.klipse.tech//clojure/2019/02/17/reframe-tutorial.html
183 1351133
>>350918
-> >>350935 вот так и играть
184 1351192
ReasonML vs ClojureScript?
185 1351328
>>351192
Если шашечки, то первое.
Если ехать, то второе.
186 1351412
>>351328
У Reason есть поддержка крупного вендора. У ClojureScript такого нет. Экосистема CljS сильно размазана по полотну, нет целостности, так как нет вендора и соответственно вектора развития.
187 1351430
>>351412

>Экосистема CljS


Ты так рофлишь?
188 1351441
>>351430
Что не так?
189 1351546
>>351412

>У Reason есть поддержка крупного вендора.


Ризон - это просто нескучный синтаксис для окамла. Окамлом плотно занимается джейнстрит, хз насколько он крупный по сравнению с когнитектом.

>Экосистема CljS сильно размазана по полотну, нет целостности


Ты какую-то хуйню несешь, если честно, нафига спорить, если не шаришь в теме. Ты пришел по делу спросить или тупо срач устроить? Если тебе нужно прямо сейчас сесть и фигачить приложения в продакшн, то клжс для этого отлично подходит (и сравнивать его надо с жс и тайпскриптом, а не с ризоном), ибо есть относительно зрелая инфраструктура. Если тебе просто поиграться с функциональным языком, который может в компиляцию в жс, то я бы на твоем месте вообще взял чистый окамл, без надстройки от фб. С другой стороны, ризон удобнее в плане того, что любая жс-макака может одной командой его установить, это хорошо. С другой другой стороны, с окамлом у тебя есть опам и все, а с ризоном у тебя сразу же вагон билдтулов, половина из которых из жс, а половина в пермаментной альфе. Ну тут хуй знает, шило на мыло, но я бы все равно склонялся в сторону чистого окамла.
190 1351548
191 1351571
>>351546

>Ризон - это просто нескучный синтаксис для окамла.


На выходе JS как в случае с CljS.

>>351546

>Окамлом плотно занимается джейнстрит


Facebook вообще то.

>>351546

>ибо есть относительно зрелая инфраструктура


Вот с этим я и не согласен. Тулинг хреновый. Все размазано. Компилятором пользоваться неудобно. Поэтому запилили несколько разных оберток тоже не очень хорошего качества. Сами создателя языка тупо забили на тулинг. Для Clojure даже нет нативных пакетов под линукс.

Несколько оберток для реакта, непонятно зачем столько. Походу они все хреновые, раз постоянно появляются новые. Давно слежу за Clojure & ClojureScript, и вижу что за все время экосистема не стала лучше. Она загнивает. Экосистема Окамла (не Reason) намного превосходит. Все четко, все автоматизировано. В Clojure весь тулинг через зад сделан.
192 1351575
>>351548
Все равно тулинг в OCaml/Reason четче. Все отточено и вылизано. В Clojure/ClojureScript тупо колхоз.
193 1351576
Кто-нибудь тут работает реально на кложе?
194 1351577
>>351548
По финансовым и dev ресурсам один фэйсбук перевесит всех кто пользуется Clojurescript.
195 1351578
>>351571
Если язык(два) с одним единственным инструментом по сути(ляйн) для тебя это >Все размазано
, то что для тебя туллинг в чисто js, где webpack, bable, npm, bower и еще 2 или 3 тулзы, это дэфолт, обязательный для каждого хелло-ворлда?

>Несколько оберток для реакта, непонятно зачем столько


Потому что библиотеки пилет комьюнити? Я могу еще одну обертку написать, или даже две, сам язые от этого станет хуже? Опять таки, в самом js сотни и тысячи фреймворков, это минус что ли?
196 1351579
>>351546
Сайт Reason переведен на русский. Это подтверждает, что проект поддерживает крупный вендор, который заботится о пользователях. Не забивает болт на разработку. В противоположность этому, экосистема Clojure похожа на российскую деревню в глубинке. Уныние и разруха. Никто не хочет ничем заниматься и ничего менять.
197 1351581
>>351579

>Кложа плохо, reason хорощо


>>351192

>ReasonML vs ClojureScript?


Ну там что за вопросы? Тебе нужно одобрение двача? Одобряем-с, юзай себе reason на здоровье
198 1351584
>>351578

>ляйн


Еще есть deps cli, который почему то появился только в прошлом году! через 12 лет после появления языка! Это говорит о том, что разработчикам похер на все. Они сидят в своем болоте, и думают что всем комфортно сидеть вместе с ними. Вся экосистема Clojure протухла. Хотя нет, она изначально была такой.

>>351578

>где webpack, bable, npm, bower и еще 2 или 3 тулзы, это дэфолт


Все это юзать не обязательно. Если нет задачи использовать ES8/9/10, то babel можно уже не юзать. NPM нормально решает свои задачи, и это нативный инструмент, а lein левая штука. В JS экосистема отточена. Это раньше было все плохо. Сейчас есть все что нужно, и все работает так как нужно.

>>351578

>Потому что библиотеки пилет комьюнити? Я могу еще одну обертку написать, или даже две, сам язые от этого станет хуже? Опять таки, в самом js сотни и тысячи фреймворков, это минус что ли?


Когда там ring обновляли? Последний релиз 28 октября прошлого года. В сообществе Clojure нет вектора развития. Поэтому я говорю что все размазано. Все либы пишутся непонятно кем и непонятно как.
199 1351585
>>351578

>Опять таки, в самом js сотни и тысячи фреймворков, это минус что ли?


Не сотни и не тысячи. Для фронта и бэка по несколько штук. Но все они имеют четкий вектор развития, свою философию, поддержку, выполняют свою определенную задачу. В Clojure и близко нет библиотеки с такой же поддержкой. Половина либ тупо не документирована.
200 1351590
>>351584

>то раньше было все плохо. Сейчас есть все что нужно, и все работает так как нужно.


Стало быть, это от хорошей жизни появлются всякие ризоны и слжсы, по 3 новых либы и фремворку каждый день, те самые >ES8/9/10, typescript и еще, еще, еще...
Да кложа сырая, юзай ризон, в чем проблема? В любом случае, любое говно лучше чем js, переход на что то другое, это путь в одну сторону, обратно уже не возвращаются.
201 1351593
>>351590
JS очень приятный язык, с отличной экосистемой. Мне просто хочется чего то нового. Мне нравятся лиспы, но блин, в Clojure реально хреново с экосистемой. Сам язык хорош, но на все остальное забили болт. Печально.
202 1351597
>>351593

>JS очень приятный язык, с отличной экосистемой


Начли следующий пост с буквы ж, если тебя держат в плену и тебе нужна помощь
203 1351716
>>351571

>На выходе JS как в случае с CljS.


Блядь, ты даже ридми у него не осилил прочитать, ну анон. На выходе жс у окамла (баклскрипт). Ризон - это просто нескучный синтаксис для него. Иди ртфм.

>Facebook вообще то.


Джейнстрит, см. выше. Гугли, читай.

>Все размазано.


Что это значит? Я не понимаю, что такое "размазано", у тебя какая-то своя, особая уличная терминология, лол.

>Компилятором пользоваться неудобно. Поэтому запилили несколько разных оберток


Это примерно как говорить "v8 пользоваться неудобно, поэтому запилили npm", что-то из этой же серии. Ты по-моему путаешь компиляторы с системами сборки\пакадж менеджерами.

>Для Clojure даже нет нативных пакетов под линукс.


Эм, так она как бы на жвм работает, какие еще "нативные пакеты"?

>Несколько оберток для реакта, непонятно зачем столько.


А зачем столько фреймворков для жаваскрипта?))0) Ну анон, смешно же такие вопросы задавать. В клжс их, кстати, всего 3 штуки.

>Экосистема Окамла (не Reason) намного превосходит. Все четко, все автоматизировано. В Clojure весь тулинг через зад сделан.


Ну анон, учитывая, что ты путаешь ризон и окамл, и не можешь привести ни одной конкретной проблемы (кроме "все размазано", лол), возникает ощущение, что ты ни с тем ни с другим не работал и просто пришел сюда троллить, уж извини за прямоту.

>>351575
Колзох и все размазано, ага))0)
204 1351721
>>351577
Ну так отличие в том, что фейсбуку положить хуй на ризон, у них просто была отдельная команда, которая занималась разработкой их компилятора для пхп (на котором написан фб), они работали на окамле и они же потом запилили ризон. Сам фейсбук использует жс, а это - сайд-проект отдельной команды. Так вот, отличие в том, что фейсбук может завтра взять и прекратить им заниматься (как например гугл взял и выкинул первый дарт, ну и десятки пользовательских сервисов), потому что он им не приносит никакого дохода, их бизнес на него никак не завязан. А тот же когнитект не может выбросить кложу, потому что у них все продукты на ней написаны, весь бизнес в итоге на нее завязан, и они полюбому будут вкладывать в нее деньги, пока все не помрут от старости.

Ну и насчет финансовых ресурсов, я еще раз говорю, посмотри на две странички по ссылкам. На первой - секси дизайн, красивые логотипы, хороший продажный текст, ну сразу видны финансовые ресурсы корочи, и 10 компаний. На второй - просто на отъебись одним чуваком выложен список в плейнтексте, и 100 компаний, в десять раз больше. В этом и отличие. Я же говорю, тут смотря что тебе надо: либо шашечки, либо ехать.
205 1351724
>>351579

>Сайт Reason переведен на русский.


1С тред здесь: https://2ch.hk/pr/res/1325574.html (М)
206 1351725
>>351584

>Еще есть deps cli, который почему то появился только в прошлом году! через 12 лет после появления языка!


И в чем проблема? Ты уже определись: то тебе не нравится, что появился deps cli, то тебе не нравится, что он не появился на 12 лет раньше. А в джаве, питоне и жс до сих пор нет аналога deps cli, атата, какой кошмар, все размазано! В чем конкретно у тебя проблема-то, ты можешь сформулировать?

>Все это юзать не обязательно.


Ну если тебе нужно анимацию на жквери к форме прикрутить, тогда необязательно, да))0)

>NPM нормально решает свои задачи, и это нативный инструмент, а lein левая штука.


Шта? lein на кложе написан, что значит "левая штука"?

>Когда там ring обновляли? Последний релиз 28 октября прошлого года.


Блядь, ну это просто форменный жаваскрипт головного мозга. Если библиотеку не обновляли больше двух часов, значит она уже устарела и надо переходить на что-то более трендовое, ага. Слышали, знаем.

>>351585

>Но все они имеют четкий вектор развития, свою философию, поддержку, выполняют свою определенную задачу.


Ну так и с клжс фреймворками все то же самое. Есть дефолтный выбор (ре-фрейм), есть легковесный (ром), есть хитровыебанно-навороченный (ом). В чем у тебя проблема-то?

>>351593

>Мне нравятся лиспы


Ну потыкай ракетку, например, но по-моему ты просто (повторяюсь) либо троллишь, либо специально ищешь какие-то надуманные отговорки.
207 1351744
>>351725
Хуета ваш Clojure. Колхоз ебучий. Языку хрен знает сколько лет, а они до сих пор не знают его правильно устанавливать. Мне неохота вот щас дрочиться отвечать на каждое предложение, а хочется, потому что в каждом у тебя написана хуета тупая.

Как бы мне не нравились лиспы, но вынужден признать, что даже экосистема racket намного круче чем в clojure. Clojure это вроде C++ в 90-е начало 2000-х, где не было ничего, ни пакетного менеджера, нихую. Хули тебе объяснять что то если ты ничего не видел, только кукарекаешь. Посмотри на экосистему эликсира, руби, или окамла, и сравни.
208 1351823
>>351744
>>351593
Почему этого клоуна все еще воспринимают всерьез в этом треде?
209 1352013
>>351744

>Колхоз ебучий


Еще все размазано, да))0)

>Мне неохота вот щас дрочиться отвечать на каждое предложение


Просто ты пытаешься в жирнющий троллинг, а на факты тебе ответить нечего.

>Clojure это вроде C++ в 90-е начало 2000-х, где не было ничего, ни пакетного менеджера, нихую


Только тут есть пакетный менеджер и все остальное, а так да))00)0

>Посмотри на экосистему эликсира, руби, или окамла, и сравни.


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

tl;dr: иди троллить в другое место
210 1352344
>>352013

>в эликсире до сих пор все в вечной альфе и релизы периодически поломанные



мимо-elixir-dev
029496A3-A760-4D94-A51D-0E1422583A1B.gif4,2 Мб, 450x278
211 1352347
>>352344
Отклеилось.
212 1352365
>>342400 (OP)
Почему Typed Clojure не взлетело?
Охуенная же штука.
213 1352498
>>352365
Скобкофилы не любят BDStrictM
15136043467410.png958 Кб, 1366x768
214 1352549
>>352344
>>352347
Блядь, чувак, ну у тебя даже картинка отломалась, лол. Такое нарочно не придумаешь, тоталли прувд май поинт))0
215 1352551
>>352365
Потому что нахуя писать типы, если можно не писать? Оверхеда и шума много, а профита хуй да нихуя.

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

Алсо, для тех, кому хочется странного, есть https://github.com/arohner/spectrum

Ну и тащем-то
~> cljs
ClojureScript 1.10.516
cljs.user=> (defn foo [x] (if (string? x) (+ x 1)))
WARNING: cljs.core/+, all arguments must be numbers, got [string number] instead at line 1 <cljs repl>
#'cljs.user/foo
например
216 1353232
>>342400 (OP)
Бля, мне кажется, или nth должен принимать последовательность последним аргументом, а не первым? Для векторов же есть get
217 1353306
>>353232
Лол, а кложурята забавные.
В CL вон, всё норм:
* (nth 2 '(1 2 3 4 5 6))
3
А в кложе можно вообще так:
user=> ([1 2 3 4 5] 0)
1
218 1353618
>>353306
Не совсем понял, при чем тут CL - там же нет разделения на конкретные коллекции и последовательности, ну и соответственно соглашения что первые идут первым аргументом, а вторые (если их одна штука в сигнатуре) - последним.

>user=> ([1 2 3 4 5] 0)


Это да, но обычно позиционность имеет смысл в контексте трединг-макросов. Я вот как раз на автомате написал (->> чотатам (map хуяк) (iterate хуяк-хуяк) (nth эн)) - и тут понял, что ошибся.

Не, можно конечно скипнуть и взять голову, но блин... к тому же get работает для всего, где nth имеет смысл, для всяких там строк тоже.
219 1353697
>>353618

> ну и соответственно соглашения что первые идут первым аргументом, а вторые (если их одна штука в сигнатуре) - последним.



В Кложе есть такое соглашение? Не знал.

>Это да, но обычно позиционность имеет смысл в контексте трединг-макросов. Я вот как раз на автомате написал (->> чотатам (map хуяк) (iterate хуяк-хуяк) (nth эн)) - и тут понял, что ошибся.


На самом деле, меня лично этот синтаксис (ну, реализация IFn (?) для коллекций и прочего, не суть важно) - раздражает, пропадает лисповая интуиция, что головная форма - это функция, инородно выглядит вообщем.
220 1353882
>>353697

>Не знал.


Век живи - век учись! ^_^

Меня как раз поэтому и смущает nth, потому что вроде бы логически он в первую очередь нужен именно для последовательностей.

>интуиция, что головная форма - это функция


Так ведь она и есть функция, даже чисто с математической точки зрения. Я считаю, что особо усердствовать не надо конечно, иногда читабельней написать с get, а иногда - без него. Ну и всякие штуки типа (map {:from :to} coll) и (some #{:find-this} coll) довольно удобны и естественны.

Плюс есть еще довольно тонкие семантические нюансы, типа если пишешь (:k m), то подразумевается, что m - это не просто рандомная мапа, а какой-то бизнес-энтити, а если (m :k) - то просто мапа, в которой так уж получилось, что ключи - это кейворды. Ну типа а могло бы быть и (m "k") или (m 42). Но по-моему на практике эта грань зачастую слишком тонка, чтобы на нее не забить.
221 1355052
>>342400 (OP)
clojure - это игрушка для бездельников-студентиков.
ну или пидорасов, которые кроме трёпа на конференциях для тех же студентиков нихуя ничем не занимаются

работы нет
даже если вакансия есть, то по бабкам столько же сколько в жаве

максимум зачем нужна кложа - это потратить хуеву тучу времени (а оно в таком количестве есть только у школьников-студентов) и отрастить чсв. всё, больше ни для чего не годится

это никакой не троллинг, если чё. реально так думаю
222 1355088
>>355052
Ок, Волмарт - бездельники-студенты. Я тебя услышал.

>потратить хуеву тучу времени


А ты, видимо, не очень умный. На что тут кучу времени тратить? Это не хаскель.

>это никакой не троллинг, если чё. реально так думаю


Сочувствую. Хотя чего еще ожидать от мелкобуквенного.
223 1355089
>>355052
Единственный известный мне язык, в котором STM встроено в ядро. Шах и мат.
224 1355091
>>355052

> clojure - это игрушка для бездельников-студентиков.


> ну или пидорасов, которые кроме трёпа на конференциях для тех > же студентиков нихуя ничем не занимаются



> работы нет


> даже если вакансия есть, то по бабкам столько же сколько в жаве


> это никакой не троллинг, если чё. реально так думаю



Продолжай так думать, тратя весь рабочий день на еблю с рейсами, дедлоками и обезумевшим стейтом. А я пока напишу очередной ETL или event stream за пару часов, запакую в контейнер и пойду заниматься своими делами, ночью отдам его заказчику, а утром письма о пополнение счета на 200$ и слова благодарности за то, что встало без проблем и работает, как надо.
225 1355191
>>355091
извини, забыл, что shared mutable state - обязательное условие написания кода на жаве

>слова благодарности за то, что встало без проблем и работает, как надо


а слова "благодарности" от человека, которому твоё поделие достанется не хочешь выслушать? ты понимаешь, что он тебя будет проклинать за то, что ты решил выебнуться вместо того, чтобы выбрать инструмент, который знает каждый?

>ночью отдам его заказчику, а утром письма о пополнение счета на 200$


так ты фрилансер что ли? лол, так ты ничего серьёзного и не писал считай. говорю же - поделка для студентиков
естественно, что хеллоуворлды можно и на кложе написать, чтобы своё чсв потешить
226 1355831
>>355052
>>355191

>поделка для студентиков


>хеллоуворлды



https://twitter.com/hlship/status/631935954039652352

>So, I'm using @CursiveClojure on a project with 66 modules, 3068 files totalling 561292 lines on my 2010 MacBook Pro.



Иди уже трусы стирай, у тебя манямирок из них вытекает.
227 1355861
>>355831
Что ты хотел сказать, когда разместил ссылку на твит какого-то хуя с галеры?
Как его слова про то, что он запускает проект на макбуке 2010 года, опровергают мой главный тезис о том, что изучение кложи является нерациональной тратой времени?
- - 228 1355867
-
229 1355870
>>355861
Мимо-другой-анон
Должен заметить, что у тебя суждения просто пиздец. Стань гей шлюхой, нахуя вообще что то учить, если можно больше зарабатывать посасывая хуец 10 минут в день?
230 1355929
>>355861

>howard lewis ship


>какого-то хуя с галеры


Ясно. Иди дальше лендинги верстать, мальчик, тут джавагоспода разговаривают.
231 1356333
>>355929
Ну ты кроме как пука ничё не сказал. Ты апеллируешь к авторитету (по твоему мнению), который сказал, что он запускает кложепроект на макбуке 2010 года в ответ на мой аргумент, что кложа не стоит времени, которое нужно потратить. Всё блять. У тебя очень большие проблемы с логикой, как ты вообще программистом стал?
232 1356372
>>356333
Так а мне тоже ответь, нахуя тратить время на программирование, если за 10 минут сосания хуйца в день можно зарабатывать больше и учиться не нужно?
233 1356397
>>356372
Я не пидор
234 1356402
>>356397
Тогда даю подсказку.
На двачах ты же сидишь, а ведь >>356333
двач >не стоит времени, которое нужно потратить
forman.jpg61 Кб, 720x951
235 1356431
>>356333

>на кложе никто ничего не пишет, только студенты хелловорлды делают


>даешь ссылку на увожаемого господина с коммерческим проектом на 600k+ строк


>бля ну чо ты, ну я не это имел в виду, ну чо ты а?

236 1356459
>>356431
Ты читаешь жопой, браток, чё ещё сказать
237 1356548
>>356431

>даешь ссылку на увожаемого господина с коммерческим проектом на 600k+ строк


из которых 599к - это юнит тесты!
238 1356721
>>356459
at first I was like:

>clojure - это игрушка для бездельников-студентиков.


>говорю же - поделка для студентиков



but then I was more like:

>бля ну чо ты, ну я не это имел в виду, ну чо ты а?

15106927954080.png121 Кб, 736x736
239 1356722
>>356548
Кек. Как что-то плохое.У типоблядков вон тоже факториал в одну строчку, тип на полэкрана, так что это норма (с)(тм).
240 1357007
>>342400 (OP)
Бля, пацаны, объясните, как так-то:

http://www.zetawar.com

Ну охуенная игра, спору нет, сейчас открыл и на джва часа завис. Но контента нет, прошел две карты и в принципе все.

https://www.kickstarter.com/projects/djwhitt/zetawar

>104 backers pledged $15,400 to help bring this project to life.



15 ШТУК БАКСОВ бля. Ну игра охуенная, ок, на полчасика погонять, но 15 штук? С какого хуя? Я вообще нихуя не понимаю этот ваш рыночек, буржуи там совсем ебнулись короче в своей загнивающей. небомбит.пнг

Можно сырцы посмотреть: https://github.com/Zetawar/zetawar
241 1357087
>>355191
shared mutable state тем не менее очень важен в задач, где требуется перфоманс, иммутабл дрисня реально только для лаб годится и всякой некритичной бизнес-логики. Вычисления, IO, алгоритмы - настоящий праздник отсоса любителей имутабельных структур.
242 1357263
>>357087
Тащем-то любителям иммутабельных структур итт никто не мешает использовать shared mutable state. Это ж кложа, а не хаскель хотя и в хаскеле можно, если очень хочется

другой
243 1357267
>>357007
лох. завидуй.
244 1357307
>>357007
Так это 15к на дальнейшую разработку, или это и есть результат вложения 15к?
245 1357328
>>357267
Лох. Завидую. Дупу печет.

>>357307
Ну я понял что второе. Ну то есть он собрал 15к и на фултайме не торопясь пару месяцев пилил опенсорсный петпроджект. Я блядь нихуя не понимаю.
246 1357357
>>357328
Если реально второе, то это ж пиздец.
247 1358004
>>357357
...тем временем простые сибирские пацаны честно зарабатывают свои пятьсот баксов в месяц на попенсорсе: https://www.patreon.com/tonsky

Ну и где справедливость, блядь, а? Куда смотрит профсоюз?

Хотя этот тоже буржуин зажравшийся, максимальный гоал у него стоит на 6 тысяч баксов в месяц за петпроджекты на жидхабе. Сука, он там черную икру вилкой собрался есть в своей сибири?! Вот уж верно говорят, что каждый пролетарий - это просто буржуа, испытывающий временные трудности.
248 1358688
NASA на кложе ебошит:
https://github.com/nasa/Common-Metadata-Repository

хуяк-хуяк и на орбиту
249 1358829
>>358004

>13 лет опыта


>40к/мес


Тут лохуня на жабе копипастит популюс и имеет в два раза больше.
https://www.patreon.com/thinmatrix
250 1358840
шо там по граалю? продакшен можно на нем писать?
251 1358841
>>358004
Он в Москве живет и у него депрессия после того как он работал за 5к бакинских в месяц на одну уважаемую контору за рубежом.
252 1359162
>>358829
Ну а выше вон вообще пацан запилил игру уровня /gd и поимел с этого 15к. Я ж и говорю - никакой справедливости.

Алсо,

>40к/мес


Ты жопой читаешь?

>Two full days per month dedicated to open source


40к он получает за два дня работы.
253 1359164
>>358841

>Он в Москве живет и у него депрессия


Как, опять? А я после последнего блогопоста думал, что он женился, всекакулюдей, все дела.

>>358840
Вот эта https://github.com/ruedigergad/cli4clj хуйня вроде работает с граалем, так что типа можно, но каждую либу надо проверять
255 1359373
>>359164
>>359165
попробовал сам, бинарник с рингом около 29мб, с добавлением lucinia вобще не конпелируется. такой вот продакшен
256 1359610
>>359162
А Patreon разве не зачисляет средства только в конце месяца?
257 1359899
>>359373
Не совсем понял, а нахер тебе граалем компилировать веб-апп? Для веб-аппа он подходит, если у тебя например код на жс и на джаве (и на сабже), и тебе хочется из одного дергать методы другого. Ну и если вебстак тянуть, то бинарники жирные и будут. Зип-архив с джарниками джетти весит 20 мб, вот и считай.

Ну и я же написал:

>каждую либу надо проверять


Во-первых далеко не вся джава пока еще работает с граалем, во-вторых (это уже специфично для кложелиб) не должно быть рефлекшн варнингов.

Если тебе просто надо легкие микросервисы и всю хуйню, то просто бери кложескрипт+ноду. Грааль (как я его вижу) это в первую очередь херовина для того, чтобы оракл мог написать на джаве свой жс-движок и скомпилировать его в нативный код. Во-вторую очередь для того, чтобы можно было делать интероп между практически всеми существующими языками, и в третью - для небольших консольных утилит (размер все равно будет 10+ мегабайт).

Лично я жду, когда они запилят поддержку lwjgl и можно будет рисовать графику из нативных экзешников:
https://github.com/oracle/graal/issues/304
s-l300.jpg16 Кб, 300x194
258 1360820
>>358688
И US Army тоже на кложе ебашит, студентов берут:
https://www.reddit.com/r/Clojure/comments/axgz98/internships_for_clojure_programmers/
https://www.usajobs.gov/GetJob/ViewDetails/524774400

Боже, благослови Америку!
sage 259 1361390
>>342404

>4. Скорость разработки.


5. Главная фича языка - интерактивная разработка, горячая компиляция (hot reloading) и выполнение кода прямо внутри работающего приложения (в том числе задеплоенного в продакшн, можно подключиться своей ide к серверу и залить хотфикс, включить дебаггер или просто проверить текущее состояние процесса). Вся инфраструктура под это заточено, в комьюнити много инструментов, упрощающих написание reloadable кода. Пожалуй, это главный selling point. Алсо, можно хуяк-хуяк и в продакшн.

Тут нужно балл снять, потому что сейчас хуже чем в CL.
15116396251562.jpg173 Кб, 750x750
260 1362097
Анон, подкинь краткий хардкорный гайд по Кложуре, чтобы чётко по делу на 200 страниц. Трогал общелисп пару лет назад, проходил кложуркоаны, хочу быстро вкатиться.
261 1362205
>>361390
Ну у CL по этому параметру вообще 9000/10.

>>362097
https://pragprog.com/book/shcloj3/programming-clojure-third-edition
Ну или https://www.braveclojure.com/clojure-for-the-brave-and-true/ если шекелей жалко

Хотя в принципе если общелисп трогал и коаны проходил, то можешь просто порешать http://www.4clojure.com/problems и почитать доки: https://clojure.org/guides/getting_started + https://clojure.org/reference/reader
(по библиотекам шапку глянь)
262 1362561
>>358829

>https://www.patreon.com/imgui


>проприетари софтвер ценится меньше, чем выкидыш гринлайта


ну хлопцi
200px-Slowpoke.svg.png19 Кб, 200x218
263 1363160
Бля, походу никитонски этот итт тред читает и после >>357007-поста тоже решил заработать свои 15 баксов и начал пилить игрулю:
https://www.youtube.com/watch?v=5n70q7FFZkY&list=PLdSfLyn35ej-n-SnvLkoTwdxhJWnfQ1QN

привет
264 1363170
>>342400 (OP)
Кекнул с вашего языка.

Кто вообще на нем пишет? Полторы калеки? Сомнительный график, даже если ему верить то котлин спустя год подобрался, а через год и вовсе обгонит вашего товарища.

Что за пиздец а не язык.
265 1363322
>>363170
Ты доской ошибся, нахуй - это в /b/.
sage 266 1364371
>>363170

>котлинщику неприятно

267 1365588
Неплохое введение для жс-макак, в шапку: https://medium.freecodecamp.org/why-clojurescript-works-so-well-with-npm-128221d302ba

Неплохой тейк для мамкиных бизнесменов: https://medium.com/magnetcoop/so-whats-the-point-of-clojure-a-business-approach-1f16ea1f03c6

Кложа на го хипстерметер over 9000:
https://joker-lang.org

Кто-нибудь пользуется этой ебалой как линтером?
268 1366188
>>351576
да, спрашивай
269 1366190
>>353697

> лисповая интуиция, что головная форма - это функция


ну может с вектором это странно, зато map IFn это ванлав. потому что это же самый канон определения функции - отношение аргумента и результата. map это реально самая чистая и явная fn.
270 1366205
>>353882

> смущает nth


мнемоническое правило - если fn работает с коллекцией как перебираемым множеством (map/filter/take/drop) и соответственно подходит как к vector, так и к lazy-seq & list то коллекция идет в конце и все это хорошо пишется с ->>

а если fn эксплуатирует вектор как структуру (единое) leveraging it's structure, то как и всякие fn подобные методам из ооп - главный объект будет первым аргументом, как в nth. по идее nth - fn именно для вектора.

однако у тебя там не вектор, а seq, но тут другая история:

1) то, что nth вообще работает с list/seq было признано старой ошибкой https://gist.github.com/reborg/dc8b0c96c397a56668905e2767fd697f#why-cannot-last-be-fast-on-vector (grep nth there)
2) т.к. у тебя там уже seq на входе, то это nth ничем не лучше чем (->> ... (take n) first)
271 1366217
>>355089
вот я читаю это и плачу, потому что я уже лет 5 работаю с кожурой (и по фану и по работе), но ни вокруг себя в application-коде, ни в коде прикладных библиотек не видел использования чего-то кроме atom или (редко agent для запустил-и-забыл).

ref видел 1 (один) раз где-то внутри clojure.test для аггрегации результатов и репортинга, но и чувство, что это там костыль и можно было обойтись прямой передачей в агрументах и reduce-ом итд.

короче аноны, не шарьте это вражескому лагерю, а просто тыкните носом в гитхаб, где оно юзается
272 1366252
>>366217
Мне это тоже кажется в чем-то даже забавным, что в реальном коде в 2k!9 на самом деле очень редко приходится иметь дело с обильной многопоточностью, когда важен write-параллелизм. Ну может еще лет через 10 наконец вырастет количество ядер и ситуация изменится, лол, но что-то я в этом не уверен.
273 1368099
>>342400 (OP)
русские в кложурь:
https://grishaev.me/clj-book-web-1

Оказывается есть такая штука, каталог проджект темплейтов (добавил в закладки):
https://clj-templates.com

Как написать квайн на сабже:
https://functional.works-hub.com/learn/an-interactive-quine-in-clojure-2c588

Эстонцы запустили фриланс-биржу специально для фп-блядков, если кто хочет попробовать найти одноразовую работу на кложе\элике\расте\прочих прикольных штука - регайтесь:
https://newlambda.com/blog
274 1370591
Охуеть, оказывается на сабже СЕРИОУС ГЕЙМДЕВ есть:
https://github.com/mtgred/netrunner
https://codepunk.io/codepunk-038-android-netrunner-jinteki-and-clojure/

то чувство, когда узнаешь о годной киберпанковой карточной игре через девелоперский реддит
275 1372738
есть смысл вкатываться если не нравится фронтенд и UI?
276 1372740
>>372738
имеется в виду для работы за деньги
277 1372848
>>372740

>работы за деньги


Иш чо удумал!
278 1372917
>>372848
да ну ладно, есть же вакансии. Другое дело, что я вот в русскоязычный чатик вкатился, они там каждый день обсуждают реакт компоненты, цсс, вебпаки и прочую жс дрысню.
279 1373044
>>372917

> Другое дело, что я вот в русскоязычный чатик вкатился, они там каждый день обсуждают реакт компоненты, цсс, вебпаки и прочую жс дрысню.


Кстати, два чаю этому. Родина дала им современный лисп - пиши! Пиши метагенераторы абстрактных оперденей! Не хочу, хочу жс-говно жрать! Что такое? Это программисты?! Суки... Мудачьё - кложуристы. Вебпаком обмазались и на реакте говно жрут - пидоры, блядь, ёбаные...
sage 280 1373072
>>373044

>метагенераторы абстрактных оперденей


1с уже написана, так-то
281 1373322
>>372917

не обессудьте, что один чатик на всех, вот на прошлой неделе целый день срались за парсергенераторы
282 1373396
>>372738
Да.

>>372917
Кто-то сидит в русскоязычных чатиках? Зачем?..
283 1373428
>>373396
в слаке кложи тоже дохуя про клжс говорят.
284 1373513
>>373428
Даже канал отдельный про клжс есть, там и говорят. А о чем еще там говорить-то, на канале про клжс?
285 1373866
>>342400 (OP)
https://functional.works-hub.com/jobs/1502?utm_source=reddit&utm_medium=jobwefarm&utm_campaign=m.samuel - у меня одного не открывается? РКН блокирует сайты с вакансиями в Лондоне, чтобы пидоры никуда не уехали, кек?
2019-04-02-202914740x195scrot.png30 Кб, 740x195
286 1373923
>>373866
Умвр, пикрелейтед.
Алсо, с текста вакухи проиграл, Ландон из зе кепител оф зе грейт британ
287 1374479
>>373923
Кек. Ну у них так принято, хуль. Я вообще проигрываю, когда вижу вакансии на уберсиньоров $300k в секунду, и при этом половина текста вакансии про то, какие у них там парки хорошие и речки красивые, лол.
paul-graham-content.jpeg53 Кб, 620x584
288 1374731
>>342400 (OP)
Кложуристам отвалили 5 миллионов баксов на какую-то йобадинамическую уберопердень:

https://medium.com/red-planet-labs/introducing-red-planet-labs-2a0304a67312

Это кстати тот же чувак, что написал apache storm и https://github.com/nathanmarz/specter
289 1374849
>>374731
А при чем тут Пауль?
290 1374882
>>374849

>inb4 Пол

291 1374994
>>374849
Пол тоже любит отваливать миллионы баксов и лисп.
292 1374997
>>374994
А, это он отвалил, ну ок. Я думал он кложу не сильно любит.
293 1375112
>>374997
Нет, не он. Просто он тоже любит отваливать миллионы баксов и лисп, я же говорю.

>Я думал он кложу не сильно любит.


Почему? Я как-то не в курсе. У него вроде был свой (довольно маргинальный емнип) язык, но он не взлетел.
294 1375125
>>375112
Ну он точно в проде же пользовал clisp, вот и подумал что он по нему угорает.
oloid.mp45,4 Мб, mp4,
640x360, 1:54
295 1376181
Лайкодинга с 3д-принтингом в хату, пацаны! Такой-то ламповый киберпанк на коленке:

https://www.youtube.com/watch?v=wXE3L8EU5U4
296 1376518
>>376181

> Coding a rolling Ololoid in Clojure

297 1376794
>>376181
лампово выглядит. Но если копнуть глубже, то бессмысленная хуйня.
В чем прикол? Это не имеет отношения к кложе вообще. Человек это не быстро сделал, потратил время на нахождение конкретной библиотеки (а скорее и сравнения), более менее в голове отложил API, подключил на экран трехмерный вывод, ну и естественно изучил формулы для построения данной опердени. От кложи тут только репл. Так же бы получилось в любом интерпретируемом языке
298 1376805
Всем привет)
299 1377252
>>376794

>Это не имеет отношения к кложе вообще.


В смысле? Человек пишет кложекод, используя кложелибу. Не понимат.

>От кложи тут только репл.


Так репл - это и есть основная (и уникальная среди мейнстрим-языков) фича сабжа, имхо.

>>376805
Сохацки... тьфу, то есть Никита, це тi?
300 1378001
>>342400 (OP)
Всем, кто кукарекает про "фп жи медленно ойойой иммутабельность тормозить будет", посвящается:

https://medium.freecodecamp.org/a-realworld-comparison-of-front-end-frameworks-with-benchmarks-2019-update-4be0d3c78075

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

И еще раз, медленно: ре-фрейм быстрее, чем реакт+редукс. Иными словами, в 2k20 жс уже ненужен. Оправдывайтесь, макаки.
301 1378230
>>342400 (OP)
Пугает состояние Clojure на отечественном рынке. На HH всего 25 вакансий и то там какая-то мешанина из Go/Ruby и Data Science позиций. На Scala уже получше - порядка 540 вакансий и практически все подразумевают бэкэнд разработку.
Неужели все так плохо и работу на кложуре можно найти только на удаленке?
302 1378256
>>378230

> только на удаленке?


...как будто что-то плохое.
303 1378274
>>378256
как же кложуристы живут без hibernate и spring framework?
о какой серьезной разработке может идти речь без этих чудесный фреймворков?
304 1378284
>>378274
ты чё, бот? речь про преимущества божественных удалёнщиков над жалким офисобыдлом, а не про бирюльки из жабы
image.png109 Кб, 512x512
305 1378315
>>342404
Вот когда ответите почему на легко-сопровождаемом (по вашим словам) языке мало кто пишет, тогда и можно начинать беседу с "за и против". А пока это выглядит как тупой маркетинг, уж простите.

Не думаю что будет ответ, но хотя бы проветрил от приторного запаха маркетинга
(Автор этого поста был забанен. Помянем.)
image.png77 Кб, 1143x727
306 1378328
Походу уже наигрались?
307 1378374
>>378315

> почему на легко-сопровождаемом (по вашим словам) языке мало кто пишет


Дикари-с.
308 1378401
>>342400 (OP)

>http://circleci.com - Continuous Integration and Delivery. Бэкенд и фронтенд на clojure+clojurescript.


Как подобные проекты в принципе остаются на плаву? Всякие CircleCi и TravisCi, со своими конскими ценниками в 20-70 бакинских. Это же сюр какой-то. Кто этим пользуется и главное зачем? Почему нельзя купить VPS у какого-нибудь хетзнера и развернуть там тот же Jenkins или TeamCity?
309 1378433
>>378328
Да нет, просто в это время произошла миграция в слак и дискурс. Ирц, например, тоже практически опустел, и гуглгруппа тоже. Это вообще печальная общемировая тенденция, имхо.
310 1378435
>>378401

>Почему нельзя купить VPS


А когда одной впс станет мало? А точно ли дешевле нанимать в штат админа\деплой инженера?
311 1378468
>>378435
Хуй знает. Надуманная проблема на самом деле. TeamCity с полпинка заводится на каком-нибудь AWS. AWS сервер стоит копейки. Стало мало одного, смигрируй виртуалку на сервер побольше. Я просто не догоняю, кто можешь башлять всем этим CircleCI и TravisCi, когда можно поднять собственное решение или воспользоваться Google Cloud Build.
Там ценник совсем смешной. 120 минут бесплатно в день, потом $0.003 в минуту.
312 1378497
>>378468

>Я просто не догоняю, кто можешь башлять всем этим CircleCI и TravisCi, когда можно поднять собственное решение


Я думаю все дело в низкой культуре деплоймента в Восточной Европе, лол.

>Там ценник совсем смешной. 120 минут бесплатно в день, потом $0.003 в минуту.


Ну в сирклсиай так-то тоже не особо какой ценник в новых планах, сто баксов в месяц за премиум-аккаунт. К тому же емнип он появился раньше, не?
313 1378589
>>378374
Ну это не объяснение.
image.png123 Кб, 512x512
314 1378591
>>378433
Как переезд из чатиков связан с потребностью в ответах на SO, если сам SO это как раз альтернатива чатиков и форумов?
(Автор этого поста был забанен. Помянем.)
315 1378617
>>378591
Ты серьезно? Вот смотри: раньше у тебя был выбор, спросить в списке рассылке, на СО или в ирц. Теперь у тебя выбор спросить на дискурсе или в слаке.
image.png93 Кб, 392x512
316 1378829
>>378617
Ээм, нафига спрашивать в сраках и каких-то дискурсах? Мой вопрос на SO и чей-то ответ - помогут тысячам, а в твоих чатах уплывет или смешается с флудом. И потом придет еще один анон и спросит тоже самое и потом еще раз.

Ох уж эти гуманитарии.
(Автор этого поста был забанен. Помянем.)
image.png77 Кб, 392x512
317 1378854
>>342404

>Единственный язык, который реально (а не для галочки) работает на jvm, clr и js платформах.


Все трансляторы для галочки, а у нас не для галочки. Классика же.

>Можно писать


Всем известное "можно" с большим "НО". Проходили.

>за отсутствие инструментов для формального доказательства свойств программ.


В этом весь ФП, формально там что-то друг другу доказывают, воздух сотрясают, а по факту ФП где-то в андеграунде а в реале тупо усиленное процедурное программирование

>Главная фича языка - интерактивная разработка, горячая компиляция


Сомнительная радость при большом числе нюансов. Ну, то есть, проще ребутнуть, чем словить магические ошибки.

>Отсутствие статической типизации заставляет разбивать монолитный проект на микроили не очень микросервисы с четко документированными апи


Вот это я понимаю - маня-фантазия!

>Пожалуй, лучший язык по части многопоточности


Пока программа будет клонировать тонну иммутабельных данных на каждый чих записи, мы еще позавидуем 50 наносекундам синхронайза.

>Найти сотрудников в проект легко.


Ох! Это чудесно.

>Много обучающей литературы


5 minutes later

>С другой стороны, нет такого количества туториалов и документации, как например


У меня от тебя мозаичное мышление.
(Автор этого поста был забанен. Помянем.)
318 1378875
>>348781
Это прекрасно. Процитирую словами из этого треда:

>...благодаря этому всему разбираться в чужом коде намного проще, чем в ооп-лапше

ruuc896a4b198.jpg24 Кб, 480x316
319 1378902
>>378854

>а по факту ФП где-то в андеграунде а в реале тупо усиленное процедурное программирование

320 1378939
>>378902
Глазки не прячь, лучше расскажи чем фундаментально ФП от процедурного отличается? Именно парадигмы, а не набор фич. в вики не подглядываем
321 1378971
>>378939
Процедурки - машина фон Неймана
Фп - лямбда-исчисление
image.png189 Кб, 512x512
322 1379034
>>378971
Собственно вот и все что нужно знать о ФП фанбоях, они даже не до конца осознают фундаментальную разницу.
(Автор этого поста был забанен. Помянем.)
323 1379053
>>379034
С каких это пор мнение аватаркобляди не игнорируется?
324 1379206
>>378230

>только на удаленке?


Ну, не только, но по факту - да. Хотя в сбербанке были вакансии, например, но в общем и целом ты либо приходишь на новый проект и приносишь с собой свой toolbox, либо удаленка. Ну либо у тебя знакомые и они тебя зовут.

>>378274
Лол, проиграл.
325 1379212
>>378829

>Ээм, нафига спрашивать в сраках и каких-то дискурсах?


Потому что удобнее, быстрее, уже открыто, еще что-нибудь. Попробуй провести опрос и выяснить, почему люди предпочитают слак и дискурс, я-то тут при чем.

>>378854

>Все трансляторы для галочки, а у нас не для галочки


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

Остальной пост состоит из каких-то ахов, вздохов и смехуечек, так что не вижу смысла это как-то комментировать.
326 1379227
>>379206
Прискорбно это все. Остается только заботать Clojure только ради того, чтобы запилить на нем свой SaaS стартап и рубить капустку!
image.png197 Кб, 512x512
327 1379489
>>379053
Так его!
(Автор этого поста был забанен. Помянем.)
image.png236 Кб, 512x512
328 1379491
>>379212

>Кстати, если ты будешь продолжать аватаркофажествовать, то тебя зарепортят и все твои посты удалят.


Какая потеря.
(Автор этого поста был забанен. Помянем.)
329 1380437
какие фреймворки для веба?
330 1380547
>>380437
Клиент-сайд или сервер-сайд?

>>380442 (Del)
А чего именно тебе не хватает?
331 1382397
>>342400 (OP)
Вновь рубит правду-матку про веб-парашу: https://tonsky.livejournal.com/320566.html
333 1389566
че бы такого закодить чтобы вкатиться
335 1390051
>>389566
Очевидные кластеры метапарадигм
336 1391173
>>342400 (OP)
https://functionaljobs.com/jobs/9166-full-stack-developer-at-red-pineapple-media

>We’re looking for full-stack software developers with an interest in one or more of: Clojure(Script), JavaScript, and DevOps.


>Work visa and assistance for folks outside Germany;



https://grishaev.me/clj-book-spec

>В этой главе мы рассмотрим clojure.spec – библиотеку для проверки данных в Clojure.

337 1392276
https://www.reddit.com/r/Clojure/comments/bhlc92/free_event_in_london_for_anyone_who_identifies_as/

>Free event in London for anyone who identifies as female/non-binary and wants to learn Clojure!


>0 points


>Are these sessions that packed that we have to exclude people based on sex and sexual orientation. What a backwards view of the world.


>13 points



Лисперы спасут индустрию от SJW-скама, аминь.
338 1392874
>>392276
Именем Столлмана.
339 1398260
http://clojure-goes-fast.com/blog/shenandoah-in-production/ - пост о новом жвмном гц от пацанов из https://www.grammarly.com

https://www.learnreframe.com - для любителей видеокурсов годноту подогнали

https://medium.com/@shivekkhurana/what-i-learned-after-writing-clojure-for-424-days-straight-8884ec471f8e - норм питч, объективно и по делу
340 1398321
>>342400 (OP)

>Сбербанк


На самом деле тут на Clojure 3.5 говнотулзы.
341 1398328
>>398321
Тем не менее. Слегка ломает представление о сбере как какой-то дремучей немодной попильной госговноконторе, которое есть у некоторых.

А что там по части фронтенда на сабже было? В порядке эксперимента пробовали?
342 1398378
>>398260
Ну понятно. Перформанс говно. Динамическая типизация из-за которой нужно писать 100500 никому ненужных юнит-тестов. Хуевые библиотеки из-за которых приходится использовать тот же Hibernate для работы с базой данных. Отсутствует нормальные фреймворки или библиотеки для разработки. Найс язык и экосистема, лул.
WTFAMIREADING.JPG50 Кб, 600x599
343 1398387
>>398378

>приходится использовать тот же Hibernate для работы с базой данных


До этого было просто упитанно, но на этом моменте ты начал вытекать из треда.
344 1398401
>>398387
Достаточно напомнить любителям кложи, как в языке реализовано отображение стектрейсов и все встанет на свои места. Кому всрался этот язык? Уж лучше тогда Erlang/Elixir заюзать в новом проекте. Там хоть имеются интересные концепции и с языком идет толковый рантайм. Ну или Scala, если хуй еще стоит.
345 1398890
>>398401

> как в языке реализовано отображение стектрейсов


Поздравляю с подключением к интернету, в 1.10 стектрейсы переделали, чтобы было, как везде а не как в тонкой лисповой обёртке над JVM.
346 1398945
>>398890
Отображение ошибок до сих пор работает через задницу. Это одна из проблем из-за которой компании спешно переходят с Clojure на Kotlin или Scala.
347 1399097
>>398945
define "через задницу"
348 1399347
>>398945

>компании спешно переходят с Clojure на Kotlin или Scala


И вот опять сперва было упитанно, но на этом моменте взял и начал вытекать.
350 1404408
Онлайновый рогалик на фулстак кложе, вообще охуеть:
http://heck.8620.cx/
https://github.com/uosl/heckendorf

Снова про компиляцию в нативн через грааль:
https://github.com/BrunoBonacci/graalvm-clojure/blob/master/doc/clojure-graalvm-native-binary.md

И видосы с последней конфы подоспели:
https://www.youtube.com/watch?v=VBIlk3GMmNc
https://www.youtube.com/watch?v=dzXZVnfp2TA
https://www.youtube.com/watch?v=l1b7Da2DnPo
https://www.youtube.com/watch?v=u-4FiFpkPlQ
351 1404577
>>404408

>https://www.youtube.com/watch?v=l1b7Da2DnPo


Проорал в голосину с его английского. ЗЭ ХЕ, блядь, ЗЫС ЫС, ЕЗРИСИНГ.

>https://www.youtube.com/watch?v=VBIlk3GMmNc


Охуенная преза. Рассказ как ребята переписывают сервисы на Go. Охуенно!
352 1404770
>>404577

>Проорал в голосину с его английского.


На скольких международных конфах лично ты выступал?

>Рассказ как ребята переписывают сервисы на Go.


Го очень часто используется в связке с сабжем (ну типа как пайтон+си, только кложа+го), по-моему status.im первые эту моду задали, лол.
353 1404782
>>404770

>На скольких международных конфах лично ты выступал?


Я не выступаю на конференциях. Нахуй оно мне надо?

>Го очень часто используется в связке с сабжем (ну типа как пайтон+си, только кложа+го), по-моему status.im первые эту моду задали, лол.


Нахер тогда нужна эта кложа, если парни чуть ли не весь сервис переписали на Гоу? Рест сервисы можно было и на каком-нибудь ссаном руби написать или пайтоне, а всю числодробилку вынести на гоу.
Нахуя ебаться с лиспом, лул?
354 1404824
>>404782

>Нахуй оно мне надо?


>Нахер тогда нужна


>Нахуя ебаться


))

Если тебе не нужно - не пользуйся\не пиши\не выступай на конференциях. Тебя же никто не заставляет и не агитирует.
357 1423575
https://www.reddit.com/r/Clojure/comments/c60rcu/what_sort_of_projects_would_you_use_clojure_for/es5m0mf/

> Walmart uses it to track every receipt from every store. http://blog.cognitect.com/blog/2015/6/30/walmart-runs-clojure-at-scale


>


> Netflix uses it. https://news.ycombinator.com/item?id=18345341


>


> Nubank's software stack is architected around it. https://cognitect.com/nubank-case-study.html


>


> King games used it to write the Defold IDE they use to create their games. https://king.com/ko/jobs/king-hub/posts/how-we-use-clojure-at-king-to-write-a-game-engine-editor


>


> One of the major hospital chains (HCA) uses it to watch for Sepsis risks amongst all of their patients. https://www.youtube.com/watch?v=AyWbB52SzAg


>


> Roomkey tracks a massive amount of hotel availabilty and bookings. https://venturebeat.com/2013/09/10/room-key-cloudbeat/


>


> Clojure monitors the engines in the 737.. https://www.youtube.com/watch?v=iUC7noGU1mQ


>


> Metabase is written in Clojure. https://metabase.com/

358 1434453
Все ребятки, никитонский вас кинул.
359 1434590
>>434453
Ну и заебись, будет больше открытых вакансий и меньше конкуренции.
360 1435074
>>434453
Да у него просто такой ПЕРИОД имхо. И он типа кинул не сабж, а вообще решил удариться в байтоебство после разочарования в интернетах и современной инфраструктуре вообще.

Хотя с "раст быстрее кложи, ПРЕДСТАВЛЯЕТЕ?!!" я конечно легонько проиграл.
361 1435111
>>435074
Ну там все таки акцент был на то что "не сильно парясь можно легко написать на расте тоже самое и будет быстрее". Но вообще похуй, он наебщик и чепушило.
362 1435223
>>435111
Ну для уже готового получислодробильного алгоритма это ведь и вправду так тащем-то.

А почему наебщик и чепушило?
363 1435303
>>435074
А самое смешное, что на Common Lisp можно писать гладко и приятно, попутно слесаря байтики. Но до хипстера тонского не дойдёт, конечно.
364 1435317
>>435223
Читал на нашем любимом сайте (здесь, кажется в мы вам перезвоним). Что он кого-то развел на супер-инновационный-неимеющийаналоговнет проект на кложе, пилили-пилили, но кроме бабосов нихуя не распилили.
365 1435326
>>435317

>кроме бабосов нихуя не распилили.


Все правильно сделал, значит.
Лох должен страдать и платить и страдать.
Этого требует гармония мироздания.
366 1435438
>>435317
Стартап назвался Echo (aboutecho.com, в данный момент уже недоступен). Они во главе с Львом Валкиным пилили какой-то ололо стартап в области social media и web 2.0. На кложе писалась очень мутная система мониторинга, которая по-хорошему нахуй никому не всралась, т.к. этих систем мониторинга на тот момент было хоть жопой жуй.
В итоге ребята игрались со всеми этими кложами и эрлангами, а когда пришло время показывать результат, то жидко обосрались. В итоге у инвестора закончились деньги и тот признал проект неудавшимся, что привело к разгону команды.
Чуть позже, по очень большому знакомству, всю команду забрала к себе машинзоун, которая клепает какие-то мобильные игрушки. Т.к. машинзоун не ожидала, что к ней прибудет десяток рыл из РФ, то не знала чем их занять и они какое-то время занимались тем, что писали какую-то хуету в стол. По итогу их и из машинзоун выгнали на мороз.
Ну, а дальше вы и так все знаете.
367 1435556
>>404577

> Рассказ как ребята переписывают сервисы на Go


> some of the infrastructure services are transitioning into golang


> for bread-and-butter stuff Clojure is still our go-to and the best thing we have.

368 1435583
>>435303
Обычно так говорят либо те, кто не писал на кл, либо те, кто не писал ни на чем нормальном кроме кл.

>>435317
>>435438
Это намеренный троллинг или вы и вправду в это верите?

Во-первых, echo имеет мало отношения к кложе и тонскому. Он там был обычным девелопером ну ладно, потом тимлидом, на кложе там были пару внутренних проектов типа парсилки логов. Основной код был на эрланге, окамле и си.

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

В-третьих, они пилили не "какой-то ололо стартап", а систему комментирования а-ля disqus, которая изначально называлась js-kit. Точнее наоборот: это disqus - а-ля js-kit, потому что js-kit появился раньше дискаса и был в свое время самым популярным (и одним из первых) сервисом такого рода.

В-четвертых, "время показывать результат" пришло в 2006 году, лол, Валкин тогда релизнул жскит и вскоре после этого пришли инвестиции и была основана компания.

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

В итоге Валкин уехал в Долину, а команду отправили в блатной отпуск в Калифорнию, лол. Ну а дальше кто куда, тонски вон щас в жидбрейнс сидит.

Но к сабжу это все не имеет вообще никакого отношения.
369 1436521
>>435583
Да не гори ты так, Никита. Все понимают, что разработчик из тебя так себе. Сначала в Ксореде говно разгребал, потом тебя по знакомству устроили в нужные компании. Сам понимаешь, что тебе грех на что либо жаловаться.
370 1436742
>>436521
Это конечно смешно, но все-таки слишком глупо даже для оранжевого сайта.
371 1439703
Бля, а что случилось-то с тонским? Я просто из заморозки вышел только что.
372 1439706
>>398260

>https://www.learnreframe.com - для любителей видеокурсов годноту подогнали


Ебать. Сейчас бы выпускать курсы по мёртвому языку с аудиторией 20 человек за 300 евро.
373 1439723
>>439703
Он женился.

>>439706

>этот баттхерт нищука


Лол :DDDD
374 1439770
>>439723
А чего это ты хихикаешь? Все он правильно говорит. Язык умер и используется только среди маргиналов, которые что-там у себя пишут. Всем же понятно, что для серьезных проектов язык с динамической типизацией не подходит, т.к. первое - он будет очень медленным (никитонский это уже подтвердил), а второе - это то, что он не подходит для какого-нибудь серьезного рефакторинга и требует колоссальных затрат на написание юнит-тестов, т.к. в компайл-тайме не проверяются элементарные вещи, такие как типы передаваемых параметров в функции и их количество и тип возвращаемого значения из этих функций. Т.е. все те детские ошибки, которые ты ловишь при компиляции в Java/Scala, ты будешь ловить в рантайме в Clojure.
375 1439814
>>439723

>баттхерт нищука


>>439770
Интересная теория, но я просто имел ввиду, что требовать деньги за курс, да и вообще его создавать за деньги, по языку, который мало того, что просто далеко не самый распространённый, так ещё и лисп - странное занятие. Люди, которые уже работают на кложе - им он не нужен, они и так всё знают в нём. Даже если просто так его купить, то что, тратить 10%(в лучшем случае) от месячной зарплаты, чтобы повторить (+ 2 3)? А новички не пойдут в ЖабоЛисп за 300 евро.
376 1440076
>>439770
Интересно, это все тот же тралль, или просто аноны с одними и теми же набросами похожи до неразличения?

>>439814
Тем не менее, раз что-то продают, значит кто-то это что-то покупает. Пока ты тут думаешь и рассуждаешь, зачем создавать видеокурс, чувак просто взял и сделал. Согласись, это более продуктивно.
377 1440181
>>440076

> раз что-то продают, значит кто-то это что-то покупает


Дальше не читал. Сложно воспринимать человека с подобным мышлением.
378 1440386
>>440181
Это просто констатация факта ¯\_(ツ)_/¯
379 1443979
Новый Q&A-сайт:
https://ask.clojure.org

Годный пост о конфигурации и развертывании на русском (причем годный не только для кложурцов, а вообще):
https://grishaev.me/clj-book-config/

У этого чувака вообще много годноты в блоге, рекомендую.
https://grishaev.me/altes/
https://grishaev.me/wired/
381 1452036
https://lagukan.com
Статья Хикки аж 1994 года: http://www.tutok.sk/fastgl/callback.html
383 1454816
>>342404
Бля, он безтиповый. Лучше на F# под дот корку писать. Эх вот бы кто Fjord допилил.
384 1454832
>>454816
Эф шарп не взлетел, к сожалению (насколько мне известно). Статическая типизация в сабже есть (https://typedclojure.org) hink typescript, но ей никто не пользуется, ибо ненужно. Вместо этого есть https://clojure.org/guides/spec
385 1454844
>>342400 (OP)
К сожалению, на Кложур практически невозможно найти оплачиваемую работу. Пример НИКИТОНСКОГО ЗЕ ХЕ БЛЯДЬ, ЗЫСЫС ТРЫЗЫС, отчетливо это подтвердил.
386 1454862
>>454844

>Пример НИКИТОНСКОГО ЗЕ ХЕ БЛЯДЬ, ЗЫСЫС ТРЫЗЫС, отчетливо это подтвердил.


Каким образом он это подтвердил, не понял? Он же как раз успешно нашел высокооплачиваемую работу на сабже (несколько раз).

Найти работу относительно несложно, но только если на удаленке и только если ты очень крутой синьор.
387 1454882
>>454862

>но только если на удаленке и только если ты очень крутой синьор.


Т.е. очень сложно.
388 1454991
>>454882
Да, это так.
389 1455019
>>454991
Лучше уж тогда Scala учить.
390 1455083
>>455019
Лучше уж тогда на джаве продолжать хуярить.
VOTE LISP.jpg191 Кб, 900x600
391 1459410
http://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html

I’ve programmed systems in many different languages; from assembler to Java. I’ve written programs in binary machine language. I’ve written applications in Fortran, COBOL, PL/1, C, Pascal, C++, Java, Lua, Smalltalk, Logo, and dozens of other languages. I’ve used statically typed languages, with lots of type inference. I’ve used typeless languages. I’ve used dynamically typed languages. I’ve used stack based languages like Forth, and logic based languages like Prolog.

Over the last 5 decades, I’ve used a LOT of different languages.

And I’ve come to a conclusion.

My favorite language of all, the language that I think will outlast all the others, the language that I believe will eventually become the standard language that all programmers use…

…is Lisp.
iokric5n.rp2.jpg49 Кб, 646x363
392 1461939
>>454816

>Бля, он безтиповый.


Зачем вам типы на бекенде?
393 1466836
Хохлы, налетайте:

https://jobs.braveclojure.com/jobs/17592186047046/clojure-engineer-attendify

Знание сабжа желательно, но необязательно (научат).
394 1467109
>>466836
А есть примеры публичных проектов с микросервисами на кложуре?
Просто для общего развития.

Какой профит во всём этом, преимущества перед джавой, скалой и т.п., помимо лиспа как такового (если это считать преимуществом)?
395 1467111
>>342404

>Главная фича языка - интерактивная разработка, горячая компиляция (hot reloading) и выполнение кода прямо внутри работающего приложения (в том числе задеплоенного в продакшн,



Я уже много лет делаю то же самое на Java EE, очень доволен.
396 1467118
>>467111
Пруф или пиздобол.
397 1467130
>>467118
Какой тебе пруф?
Что изменённый джава/джсп код на лету перекомпилируется сервером и тут же подгружается класс-лоадером, без перезагрузки всего сервера?
Так это на нормальных системах реально с начала нулевых уже есть.

Или что я могу на работающем апп-сервере запускать груви (или даже руби) скрипты и "выполнять код прямо внутри работающего приложения"? Поверь, могу. И ты сможешь, лол.

И это всё без непонятных изъёбов и марсианского тулинга.
Тут важно понимать, что такие возможности тебе даёт вовсе не язык, как таковой. А сервер, рантайм и прочее.

Реальное преимущество лиспа в том, что "Отсутствие статической типизации заставляет разбивать монолитный проект ...".
Только дело, конечно, не в типизации, а в самом по себе лиспе.

Ещё хуй знает когда было сказано (в сикпе где-то или Graham сказал), что программист на лиспе вынужден сразу же плодить тучи функций, т.к. писать стандартную императивную дрисню на лиспе просто невозможно.
398 1467185
>>467130

>изменённый джава/джсп код на лету перекомпилируется сервером и тут же подгружается класс-лоадером


А что произойдёт с уже созданными инстансами классов, у которых изменены определения? Жидкий обосрамс?

> программист на лиспе вынужден сразу же плодить тучи функций, т.к. писать стандартную императивную дрисню на лиспе просто невозможно


Пиздец у тебя каша в голове. Вон тот же Common Lisp все лисперы обсирают за то, что на нём можно императивную парашу писать да ооп обмазываться. Никто тебя ничего не заставляет делать, успокойся.
399 1467269
>>467185

>с уже созданными инстансами классов


Чудес не бывает, сынок.

Естественно, сохранённые _данные_ в памяти не изменятся, при изменении определения класса, если ты понимаешь, как всё это работает внутри. И это хоть на джаве, хоть на кложуре, хоть на чём. От этого помогает правильный дизайн кода.

А если ты имеешь в виду, что на кложуре все данные в сырых мапах и листах, то это так себе достоинство.

>Пиздец у тебя каша в голове.


Пиздец, ты токсичный ебанат.
Я написал вынужден безо всякого негатива. В оригинале было чуть пафоснее, но, я дословно не помню. Найди, блядь, эту цитату, и посмотри, какая там интонация.
400 1467568
>>467109

>А есть примеры публичных проектов с микросервисами на кложуре?


В смысле опенсорсные туториал-проекты? Ну можешь чекнуть это: https://github.com/furkan3ayraktar/clojure-polylith-realworld-example-app - правда там именно полилит архитектура, там свои особенности.
401 1467569
А, ну и:
>>467109

>Какой профит во всём этом, преимущества перед джавой, скалой и т.п., помимо лиспа как такового


Зарплата выше. ^_^
402 1467571
>>467111
Нет, не делаешь.

>>467130

>Тут важно понимать, что такие возможности тебе даёт вовсе не язык, как таковой.


Ошибка. Ртфм.

>Реальное преимущество лиспа в том, что "Отсутствие статической типизации заставляет разбивать монолитный проект


Есть статически типизированные лиспы, есть динамически типизированные нелиспы, нерелевантно.

>писать стандартную императивную дрисню на лиспе просто невозможно.


Возможно, всю жизнь на кл и имакслишпе, и прочем спокойно писали.

>>467269

>И это хоть на джаве, хоть на кложуре, хоть на чём.


Ошибка.

>А если ты имеешь в виду, что на кложуре все данные в сырых мапах и листах, то это так себе достоинство.


Это совершенно нерелевантно топику вашего диалога, но вообще это как раз и есть главное достоинство, да.

>Пиздец, ты токсичный ебанат.


Но у тебя правда каша в голове, это факт. На уровне "слышал звон да не знаю где он". Про репл и хот релоадинг - почитай про отличия моделей исполнения обычных и image-based языков (хотя чтение лучше подкрепить практикой, иначе профиты осознать не факт что получится).
403 1467718
>>467571

>Нет, не делаешь.


Ну, тебе виднее, конечно.

>image-based


А что, кложура image-based? Каким образом? Как мне сохранить/загрузить имидж?

Или ты имеешь в виду, что не нужен текстовый редактор, загрузка файлов, компилятор и т.п., чтобы поменять определения в работающей программе, т.к. всё это делается через репл самим рантаймом языка?
404 1467755
>>467718

>Ну, тебе виднее, конечно.


В данном случае - apparently да.

>А что, кложура image-based?


Нет, но наследует модель выполнения именно от таких языков.

>Или ты имеешь в виду, что не нужен текстовый редактор, загрузка файлов, компилятор и т.п., чтобы поменять определения в работающей программе, т.к. всё это делается через репл самим рантаймом языка?


Не совсем; суть в том, что (в отличие от того же хот-релоада в джаве) там нет отдельной операции "поменять определение в работающей программе" - у тебя весь (любой) код всегда¹ выполняется в репле, выражение за выражением. Поэтому для языка (рантайма) нет принципиальной разницы, во-первых, откуда он читает эти выражения - из файла или из сокета; во-вторых, нет принципиальной разницы между перекомпиляцией определения (как мы это делаем в джаве) и выполнением любого другого кода - печатью строчки в stdout, изменением состояния и т.п. На практике это означает, что ты работаешь с образом запущенной программы, и единообразно тыкаешь что состояние рантайма (скомпилированные определения), что состояние своего приложения; короче говоря, более корректным сравнением было бы не "я в джаве так же делаю", а "я в консоли браузера так же делаю". В теории это означает, что у тебя минимальная единица компиляции и выполнения - выражение (не класс, не модуль, не пакет), а это уже характеристика языка, а не одного лишь рантайма.

[1]: ну там типа есть aot и подобные нюансы, но в контексте данного обсуждения это детали реализации.
405 1468474
Чиптюн трекер на кложескрипте:

https://github.com/porkostomus/mecca
https://porkostomus.github.io/mecca/
406 1470494
407 1470782
>>470494
Прикольно. Только не понятно нахуй это нужно, когда уже есть Elixir.
408 1470913
>>470782
* Только не понятно нахуй это нужно, когда уже есть Lisp Flavored Erlang.
пофиксил тебя, не благодари
409 1471080
>>470913
Всё так, LFE оче няшно выглядит, жалко только, что довольно дохлый
410 1471131
>>470913
Вот как раз LFE - это сферическое ненужно в вакууме.

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

Алсо,

>tfw чувак для хобби-проектов пишет код и организует процесс лучше чем 99% галер и студий



Ну а если сравнивать кложу и эликсир в вакууме, без учета того факта, что эликсир - это такой руби 2.0, на который естественно гораздо проще пересадить людей, то чисто с точки зрения самого языка кложа-то получше (почище и помощнее) будет. Хотя элик тоже няшка, конечно.
411 1471149
Ахахахахахахахаха, этот чувак просто поехавший, обожаю его:

https://sekao.net/paravim/

Yo dawg, I've heard you like editors, so we put vim in our jvm so you can include an editor as a library in your project so you can code while you code
413 1472144
>>471131
Кложа и Эликсир языки из одной категории и вообще почти одно и то же.
Ну, можно согласиться что кложа чуть более продвинута в плане фич для обычного программирования, но эликсир более продвинут в плане concurrency.
Просто не вижу понту от кложи на эрланговской VM, она ж медленнее JVM в раз 20 и для как бы для других целей.
414 1472407
>>472144

>Кложа и Эликсир языки из одной категории и вообще почти одно и то же.


Ну хз, субъективно. Они похожи тем, что оба - динамическая функциональщина (ну и элик вообще испытал сильное влияние кложи), но вообще-то в целом это очень разные языки.

>но эликсир более продвинут в плане concurrency.


Почему? Как раз наоборот же.

>Просто не вижу понту от кложи на эрланговской VM


Ну пользоваться-то этим необязательно, а так - пусть будет, почему бы и нет. В руби на эрланговской вм есть понт - вот пусть и кложа там будет.
415 1484796
Ого, сам Олег на кложеконфе:

http://oleg.fi/gists/posts/2019-09-26-write-a-compiler.html
416 1484801
А еще в Москве тоже будет кложеконфа:

https://cloju.ru/en
418 1499094
d
419 1499807
>>484801

>.ru/en


Каргокульт англичанек?
420 1499869
Может у кого то есть в закладках видео, там сравнивают и рассказывают про две (или 3) cjs либы, показывают их различия в подходе, мод одна манипулирует структурами данных, а вторая предлагает что то вроде деларативного движка. Оче надо, но не могу найти
421 1500040
>>499869
Пардон, нашел его у себя в папке видео
422 1500298
>>499807
М? Это версия страницы на английском.
423 1500299
>>500040
Че за видео-то? Вкинь ссылку\название.
424 1500334
>>500298
И она по дефолту стоит на русских курсах
425 1500392
>>500299
Работа DOM и шаблоны (Enfocus, Dommy)
Была серия уроков по кложе, с задачами, там это видео. clojurecourse.by
Хз насоклько эти уроки сейчас актуальны, вроде как 5 лет прошло.
426 1501856
>>500334
М?.. Нет, по дефолту русская версия открывается, можешь сам зайти и проверить.
427 1501861
>>500392

>Enfocus, Dommy


Ну да, конкретно вот это не очень актуально, скорее для общего развития.

Но вообще прикольно, я не знал, что такое есть. И никитонски там тоже засветился. Да и вообще в целом выглядит очень годно, затронута куча разных тем, плюс задачки есть. Годнота.
428 1501965
Кложурчане, что не так?

https://pastebin.com/PPHtwr1W
429 1501968
>>501965
Разобрался, пардон
430 1502373
>>501968
Можешь кстати вместо loop со счетчиком просто сделать что-то типа (->> (iterate random-by-seed seed) (nth n))
431 1503897
Жава нужоно вката?
433 1503915
>>503905
Бля минус язык(
434 1503975
>>503897
Нет, но думаю, что тебе лучше вкатиться в питон.
435 1504180
>>503915
Вкатывайся в Common Lisp
436 1504704
>>342400 (OP)
Перепилите кто-нить наноборду на кложуре.
437 1505644
>>504704
Она ж вроде сдохла, не?
438 1505843
>>505644
Наноборда не может умереть, потому что она и так была мертва, лол. Пора бы ей воскреснуть.
439 1505867
>>505843

>Наноборда не может умереть, потому что она и так была мертва, лол.


Поэтому она и неубиваемая.
440 1507656
441 1510083
кложабожественна
443 1515374
>>342400 (OP)
Так, че там по сладкой удаленочке за даллары на этой вашей кложе? Писал на Java и Scala ебать их в сраку. Сложно вкатиться в Кложу и начать педалить буллетпруф бэкенд сервисы? Фронтенд не интересует.
444 1515714
>>515374
Ну Тонский вон педалил, можешь у него спросить. В слаку вкинь клич, ты уберсиньор-помидор же?

Алсо

>буллетпруф


Нет пути! Только хуяк-хуяк и в продакшн!!1
445 1520946
>>515714
Устал я от Java. Со всеми ее спрингами и хайбернейтами - такое-то уныние. Пока что-то работоспособное соберешь уже месяц пройдет. На Scala не лучше - тулинг хромает, концепций дохуя - удовольствия от разработки нихуя. Clojure привлекает тем, что там по сути есть только данные и функции и уже на этих понятиях строятся какие-то более мощные концепции.
446 1521241
>>520946
Ну если устал от жавы и скала не зашла из-за громоздкости и непрактичности, то по сути сабж тебе прямо в яблочко должен зайти, да.

Правда насчет тулинга я бы и тут не обольщался - минимализм-с, все дела.

У Гришаева кстати в блоге книжка книжка-блог по частям выкладывается, если душа просит на русском что-нибудь почитать - самое то, все с точки зрения практика.
448 1526336
>>526325

>fullstack_clojure_web_developer


новый мем?
449 1526791
>>526336
В смысле?
450 1526895
>>526791
учи мемы, чтобы не быть баттхёртом
autism.jpg133 Кб, 1000x667
451 1527362
>>526895
Хорошо.
453 1529947
Ахахахахаха, наконец-то: https://github.com/ruricolist/cloture
clj0.jpg438 Кб, 1344x1536
455 1534930
456 1534950
Нормальных биндов на реактохуки еще не наборщили?
hx тухлый
457 1535023
>>534950
Это новая итерация говножорства? Сначала жс петухи жруг говно из жопы других жспетухов через нпм, потом приходяю сложаскриптдебилы и начинают подъедать уже на жспетухами. Такая-то человеческая многоножка.
458 1535029
>>535023

>пук

459 1535487
Хочу в свободное время заняться функциональщиной, но желательно той, с которой можно писать что-то реальное.

Скажите, обязательно ли знание стандартной библиотеки Java для того чтобы писать код на Clojure? Или насколько часто эти знания необходимы?

На одной чаше весов Clojure, а на другой Elixir. От Erlang меня подташнивает, но от Java еще больше
460 1535611
462 1536188
>>535487

>Скажите, обязательно ли знание стандартной библиотеки Java для того чтобы писать код на Clojure?


Нет. Ну или хз что ты понимаешь под стандартной библиотекой, javax.* знать конечно не надо, но надо уметь например прочитать джавадок к классу String, тому що кложастроки это джавастроки. Ну то есть если ты не конченый аутист, то проблем не возникнет. Алсо джавафобия иррациональна, тебе ж писать-то на ней не надо будет.

>На одной чаше весов Clojure, а на другой Elixir. От Erlang меня подташнивает, но от Java еще больше


Ну пили что-нибудь на clojurescript тогда, например. Поддержка jvm и js практически одинаковая.
463 1536194
>>534950
Да, и кстати, забыл добавить обязательный дисклеймер: реактохуки ненужны, эти проблемы реактоговна в клжс уже решены лет 5 назад
464 1536329
>>342400 (OP)
Сможет ли Clojure сделать меня снова как когда-то счастливым?
465 1536336
>>536329
попробуй наркотики
466 1536346
>>536336
Какое же в этом веселье? Вот serverless сервисы написанные на кложуре и задеплоеные в эйдаблюэссс - вот это я понимаю веселье!
5ikdvgoazp911.png687 Кб, 902x960
467 1536680
>>536329
Да! ^_^
468 1536863
>>342400 (OP)
Не мешает ли динамическая типизация в Clojure, когда разрабатываешь крупные проекты? Я к тому, что если я перепутаю тип аргумента метода где-нибудь в Java или Scala, то компилятор ругнется и не соберет код. Не буду ли я тратить больше времени на подобные ошибки в Clojure?
469 1536898
>>536863
ТЕСТЫ
Е
С
Т
Ы
470 1536904
>>536898

>тест если передать строку


>тест если передать число


>тест если передать список строк


>тест если передать список списков строк


>тест...

471 1537092
>>536904
Ты, видимо, не умеешь писать тесты и не вполне понимаешь, для чего они нужны и как это работает.

>>536863
Помогает ли система типов задеплоить систему из 10 микросервисов и не ошибиться в вызовах рестовых\графкуэльных\базаданновых API? Вопрос риторический.
472 1537099
>>536904
Куда передать? Кто-то в 2019 до сих пор тестирует имплементацию вместо поведения?
473 1537300
>>537092

>Ты, видимо, не умеешь писать тесты и не вполне понимаешь, для чего они нужны и как это работает.


Проиграл с дауна. Тебе конкретные примеры привели, которые показывают, что подобные ошибки у тебя будут появляться в рантайме, когда какая-нибудь Scala или Java отловят это еще на этапе компиляции. Иди обтекай, клоун.
474 1537512
>>537300

>Проиграл


Оно и видно, тебе в /b.
475 1537516
>>537300
Про динамическую типизацию слышал? Нужна статика иди в Java/Scala/etc. Не пишу на Clojure, но вроде Spec это того что тебе нужно.

https://grishaev.me/clj-book-spec/
476 1537527
>>537516
Это залетный тролль, анон.

А за ссылку спасибо, годно.
477 1537578
>>537527

>Это залетный тролль, анон.


Да понятно. Но мне не жалко ссылку и для него.
478 1537701
>>536904>>537300
Тесты поведения стоят на уровень выше, чем тайп-чеки, и если тест написан через TDD, то есть покрывает 100% возможных вариантов использования компонента, то никакого практического смысла в тайп-чеках не остается. Единственное исключение - это публичные библиотеки, где можно добавить проверку на какой-нибудь nil, чтобы пользователю этой библиотеки выбрасывалась более подробная ошибка, но это уже идет как часть публичного API и тоже подходит под использование компонента.
http://blog.cleancoder.com/uncle-bob/2019/06/08/TestsAndTypes.html
https://blog.cleancoder.com/uncle-bob/2016/05/01/TypeWars.html
479 1539190
Анон, хочу немного с кложей познакомиться думаю с какой стороны подойти. Подскажи какие типовые задачи она решает. Как-то не очень видется кложа языком общего назначения, хотя, я, конечно, никого не хочу обидеть и знаю, что это всё же он самый. Но в любом случае - если бы я решал задачу на кложа - какой бы эта задача наиболее вероятно была?
480 1539310
>>539190
На кложескрипте - написание больших и сложных UI.
На кложе - в основном вебня, рест\графкуль-апи всякие, пайплайны обработки данных, микросервисы и т.п.

То есть если тебе надо просто круд-сайтик и добавить анимации, то лучше рор\джанга и ванильный жс. Если же у тебя сингл-пейдж аппликейшен с дата-кранчинг бэкендом, то вот это уже ближе к теме.
482 1539492
>>539190

>Подскажи какие типовые задачи она решает.


Какие задачи решает JVM по-твоему? Такие же и даже больше решает Clojure. Кроме матурной с большим количеством либ JVM, Clojure добавляет еще свои фичи.
483 1539526
>>342400 (OP)

Байтоебы соснулей
485 1547050
Сейчас юзают Lein или deps/cli?
sage 486 1547071
>>547050
последний конечно, но дохуя легаси говна, которое только через лейн работает
487 1547083
>>547071
Мне в телеграм чате Clojure сказали, что CLI накуй не нужон. Типа lein работает, и больше ничего не надо.
488 1547093
>>547083

lein действительно работает. Но хочется быть модным и молодёжным.
489 1547098
>>547093
Как смысл быть модным и молодежным, если за Clojure не платят и работы на нем нет?
490 1547109
>>547098
Есть чувак, который без опыта программирования устроился писать на Clojure. Задрачивал несколько месяцев очень упорно.
491 1547111
>>547098
И кроме того, изучение разных языков необходимо для роста общего профессионального уровня. Вот ты писал на Лиспах? Если нет, то ты многое потерял. Лисп ломает мозг, открывает понимание новых методов программирования, которые кроме как через Лисп никак не постичь.
492 1547121
>>547111

>Вот ты писал на Лиспах?


Писал на Racket, когда учился в ВУЗе. Но потом быстро понял, что работы найти на этом вашем лиспе мне не удастся и очень быстро перебежал на Java, о чем не жалею. Так бы сейчас гнил где-нибудь в канаве, если бы серьезно изучал лиспы, лол.
493 1547123
>>547109
Тогда это кардинально меняет дело! Если какой-то чувак действительно устроился, то значит и мы сможем, лол! Ты сам-то в это веришь, старина? На всем HH наберется от силы вакансий 20, где упоминается Clojure. В половине вакансий это будет как бонусный скил и на самом деле язык не используется в проекте. Остальная половина будет поделена между проектами, которые переписывают с Ruby/RoR на Clojure (предполагается, что у кандидата есть продакшен опыт в рубях и рельсах), а вторая половина - какие-нибудь мутные ололо-стартапы, которые прожигают деньги инвесторов. Туда, разумеется, требуются только бывалые кложуристы, которые уже месили скобки пару лет в какой-нибудь фирме.
494 1547130
>>547123

>Ты сам-то в это веришь, старина?


Это не легенда. Я сидел в одном чате для вкатывальщиков. Достаточно долго. Всех там знал почти. Конечно все делились опытом, кто как и куда устроился, и сколько времени потратил на обучение. Один чувак учился писать на JS, а когда уже немного опыта набрался, ему посоветовали попробовать Clojure. Он начал его задрачивать, и через несколько месяцев уже довольно уверенно писал код. После в чате нашлись люди, знакомые которых пишут на Clojure в продашне. Его прособеседовали, он всех устроил, его взяли на работу. Кроме того там были чуваки, которые тоже на Clojure пишут, но правда сначала проработали на JS около года.
495 1547134
>>547130
Ну это далеко не показатель. Работы на Clojure - хуй да нихуя. А та что есть - это переписывание проектов с Ruby, либо вообще не связанный с Clojure проект, где Clojure нужен как доп. скилл, который показывает кругозор кандидата.
496 1547152
>>547134
Показатель - непоказатель, мне как-то все равно. Я знаю, что если человек знает свое дело, он найдет работу. Знает хорошо Haskell - найдет работу на нем, знает Clojure - найдет работу на нем. А ты рассуждаешь неправильно. Типа дайте мне много работы на Clojure, а я потом подумаю стоить ли изучать его. Такого никогда не будет.
image.png153 Кб, 498x474
497 1547174
>>547152

>Знает хорошо Haskell - найдет работу на нем

498 1547184
>>547152

>Типа дайте мне много работы на Clojure, а я потом подумаю стоить ли изучать его


Я этого не говорил. Я подхожу к проблеме с прагматичной точки зрения. Открываю HH и вижу, что работы на Java на несколько порядков больше чем на Clojure/Scala/Haskell вместе взятых. Отсюда я делаю вывод, что у меня не будет проблем найти работу на Java и у меня будет выбор контор, в которые я могу пойти работать. Что нельзя сказать о Clojure и прочих Scala.
499 1547186
>>547184

> Открываю HH


Ты же ведь понимаешь, что по-настоящему годные вакансии в паблик никогда не попадают и закрываются посредством личных знакомств в коммьюнити?
500 1547189
>>547186
Твое коммьюнити - это полторы калеки в каком-нибудь телеграм канале, плюс несколько сотен наивных дурачков, которые дрочат кложуру в свободное время, мечтая вкатиться на сытую удаленочку.
501 1547195
>>547189
С твоего дивана оно, конечно, лучше видно, куда мне там.
502 1547214
>>547195
Забей, это тот же шизик, что срал в Elixir треде. Тупо те же самые фразы.
Для некоторых людей мир ограничивается мейнстримом, языки оцениваются по возможности продать жопу в местный бадишоп, а если за языком не стоит анальная корпорация (тм) то он вообще сразу не нужен.
503 1547257
>>547189
Я тебе привел пример как в чате с нуля вкатывались в Clojure. И да, на работу устроились по знакомству через компьюнити.
504 1547305
>>547257

>устроились по знакомству


Сейчас бы анус подставлять всяким малознакомым микрочеликам за работу программиста, когда нормальные люди просто открывают HH/Linkedin, откликаются на вакансию и уже через пару дней работают за приличные деньги.
505 1547319
>>547305
Ты дегенерат? По объявлению тебя и выипут. Придешь хер знает куда, хер знает к кому. Не буду называть имен/названий, но чел устроился в одну из самых крутых продуктовых компаний РФ, которая к тому же пишет на Clojure. Ты же по объявлению найдешь только проституцию в бодишопах. И о Clojure не мечтай даже.
506 1547339
>>547319

>по объявлению найдешь только проституцию в бодишопах


Топовые компании РФ постоянно ищут программистов через HH/Linkedin, а ты мне про каких-то мутных челиков из телеграм каналов рассказываешь, лол.
507 1547342
>>547319

>И о Clojure не мечтай даже.


Сейчас бы в 2к19 писать на динамикопараше и ебаться с ошибками в рантайме, которые приличный компилятор отлавливает еще на этапе компиляции твоего говнокода.
Беги скорее писать тесты на передачу всех возможных типов в функцию, лол.
508 1547478
>>547342
Сейчас бы брать во внимание мнение всяких школо-шизиков.
509 1547762
>>547050
Только lein, только хардкор. CLI для пидоров.
510 1547764
>>547121

>очень быстро перебежал на Java, о чем не жалею. Так бы сейчас гнил где-нибудь в канаве, если бы серьезно изучал лиспы, лол.


У тебя какое-то искаженное восприятие реальности. Если тебе кажется, что джава и лисп - это взаимоисключающие варианты, то у тебя еще многое впереди.
511 1547767
>>547152
Двачую адеквата.

>>547184
Что ты пытаешься доказать? Что этот тред следует запретить, а всех кложуристов насильно пересадить на джаву? Или что? Это по-твоему прагматично?
512 1547769
>>547342
О, Idris-господин в треде, все в формальную верификацию!

...ой, или ты про хаскеллопарашу?
Screen Shot 2019-12-17 at 15.18.10.png63 Кб, 1214x316
Почму? 513 1549416
Тыкаю https://clojurecourse.by/ Функция select уже была в коде, что в ней не так? Что значит эта стрелочка? Второй день кложур смотрю, не кидайся какашками анончик
Execution error (NullPointerException) at csvdb.core/order-by* (form-init9235460488737194202.clj:96).
null
514 1549471
>>549416
Стрелочка из (-> x (foo ...)) делает (foo x ...), ну и так далее для каждой следующей формы.

Что за функции на пике не знаю, так что могу только ванговать, что order-by ожидает ключ для сортировки, а получает nil.
515 1550764
>>510707

>Why Isn't Functional Programming the Norm?


Потому что слишком тугая абстракция. Императивные алгоритмы намного проще создавать, потому что они являются натуральными для человека, т.к. все бытовые задачи - это изменение окружения через последовательность действий.
516 1551361
>>550764
Чувак, ты лет на 10 опоздал, лол.
517 1551373
>>550764

>Императивные алгоритмы намного проще создавать


Нет. Все математики/программисты согласны, что рекурсивные алгоритмы (рекуррентное соотношение) проще для написания и понимания. Они естественно выводятся из определения задачи. Например факториал, его рекуррентная формула легко переводится в код. А чтобы эту формулу перевести в императивный алгоритм, нужно неестественно извернуться.

>Императивные алгоритмы являются натуральными для человека


Нет. Когда человек выполняет вычисление, он не записывает ничего в переменные, и потом их не изменяет. Он вычисляет декларативно, как это принято в математике. Это естественный способ мышления.

>все бытовые задачи - это изменение окружения через последовательность действий


Еще раз нет. Приведи пример.
518 1556850
>>342400 (OP)

>— Что нужно для вкатывания?


>Знать английский, не быть тупым, иметь опыт программирования.


Куда вкатываться-то? Кложур-программисты нужны только с многолетним опытом в Java или Ruby. Просто так заскочить на проект не выйдет.
519 1557778
>>556850

>иметь опыт программирования


>иметь опыт программирования


>иметь опыт программирования



Алсо, даже итт были репорты о джунах, так что не все так однозначно.
520 1558932
>>551373
Ебать ты наркоман. Пример - практическе любое обучение или инструкция, от сборки икеевского шкафа и кулинарного рецепта, до физических упражнений. Это всё итерации с условиями.
Рекурсия, блядь, вообще противоестевственна для человеческого мышления, кроме математиков, у которых оно нихуя не обычное и довольно специфическом образом пришибленное. Приведи контр пример рекусривной бытовухи, которая будет проще цикла.
521 1559108
>>558932

>до физических упражнений


Чистая декларативщина же. Никто не пишет "возьмитесь за турник; число повторений равно нулю; подтянитесь, увеличьте число повторений на один, если число повторений = 10, то закончите, иначе повторите". Пишут: подтягиваться надобно хватом такой-то ширины, с такой-то техникой; программа: столько-то подходов по столько-то повторений.

>кулинарного рецепта


Опять декларативщина, не? Ингридиенты: <список ингридиентов>. И потом последовательность трансформаций. Прямо один-в-один как код на кложе:
(def ingredients {:eggs ... :sugar {:amount [5 :tablespoons] ...} ...})
(->> eggs (take 5) (filter :white) (map whip) ...)
...ну что-то в таком духе.

>сборки икеевского шкафа


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

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

другой
522 1559253
Вот этот >>559108 шарит. В том же сикпе на первых же страницах на пальцах раскладывают, что итерация и рекурсия это по сути одно и то же.
523 1563617
Давно не заходил, что то проигрунькал с людей "зачем учить кложу, если надо уччить джаву". Скажите им, что можно нужно знать несколько языков. Хотя может, им и один дался кровью и потом, хз.
524 1577324
решил пожевать кложу, нихуя не понятно но очень интересно, держу в курсе.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 19 января 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски