Roman
ты ведь шутишь, да?
нет, я пытаюсь разобраться. То, что в ТС есть утиная типизация, не значит, что в нем нет строгости
Фил Ранжин
мы говорим про разные строгости, да
Roman
ну строгость — это то, насколько компилятор заставляет тебя следовать правилам языка. Правила могут быть хорошие и современные, а могут быть древние или просто уебанские
Фил Ранжин
хорошее определение
Roman
Хотя одно от другого сложно отделить как следует
Фил Ранжин
без сарказма
Фил Ранжин
Анна
Слабая статическая типизация - это типа C++. Когда ты можешь написать так, что компилятор тебе не только не поможет, но ещё и добъёт. Сильная - которую нельзя так просто сломать, и если система типов что-то обещает не допустить, значит в рантайме этого точно не случится
Фил Ранжин
я кстати не находил прям вот классификации систем типов
Фил Ранжин
Фил Ранжин
Фил Ранжин
Фил Ранжин
или работы
Анна
Анна
http://starling.rinet.ru/~goga/tapl/tapl.pdf
Фил Ранжин
уже нашёл на русском)
Фил Ранжин
Фил Ранжин
Igor
Вот именно, NPE - очень маленькое подмножество реальных ошибок.
Фил Ранжин
Мне очень нравится идея - прошёл билд, значит приложение работает. Я понимаю, что это утопия, но мой поинт - эта утопия практичней других утопий. Тесты - часть этой идеи, причём самая уёбищнах и плохо работающая.
Roman
Слабая статическая типизация - это типа C++. Когда ты можешь написать так, что компилятор тебе не только не поможет, но ещё и добъёт. Сильная - которую нельзя так просто сломать, и если система типов что-то обещает не допустить, значит в рантайме этого точно не случится
хорошая попытка, но тут все равно неясно. Вот в жаваскрипте ты можешь сделать '5'+2 и получить '52', а можешь сделать '5'-2 и получить 3. Здравомыслящий человек понимает, что это таки хуйня, но никаких исключений не сыпется, ниче не происходит, отрабатывает штатно. И как тут понять, это слабость типизации или ебанутость правил?
Фил Ранжин
Анна
хорошая попытка, но тут все равно неясно. Вот в жаваскрипте ты можешь сделать '5'+2 и получить '52', а можешь сделать '5'-2 и получить 3. Здравомыслящий человек понимает, что это таки хуйня, но никаких исключений не сыпется, ниче не происходит, отрабатывает штатно. И как тут понять, это слабость типизации или ебанутость правил?
Ну JS ни в какие рамки не вписывается, что поделать 😂 Но да, разделять эти два случая довольно полезно, согласна
Roman
Фил Ранжин
Roman
Я ща на работе на сишарпе пишу, но как только ты выносишь логику в чистый статический метод и только его покрываешь юнит тестами — смысла в жизни становится гораздо больше
Roman
И моки становятся нахуй не нужны
Roman
Но понятное дело, васяны эти так не делают, и да, те юнит тесты с моками можно сразу им в жопу боком засовывать
Roman
ну, я тоже не так давно думал, что корень проблемы в объектах
Igor
Roman
тсс, не спойлери
Roman
это прелюдия к переходу на фшрап
Bonart
Roman
то есть, ооп, конечно, для сегодняшних типичных тырпрайз задач безусловно не лучший выбор. Но проблемы, о которых ты говоришь, все-таки происходят не из ООП
Bonart
ООП конечно нестрого, но проблемы - они таки в головах
x
Bonart
В ФП эти же головы будут писать так же криво
Bonart
Виновато станет ФП
Roman
Следовательно, разруха не в клозетах, а в головах!
Roman
ой, его тут и без меня за это ссаными тряпками отходють
Roman
мне удивительно повезло с командой
Hog
ну ок :)
Igor
Следовательно, разруха не в клозетах, а в головах!
Ну такое, можно подумать фп-шники все такие умные и не говнокодят.
Имхо проблема что ООП-шники просто не знают альтернатив.
Их всю жизнь с универа учили UML схемы объектов рисовать, они по другому просто не могут.
Roman
Bonart
Bonart
Т.е. у кого голова светлая - и на ооп годно кодит и фп уважает когда ознакомится
Bonart
У меня в команде разраб сам додумался до классов типов не имея о них понятия вообще, включая сам термин
Igor
Нет, оно может спокойно пройти мимо, мы НЕ работаем мы в окружение “светлых голов”
Vladislav
@grishace @omgszer https://github.com/Mefgalm/Json2FSharpBack/pull/2 осиляторы fparsecа, проверьте правильно ли я фиксанул Владислав
Vladislav
как бы вроде да, но мало ли
Bonart
Bonart
Светлых голов немного но они есть всегда
Vasily
Vladislav
Вроде все ок
ой, забыл что ты тоже шаришь за него)
x
@deexpp вот такой блокнот )
Vladyslav
Hog
Vladislav
https://twitter.com/ericlippert/status/1108732137019068416
Vladislav
pizdec
x
x
но чтоб вот так
Hog
Гуглу можно, а им нет что ле? :)
Hog
Hog
+ member IsInteger: bool // not (HasFraction || HasExponent)
Hog
т.е. условие там надо перевернуть
Vladislav
Спс
Hog
(fun x -> if x.HasFraction then JFloat else JInt) ===> if x.IsInteger then ...
Hog
нутыпонил
Hog
но это я прочитал в доке фпарсека
Hog
так что пробуй :)
Vladislav
Я там долго втыкал в choice
Vladislav
И не понял его смысла
Vladislav
Так как валиться на первом все равно