Fork me on GitHub
#clojure-russia
<
2015-07-29
>
petr.myain05:07:56

Вопрос: делать ли ставку на Clojure?

petr.myain05:07:26

Я в моменте выбора технологии для долгосрочного проекта

lowl4tency05:07:35

Тут могут быть трудности только с поиском людей

dottedmag06:07:15

Ох, да старых лисповиков наверняка куча. Можно выгребать всех, кто работал на jet infosystems когда-то, скажем.

lowl4tency06:07:41

Тут вопрос насколько сложно и выгрести и насколько они захотят

lowl4tency06:07:55

Если ремоут то больше шансов, а вот если перевозить людей

petr.myain07:07:56

Из альтернатив: golang - там горутины аля Core.Async и комьюнити активное, проще найти людей

petr.myain07:07:46

Из аргументов за Clojure: если нет какой-то библиотеки на clojure, то она наверняка найдётся на java

petr.myain07:07:51

Хотя судя по активности golang комунити, с библиотеками там тоже всё хорошо

petr.myain07:07:32

Какие ещё плюсы/минусы clojure? Что я упускаю?

bezrukov07:07:27

А область деятельности какая? Веб?

petr.myain07:07:44

Ещё в плюсы clojure: макрсы

petr.myain08:07:15

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

petr.myain08:07:22

CRM с веб интерфейсом: много CRUD, немного аналитики, отчётов, интеграции с 1С (через веб-сервисы), уведомления на почту всякие

petr.myain08:07:44

Для внутреннего использования в компании, не SaaS

kharus08:07:59

Это да. Но макросы пригождаются библиотекописателям. Тот же core.async как пример. То есть мне как бизнес логическому программисту макросы может и не особо нужны. Однако, то что библиотекописатели могут подкинуть хороших библиотек оно помогает.

bezrukov08:07:13

Ну вот golang тут, на мой взгляд, вообще не нужен

bezrukov08:07:21

А для энтерпрайзной разработки JVM - отличный выбор. Например, библиотеки для работы с SOAP (наверняка же с 1С через него будет общение).

kharus08:07:56

Живучесть голанга - тоже вопрос сомнительный. Надоест гуглу с ним играться - выбросят на помойку как гугл ридер.

lowl4tency08:07:50

kharus: там уже такое коммьюнити что сомнительно

lowl4tency08:07:02

Если даже оно надоест гуглу кто-нибудь подхватит

lowl4tency08:07:13

Если доверять мозиле то раст simple_smile

kharus08:07:16

Мне кажется один Дэвид Нолен стоит всего их комьюнити simple_smile

lowl4tency08:07:49

В кложуре коммьюнити поцаны как-то поумнее чем в других

kharus08:07:25

На расте писать LOB приложения довольно долго я думаю.

kharus08:07:39

Хотя раньше писали на С и ничего simple_smile

dottedmag08:07:43

kharus: golang гугл использует внутри активно, так что быстро выбросить не смогут.

petr.myain08:07:33

В целом, бывает, технологии хоть и популярные, но выбрасываются

petr.myain08:07:30

Вон Angular - мега популярен, но в гугле его полностью несовместимо переписали (ещё в процессе) - будет Angular 2, а первый, видимо, останется только на поддержке силами сокращающегося комьюнити

petr.myain08:07:42

Такая история уже была с GWT

petr.myain08:07:44

Ещё у них есть язык Dart, который так и не полетел и теперь не понятно что с ним будет... Команда Dart заявила в этом году, что их язык теперь будет самым крутым для написания высокопроизводительных отзывчивых приложений для Android - ищут куда приткнуть

petr.myain08:07:05

Но чую, через пару лет вообще заморозят

petr.myain08:07:57

С golang всё гораздо лучше, язык явно пошел в массы на ура

petr.myain08:07:03

Девид Нолен крут, но это bus factor!

denizzka08:07:06

а как там в golang c коллекциями?

