Serghei
просто я тут решил идрис помучать (чисто ради исследовательских чтук), ну и плюс я там ерланг могу ковырять и прочее. не говоря уже о том, что 80% я пишу вообще на с. хочется что-то одно для всего :)
Aleksei (astynax)
Основная фишка spacemacs, это непротиверечивый набор биндингов и переориентация evil на Space в качестве лидирующей клавиши - это сделано для тех, у кого проблемы с кистями рук
Aleksei (astynax)
> что-то одно для всего
это как раз про Emacs - про любой :)
Anonymous
Короч юзай чистый емакс и use-package. На эргономику и остальное пофиг.
Aleksei (astynax)
+1
Aleksei (astynax)
эргономика подтянется, главное - отключить тулбары и прочие бары
Serghei
есть проблема с тем что имаксс я видел только на картинке
Aleksei (astynax)
Тогда можно смотреть на сайтик Xah Li - у него свой подход к биндингам, более привычный новичкам - Ctrl-C/Ctrl-V и проч
Serghei
когда-то друг показал вим, лет наверное 14 назад и так с тех пор и не заморачивался. конечно в современном мире есть всякие idea но не всегда удобно
Vasiliy
а чем vim не угодил?
Vasiliy
поддержка idris у него такая же, как и у емакса
Aleksei (astynax)
пакетов к emacs сильно больше, чем к vim :)
Serghei
ну, я в принципе любознательный чувак :) да и ктомуже спейсимакс мне нахваливал как раз вим фан
Aleksei (astynax)
emacs+evil = vim для не слишком упоротых вимеров
Bogdan
ну к имаксу еще всякие крутые штуки есть, типа proofgeneral
Bogdan
для того же coq
Aleksei (astynax)
magit и org-mode - киллерфичи имакса
Bogdan
магит супер каеф, очень крутой
Алдар
спейсмакс крут тем что там все из коробки, с конфигурацией особо не надо заморачиваться
Aleksei (astynax)
в качестве quick start пойдет. Но всё равно в итоге большинство пишет свой .emacs :)
Vasiliy
я просто список пакетов спейсмкса посмотрел и подтянул в свой конфиг то, что было интересно
Aleksei (astynax)
у спейсмакса не пакеты, это такие снэпшоты пакетов, сгруппированные по темам
Aleksei (astynax)
Поэтому всё, что есть в spacemacs, вопсроизводится при желании в vanilla emacs
Anonymous
Шпаргалка короче, эти лейеры.
Aleksei (astynax)
Проблема всех этих Spacemacs, Emacs Live, Prelude Emacs проистекает из их же сильной стороны - они за ползователя решают, что пользователю нужно
Aleksei (astynax)
Шпаргалка короче, эти лейеры.
Я себе так собрал первый .emacs из кусков конфига EmacsLive (https://overtone.github.io/emacs-live/)
Алдар
это не проблема, а фишка
Aleksei (astynax)
и проблема и фишка
Aleksei (astynax)
Часто прикрутить что-то, не совпадающее по идеологии с пакетами, вошедшими в сборку, настолько сложно, что проще или не делать ничего, или перестать сидель на сборке
Aleksei (astynax)
Именно потому, что "у каждого - свой emacs", ни одна сборка так и не победила за все эти годы
Aleksei (astynax)
К тому же сообщество вокруг любой сборки сильно меньше сообщества вокруг emacs в целом, а значит получить помощь в общем случае сложнее. Для чистого имакса найти HOWTO просто - это либо Emacs Wiki (обширнейшая), либо Info pages, либо README к конкретному пакету. Для сборок придется ждать, пока прикрутят пакет за тебя, либо прикручивать самому, что бывает непросто, особенно - если следовать гайдлайнам таких opinionated сборок, как Spacemacs
Anonymous
лично мне удобнее либо чистый emacs, либо чистый vim.
Anonymous
а можно четь подробней, почему?
Leonid 🦇
У емакса киллер фича это magit. Без него гит использовать невозможно
Крылатый
Есть у вима gita
Крылатый
Ну и идущая ей на смену gina
Anonymous
кстати, у кого есть опыт использования proofgeneral? мне как-то надоела coqide
Aleksei (astynax)
Влод
Anonymous
какой?
Влод
Что-то там про зависимые типы. Кто-нибудь точно кинет ссылку
Danila Matveev
Invite link: https://t.me/joinchat/AAAAAD9SWO_tLd7rJ9S7Ig
Anonymous
спасибо!
Alex
Изучал Idris по этому прекрасному курсу после самостоятельного чтения документации:
http://compsciclub.ru/courses/idrisprogramming/2017-spring/
Намного лучше всё в голове прояснилось. Ту самую книжку не читал, пока в планах. Решал задания в рамках этого курса. Они у каждого в закрытом репозитории. К сожалению, пока нет курса на степике такого же как с Haskell, было бы очень классно. В качестве экзаменационного проекта реализовал IntMap на зависимых типах на Idris. К сожалению, автор idris-containers не захотел мёржить мой PR, потому что алгоритм слишкой сложный для него( Но лично мне разобраться было очень интересно.
Язык (именно язык, а не компилятор) оставил очень приятное ощущение. Наверное, мне нравится даже больше, чем Haskell во многих местах (часть из которых отмечена в выложенном ранее блог-посте). Разумеется, использование зависимых типов и всех этих доказательств может быть утомительным, потому что нужно ещё больше специфицировать в типах, нужно больше тратить на доказательство компилятору, больше думать об архитектуре. Но лично я люблю выжимать больше гарантий из компилятора) И для написаного разного кода пока ещё хватало ума...
Наверное, больше всего в языке нравится ортогональность. Как Haskell является очень ортогональным языком, в котором фичи дружат друг с другом, так в Idris этого ещё больше, потому что из-за зависимых типов очень много конструкций уходит, всё дружит друг с другом, фичи более органично сочетаются. Это приятней по ощущениям.
Касательно компилятора... Ну, он не очень :D Иногда бывают баги. Например, сравнивать версию 1.0 у языка Kotin и Idris по тому, насколько корректно работает, нельзя. Иногда проблемы с парсингом, иногда сообщения об ошибках бесплолезные и странные, компилятор может зависнуть, тоталити чекер до сих пор не всегда работает, скорость компиляции и выполнения оставляет желать лучшего. Конечно, для истинных (извращенцев) ценителей это не помеха. Всё-таки, язык молодой, и эти проблемы преодолеваемы. Особенно если больше людей будет им интересоваться. С коммьюнити вообще беда... Если есть какие-то проблемы -- гугл тебе не помощник =\ Приходится разбираться самому почти всегда (это следствие предыдущего пункта). Что уже говорить про тулинг...
В общем, язык очень сыроватый, но приятный. Я бы хотел использовать его чаще. Но тут и Haskell использовать в продакшене бывает больновато, что уже говорить про Idris...
> автор idris-containers не захотел мёржить мой PR, потому что алгоритм слишкой сложный для него
он вообще ничего нового не мержит из того что не писал сам, только фиксы принимает
Alex
стандартная рекомендация - сливать все новые структуры напрямую в contrib в главной репе, с приходом нормального пакет менеджера рассортируют
Viacheslav
знакомая история
Alex
Alex
Dmitrii
> стандартная рекомендация - сливать все новые
> структуры напрямую в contrib в главной репе
Да мне не критично. Я и сам отчасти виноват, что ввязался в это неправильным способом, поэтому переживать из-за того, что PR отклонили не стоит) Вот это видео прекрасно объяснило правила выживания в OSS:
https://www.reddit.com/r/haskell/comments/6lt125/zurihac_2017_neil_mitchell_on_driveby_haskell/
И мне автор и сказал занести изменения в contrib, но я забил. Пакетный менеджер вряд ли появится скоро))
Alex
кое какие потуги делаются, вот например из последних https://github.com/Risto-Stevcev/idris-naps
Alex
там конечно по сути обертка для боуера :)
Vladislav
Кто нибудь в Haskell делал что-нибудь на подобии generative art, типа как на языке Processing https://www.openprocessing.org/ или как на Openframwork http://openframeworks.cc/ или как в JS https://threejs.org/ ??
Влод
была библиотека diagram вроде. у неё был какой-то кривоватый репл, типа как ideone (ну с сохранением результата) и я листал чужие примеры в надежде разобраться как там что делать. не так красиво, конечно, как на ссылках выше
Aleksei (astynax)
Есть именно "процессинг на хаскеля" от Антона Холомьёва (https://github.com/anton-k/processing-for-haskell)
Aleksei (astynax)
"REPL, но с сохранением результата", это IHaskell (https://github.com/gibiansky/IHaskell)
Aleksei (astynax)
И diagrams уже цпомянули. Вот их галерея для привлечения внимания: http://projects.haskell.org/diagrams/gallery.html
Aleksei (astynax)
Пример генеративщины на diagrams
Зигохистоморфный
еще https://github.com/nteract/hydrogen
Зигохистоморфный
я проверял) с хаскеллем работает
Зигохистоморфный
ну и еще https://qtconsole.readthedocs.io/en/stable/
Aleksei (astynax)
Да, точно, Юпитер же умеет в QtConsole
Vladislav
Спасибо, а я нашел пару книг по теме The Haskell School Of Expression - Paul Hudak и The Haskell School of Music того же автора!
Aleksei (astynax)
Эти книжки больше по теории. Впрочем, School of Music хорошая, помнится
Vladislav
Aleksei (astynax)
Так Антон специально делал так, чтобы было максимально похоже :)
Vasiliy
читаю тут сноймана - https://www.fpcomplete.com/blog/2017/07/the-rio-monad - опять на тему ReaderT IO, полез смотреть код, а там UndecidableInstances - https://github.com/snoyberg/rio/blob/master/src/Control/Monad/RIO.hs#L7
Vasiliy
читал где-то, что UndecidableInstances - признак серьёзных проблем
Vasiliy
так ли это, или если компилятор предлагает, то можно и согласиться?
Vladislav
Чушь.
Vladislav
UndecidableInstances — это не признак ничего вообще. Можно включать и забыть.
Vladislav
В худшем случае сообщение об ошибке получишь менее понятное (мол, компилятор ушел в бесконечный цикл и остановился по счетчику).
Vasiliy
я точно не помню, но там было что-то вроде такого: компилятор не может решить, какой из инстансов лучше, поэтому выбирает наобум
Vladislav
Это IncoherentInstances, они плохие.
Vasiliy
ага, понял, перепутал, значит
Vladislav
Vladislav
❤️
Евгений
А чо, в голанг уже подвезли system f, type classes и GADT?
Vladislav
Вот чего захотел, нет уж, мы тебе бинарник зато быстро соберем.
Влод
Евгений
Я слышал, что там все ноют про отсутствие параметрического полиморфизма. Который почему-то дженериками называют, ну лан