Size: a a a

Clojure — русскоговорящее сообщество

2020 July 16

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Ruslan Khafizov
Как ортогонализация следует из типов?
Ну примерно так же, как и из любых внешних верифицирующих активностей, даже из TDD.
Контроль эффектов позволяет вам иметь прозрачно информацию о совершаемых в скоупе функции манипуляциях над внешним миром, что служит хорошим подспорьем для разделения несвязанных процессов
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
А, ну это кому как наверное)
Мне, например, из алг эффектов бы интересовали возможности анвиндить стек вызовов наверх с какими-нибудь дефолтными значениями или ещё что-нибудь такое, а не сигнатуры, которые получаются с эффектами)
У Киселёва есть, кстати, много лекций на тему континюэйшонов в схеме и написания интерпретаторов/компиляторов на континюэйшонах.
Это как раз похоже на предмет вашего интереса
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg ℕizhnik
Конечно, не обязательно. Просто я говорю именно в контексте "если вам интересны алгебраические эффекты, вам наверное интересна строгая связь сигнатур с термами", а не дополнительные фишки рантайма
Контроль за эффектами конечно много чего бы дал. Но это как null-чеки в каком-нибудь котлине - программист и сам может об этом подумать. Помню даже у Мартина (или у кого-то ещё) про этот rant вокруг nullability - типа прогеры стали такими тупыми, что не могут с нулями разобраться))

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

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
Контроль за эффектами конечно много чего бы дал. Но это как null-чеки в каком-нибудь котлине - программист и сам может об этом подумать. Помню даже у Мартина (или у кого-то ещё) про этот rant вокруг nullability - типа прогеры стали такими тупыми, что не могут с нулями разобраться))

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

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Но меня вот что расстраивает в строгой типизации
https://www.youtube.com/watch?v=aSEQfqNYNAc
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
5 минут видео,
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
По-моему я его видел. Сейчас нет возможности смотреть со звуком.
И там вроде необоснованные выводы о типах на примере совсем не самой лучшей системе спецификаций
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Ну т.е. это как делать выводы о типах на основе golang
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg ℕizhnik
По-моему я его видел. Сейчас нет возможности смотреть со звуком.
И там вроде необоснованные выводы о типах на примере совсем не самой лучшей системе спецификаций
Главный посыл короче там в том, что каждый тип это как отдельный апи, который ты должен знать. И у каждого класса (я помню что класс != тип, но джава всё таки) свой апи, хотя всё можно выразить обычной хэш-мапой.
TL;DR - не сделали ещё такой системы типов, которая бы позволяла удобно работать с данными/data/infromation
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Tim Plotnikov
Главный посыл короче там в том, что каждый тип это как отдельный апи, который ты должен знать. И у каждого класса (я помню что класс != тип, но джава всё таки) свой апи, хотя всё можно выразить обычной хэш-мапой.
TL;DR - не сделали ещё такой системы типов, которая бы позволяла удобно работать с данными/data/infromation
Ну в реальности то сделали
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Oleg ℕizhnik
Ну в реальности то сделали
Coq?
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Собственно фича системы типов, которая позволяет удобно работать с хешмапами  называется row polymorphism
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Нет, кок для доказательств
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
В скале есть зачатки, роу полиморфизм есть в пюрскрипте, каких-то нишевых вроде ermine, ну и в некоторой форме даже в тайпскрипте
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Vlad Lisovsky
Он хоть 1/10 от кложавского может?
ну, я воркшиты пробовал, как-то это грустно было
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну, я воркшиты пробовал, как-то это грустно было
ну воркшиты - это и не репл
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Это где-то посередине между реплом и ноутбуком
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Но есть и просто реплы
источник

Oℕ

Oleg ℕizhnik in Clojure — русскоговорящее сообщество
Но, так же, стоит понимать, что любители типизации не любят и не поддерживают идеи об удобстве выражении данных в диктах/хешмапах
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Да не разговаривай ты с долбоёбами
Я тоже так думаю. Как можно разговаривать с человеком, если он не отличает бестиповый язык программирования от языка со многими типами, но проверяемыми в рантайме.:)
источник