kharus08:07:16

Не знаем. Этож по кложуре канал simple_smile

petr.myain09:07:35

5 сек, спрошу на канале golang

petr.myain09:07:12

Я всё сравниваю и замечаю общих черт: Core.Async = горутины; clojure протоколы = go интерфейсы

petr.myain09:07:39

Go нет ООП, но есть полиморфизм похожий на clojure

petr.myain10:07:41

про коллекции в go вот: https://clipperhouse.github.io/gen/slice/ (сам ещё не дочитал)

ponimas10:07:01

> Этож по кложуре канал simple_smile

lowl4tency10:07:53

у голанга есть свой слак кстати

niquola10:07:44

Кто знает как deftype преобразовать в hash-map? Или так кто конвертил ValidationError schema/prizmatic в json?

a.espolov11:07:16

@nicola: переходи на cljs и катай туда обртано edn

niquola11:07:22

Уже в главной группе ответили, боюсь deftype в edn тоже не просто конвертиться

petr.myain11:07:13

я вот пробую cljs - чёт долго компилится 😞

petr.myain11:07:30

дошел до пункта $ lein cljsbuild auto

petr.myain11:07:21

Compiling "out/main.js" from ["src"]... ←[32mSuccessfully compiled "out/main.js" in 51.554 seconds.←[0m

petr.myain11:07:40

in 51.554, Карл!

dottedmag12:07:12

petr.myain: А если ещё раз?

petr.myain12:07:33

да, следующие сборки пошли бстрее 5-7 сек!

dottedmag12:07:55

Там же написано: "After running this command, you will likely see Leiningen spend a few moments downloading the required dependencies."

petr.myain12:07:35

51 сек - это без dependencies

ilshad12:07:32

для работы нужно ставить без оптимизации: {:id "dev" :source-paths ["src/cljs"] :compiler {:output-to "resources/public/js/dev/main.js" :output-dir "resources/public/js/dev/out" :optimizations :none :source-map true}}

ilshad12:07:33

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

petr.myain13:07:41

да, тоже подумал, надо оптимизацию отключить, спасибо за совет!

petr.myain15:07:21

решил шпаргалку составить, ещё не дописал: https://pqr7.wordpress.com/2015/07/29/php-vs-clojure/

petr.myain15:07:44

а есть подобные сравнения с синтаксисом java, python или ruby?

denizzka16:07:15

а разве оно нужно кому нибудь? если кому то нужно, то где то есть... но я не уверен

razum2um16:07:23

@petr.myain: @denizzka нужно. давайте сюда: http://clojure.ru/dev/from_other_languages.html но только желательно поглубже простого синтаксиса

razum2um16:07:13

@petr.myain: @denizzka вот еще пример хорошего старта для перехода http://habrahabr.ru/company/wargaming/blog/221035/

shinych16:07:10

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

niquola17:07:39

SICP один из хороших мостиков - он есть на english, на русском и даже на youtube

niquola17:07:37

У нас статистика, те кто книги не читал - тому clojure с трудом давался, а те кто любят читать - от clojure потом не оторвать было simple_smile

lowl4tency17:07:56

а я не нашел вменяемый сикп на русском

lowl4tency17:07:17

а когда начинал читать его, то мой уровень владения английским оставлял желать лучшего, так что не осилил

petr.myain17:07:10

@razum2um: спасибо за хорошие примеры!

petr.myain17:07:23

Я ещё смотрел серию видео на английском "Clojure for PHP developers" - думал перевести в формат статьи и на русском и на Хабр

denizzka17:07:13

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

lowl4tency18:07:27

denizzka: я на русском находил недопереведенный куски только

lowl4tency18:07:42

а есть ссылка на амазон или озон ?

denizzka19:07:03

http://www.ozon.ru/context/detail/id/5322055/ дык в гугле много ссылок и на pdf версию

niquola19:07:00

Кстати перевод хороший - академический