Andrey
ну тогда почему не признать проблему вместо продемонстрированной не особо достойной реакции?
A64m
ну тогда почему не признать проблему вместо продемонстрированной не особо достойной реакции?
ну а кто не признает проблему-то? Не признают динамическое решение ничего не решать
Andrey
и снова приходим к замечательному компромиссу - или тесты или типы - и никакой ругани, батлов, карикатур и обид с последствиями
Влод
эх жаль не хватает времени на чат(
Andrey
(я ради этого работу на поздний вечер-ночь отложил ))))
Andrey
то что мы с вами уже многократно обсуждали
Влод
это, а у меня есть такое подозрение когда из хешмапа извлекаю список то он упорядочен по ключу. и вроде в ghci мои подозрение оправдываются, но в доках про это не написано
A64m
то что мы с вами уже многократно обсуждали
сколько обсуждали - столько и не понял
Andrey
что типы дают гарантии - но не все, и выбор - или больше гарантий и больше ограничений (проблем, ненатягиваний и т.п.), или нет
Andrey
да вроде даже консенсус был
Антон
так и надо
Ужас какой
Антон
у вас опять по вторникам пятница?
Динамика пускает корни
Andrey
t.me/fprog_spb/221 а вот и пример многочисленных консенсусов
Andrey
все же очевидно, если в религию не уходить
A64m
что типы дают гарантии - но не все, и выбор - или больше гарантий и больше ограничений (проблем, ненатягиваний и т.п.), или нет
проблема в том, что меньше чем вот столько типов просто не имеет практического смысла. Дамас-Милнер фактически программисту ничего не стоит, вот вылезать из этого теплого местечка в сторону более тяжелых типов с более интересными гарантиями и кодогенерацией - это обсуждаемо. А динамика с 70-х годов просто не нужна, как езда на лошади не является практически интересной алтернативой, когда выбираем как по городу перемещаться.
Andrey
Вот когда докладчик выше покажет как на Хаскеле писать динамику удобно и дешево - будет конструктивный ответ
Слава
О типах.
Andrey
это не про вас - там другие изъявляли желание
Слава
Например, хочу я ввести новые синонимы для int32 и назвать их UserId, EmployeeId, ShiftId. А не могу, язык c# не позволяет
Andrey
на аде пиши
Andrey
это небесплатно
Andrey
тут же супер-аргумент про единицы измерения дальше пойдет
Andrey
и про ту самую ошибку из-за которой разбился один летальный аппарат
Слава
Или, хочу я ввести тип Миллилитры, с гарантированной точностью в 1/1000 и диапазоном от -2 млрд до 2 млрд их
Andrey
а про другую, когда ошиблись в знаке - и никакая типизация не спасла бы от этого, будут скромно умалчивать
Слава
А нельзя. Такое вообще я только в аде видел
Антон
это небесплатно
newtype небесплатно?
Andrey
в шарпе есть ньютайп?
Антон
Разве что в языках вроде Java или C#, где на стеке не выделишь
A64m
Вот когда докладчик выше покажет как на Хаскеле писать динамику удобно и дешево - будет конструктивный ответ
ну динамический язык, это просто один АлгТД в типизированном языке как здесь janeDoe :: EDN janeDoe = mapOf [ #name, "Jane Doe" , #age, int 34 , #favorite_books, setOf ["a tale of two cities", "the kite runner"] , #some_tagged_value, #my_tag (float 72.234) , #a_few_of_my_favorite_things, [#rain_drops_on_roses, #whiskers_on_kittens] , #address, mapOf [ #state, "ny" , #zip, int 11225 ] ] main :: IO () main = do print janeDoe print (preview (key #name . _String) janeDoe) print (preview (key #address . key #zip . _Integer) janeDoe) print (set (key #address . key #zip . _Integer) 11237 janeDoe) print (set (keyAt #height) (Just (float 56.4)) janeDoe) print (over (key #a_few_of_my_favorite_things . _Seq . traverse . _Keyword) Text.toUpper janeDoe) и чем это хуже кложуры? Только тем что статических явовых либ нету
Слава
Ну, можно сделать класс с единственным полем
Вообще можно сделать структуру такую, и она будет занимать то же место, что и int32, и быть в принципе бесплатной. Но уже не столь просто получается
Слава
К чему я все это пишу - простых-то вещей в языках нет. Может в хаскеле есть, но он не массовый. А следовательно - как ни пиши, все равно будет криво, поэтому и выбирают динамику
Влод
структурки в шарпе вроде на стеке выделяются
A64m
Отлично. Если оно не сильно тормозит и вменяемо ведет себя при обращениях по несуществующим ключам - уже интересно
оно естественно тормозит, также как и динамика, а обработка сообщений по несуществующим ключам - вопрос имплементации, как надо так и сделать можно
Слава
структурки в шарпе вроде на стеке выделяются
Именно. Но для одной переменной структура - какой-то перебор
A64m
шарп убогий, конечно, но уж не настолько убогий как питон или яваскрипт какой
Влод
типа код расползается
Влод
шарп убогий, конечно, но уж не настолько убогий как питон или яваскрипт какой
шарп всегда казался приятней джавы. правда методы с большой буквы всегда в глазах ребили
Влод
не помню чтобы ещё где-нибудь такое видел
Слава
шарп убогий, конечно, но уж не настолько убогий как питон или яваскрипт какой
Питон теперь основной язык в школах и университетах США, поэтому, по синдрому утенка, он теперь очень надолго с нами. А для js вообще нет альтернатив в браузерах
parket
Web Assembly!
И где оно сейчас работает? Только поделки от Mozilla?
Антон
/кадр из второго Шрека с Ослом/
Слава
ну имеешь ввиду визуально?
Да. И на уровне например чтения из базы или json - неочевидно, как оную библиотеку заставить читать из int наш struct
A64m
Питон теперь основной язык в школах и университетах США, поэтому, по синдрому утенка, он теперь очень надолго с нами. А для js вообще нет альтернатив в браузерах
ну естественно для их распространенности есть причины, я возражаю против утверждения что мейнстримовые языки настолько ужасны, что срипты по сравнению с ними норм. Это уже не так, но до 2000х так и было, конечно
Aragaer
у меня к шарпу дикая неприязнь из-за глубокой травмы детства, когда я пытался распарсить в структуру последовательность байт, полученных через tcp, не осилил определения слова "marshalling" и забил.
Aragaer
аж на линукс убежал, лишь бы подальше от шарпа
Влод
Слава
Alexander
слышу глас разума в чате )
глас разума = кто-то с тобой согласен, я в соседнем чятике подобное видел
Andrey
а вот это то самое передергивание о котором так долго говорили большевики
Leonid 🦇
Короче про типы. час мучался не мог понят что что у меня не так с трансформами. Порядок что-ли не тот в матричках. Оказалось в одном месте АПИ жрёт градусы, а в этом почему-то радианы. Падла.
Leonid 🦇
(это плюсы, детка. Хорошо хоть не void*)
Andrey
самое время вспомнить аду и "ту самую ошибку с летальным аппаратом"
Слава
у меня к шарпу дикая неприязнь из-за глубокой травмы детства, когда я пытался распарсить в структуру последовательность байт, полученных через tcp, не осилил определения слова "marshalling" и забил.
Я когда-то на Си читал бинарные файлы, но забыл об опциях "перевод строки \r vs \r\n". Думал, у меня крыша едет - смещение верное, а читается не то
Andrey
это и в Хаскеле запросто, если солому не стелить
Anonymous
Я тут сделал же идлку
Anonymous
Поддержка сишарпа скоро будет
Слава
самое время вспомнить аду и "ту самую ошибку с летальным аппаратом"
Та самая ошибка была, как недавно с Байконуром. Программу для одних условий запустили в других условиях
Anonymous
Решил проблему генерацией говнообёрток
Alexander
а вот это то самое передергивание о котором так долго говорили большевики
тем не менее фразу про глас разума и "умных людей" вы пишете если появятся тот кто с вами согласен
Слава
Ну и помогли тебе твои типы, сынок? (С)
Тут не типы нужны, а всю систему менять надо. Вот 18 марта... молчу
Andrey
другого типа выбери! )))
Anonymous
Олл хайль путин
parket
только поделки от Mozilla, Google и MS
Ого. Сильно продвинулось.
Alexander
!!!!!111
Anonymous
Олл халь рашка