A64m
сигнатуры пишут в 95% из-за убогости хаскельного тулинга и в 5% в случае всяких продвинутых тайплевельных фокусов
Denis
сигнатуры помогают не при написании кода, а при возвращении к нему
A64m
ну я и говорю, из-за убогости хаскельного тулинга
Denis
с монохаскеллем могли бы выводиться сами, но зачем так жить
A64m
потому что почти всегда они восстанавливаются из кода "машинным" способом
Denis
не согласен с “почти всегда”
Viacheslav
Вообще у вас тут первое апреля что ли продолжается?
Leonid 🦇
а как? я в такое не умею
C-u-c-t по умолчанию
A64m
я не шучу только первого апреля
A64m
но тут я почти серьезен
Leonid 🦇
Ну так у тебя и хаскель для развлекухи
Denis
а что там было про 5KLOC?
Denis
тоже для развлекухи?
A64m
к сожалению для страдания Ж(((
Denis
хуяк хуяк и в страдание
A64m
да
Denis
чем меньше хаскель похож на окамл и чем больше похож на агду, тем меньше шансов, что сигнатуры можно не писать
Denis
а он явно в этом направлении идет
Denis
вывод неразрешимее и неразрешимее
A64m
идет, конечно, но не особо далеко ушел пока
Denis
с точки зрения вывода типов уже все довольно спорно
A64m
ну и аннотаций типов для разрешимости нужно меньше чем принято писать сейчас, за счет всяких частичных сигнатур и применений типов
Denis
пойду кстати хоткей попробую, который выше советовали
Denis
C-u-c-t по умолчанию
чего-то не забинжено такое. У тебя какая функция на биндинге?
Leonid 🦇
дефолтное всё
Denis
C-h k C-u-c-t
Denis
что говорит?
Andrey
чем меньше хаскель похож на окамл и чем больше похож на агду, тем меньше шансов, что сигнатуры можно не писать
ну в ocaml сигнатуры писать начинает хотеться довольно быстро, даже целые *.mli
Leonid 🦇
ну это же C-u + C-c C-t
Leonid 🦇
C-c C-t runs the command haskell-process-do-type (found in interactive-haskell-mode-map)
Denis
ну это же C-u + C-c C-t
увидел, у меня от проекта ghci грустит
Denis
ну в ocaml сигнатуры писать начинает хотеться довольно быстро, даже целые *.mli
Я выше примерно то же самое про хаскель говорил. Кмк в окамле не так остро вопрос стоит, но, вероятно, стоит в принципе.
Andrey
мне кажется, больше не от языка зависит, если честно В какой то момент начинает хотеться провести границы, иначе сложно думать о системе. "Непонятные ошибки типов в непонятных в местах" это как симптом больше, а не причина.
A64m
ну в ocaml сигнатуры писать начинает хотеться довольно быстро, даже целые *.mli
написание сигнатур в окамле имеет другие смыслы помимо "автоматически генерируемой документации, которую почему-то пишут вручную", их скорее с декларацией классов типов надо сравнивать тогда уж
A64m
ну сейчас обсуждаются сигнатуры в хаскеле именно как "автоматически генерируемая документация, которую почему-то пишут вручную" у сигнатур для модулей в хаскеле, понятно, такой же смысл как в окамле, но их сейчас полтора человека пишет
Andrey
все, сорри, влез по ключевому слову ocaml 🙂 ухожу
Алексей
Не знаю как вы, а я часто код начинаю писать как раз с сигнатур
IC
Типы писать надо. А вот код пусть сам выводится.😜
parket
Не знаю как вы, а я часто код начинаю писать как раз с сигнатур
А имплементации? fn_name = error "fn_name to be implemented" ?
кана
Не знаю как вы, а я часто код начинаю писать как раз с сигнатур
Аналогично, часто пишу сразу кучу функций с undefined или классов без реализации
Алексей
Просто undefined
Denis
Типы писать надо. А вот код пусть сам выводится.😜
только типы надо писать такие, что mickey-mouse-eye-piercing.gif
Denis
в хаскель justDoIt завезли вон
Alexander
+
++
Denis
производная от лайка?
Leonid 🦇
+'
A64m
Ну, "пишем типы - код выводится" существует больше в программных выступлениях МакБрайда, хотя не совсем, кое-где как-то работает, а вот типы из кода действительно нормально выводятся.
Denis
У макбрайда где выводится - все довольно алгебраично. Так продакшены не пишутся, практики говорят что это недружелюбно и элитизм.
A64m
но справедливости ради, надо заметить. что есть вполне практические случаи, когда выводится. просто это не пробольшую часть кода, а вот вывод типов как раз про большую
A64m
т.е. сигнатуры полезны, но не надо забывать что большая часть всех этих рассуждений об их полезности были выработаны для обоснования того, что вывода типов нет. Там где вывод типов есть, возможны другие решения, под которые можно подводить другие обоснования.
Алексей
Если код выводится специально обученным программистом - отлично работает
A64m
есть обоснования от страдальцев с допотопными языками, есть обоснования от тех кто делает/использует ЯП от пруфассистентов происходящие, но не надо забывать что и тем и другим с этой подводной лодки никуда не деться, выбора у них нет вовсе, можно только обосновывать, почему его нет
A64m
ох, да любое его выступление
Dmitry
Ага
Aliester
вы думаете, что их можно профпереориентировать?
IC
А нужно?
Алексей
Можно ли писать яву на сабже?
parket
Нужен DSL для управления джавистами.
Denis
язык+VM или чтобы как java-код выглядело?
Denis
Нужен DSL для управления джавистами.
визуальный давно придумали - jira
Denis
шах и мат
Kirill
Нужна inline-jira
Cheese
я как раз работаю над чем-то таким
Denis
чтобы можно было джавистами из хаскеля управлять?
Leonid 🦇
inline-bugaenko
Alexander
а у него есть C APi?
Leonid 🦇
Только через jni
Denis
Внезапное: А sabbatical вообще реально брать в нашей индустрии? Мне иногда так надоедает это всё что хочется на год в горах жить, дрова колоть, музыку играть или что-нибудь такое, подальше от монитора.
Leonid 🦇
Если не на js пишешь то можно
Denis
думаешь все фреймворки устареют?
Leonid 🦇
Думаю да
Alexander
можешь в Сохатского превратиться