Size: a a a

2020 October 02

L

Liscript-bot in fprog_spb
Yuu-chan: ошибка преобразования в число: String: «Для
источник

Y

Yuuri in fprog_spb
А я поясню свою позицию на примерах. Вот в стандартной библиотеке есть зоопарк функций типа int_of_string, int_to_string, int_of_char и подобных. А могло бы быть сильно меньше.
Вы скажете – ну можно же распихать по модулям! Но в итоге Int.of_string в конкретных местах использования не будет сильно удобнее.
Вот типичный пример – (де)сериализация какого-нибудь рекурсивного или сложносоставного АТД в бинарную строку/sexp/JSON/что-нибудь ещё, если генерацию через ppx не завезли или она чем-то не устраивает. Своя реализация будет выглядеть примерно как let to_smth (A foo bar baz) = Foo.to_smth foo ; Bar.to_smth bar ; Baz.to_smth baz. Гораздо больше очевидного синтаксического шума.
источник

Y

Yuuri in fprog_spb
Вроде всё это мелочи, но утомляет. В C++ без auto тоже можно прожить (и даже есть ярые противники, вон в движке Godot совсем недавно переползли с C++98 на modern только с запретом auto ), но с ним всё же как-то полехше.
источник

AT

Alexander Tchitchigi... in fprog_spb
Yuuri
А я поясню свою позицию на примерах. Вот в стандартной библиотеке есть зоопарк функций типа int_of_string, int_to_string, int_of_char и подобных. А могло бы быть сильно меньше.
Вы скажете – ну можно же распихать по модулям! Но в итоге Int.of_string в конкретных местах использования не будет сильно удобнее.
Вот типичный пример – (де)сериализация какого-нибудь рекурсивного или сложносоставного АТД в бинарную строку/sexp/JSON/что-нибудь ещё, если генерацию через ppx не завезли или она чем-то не устраивает. Своя реализация будет выглядеть примерно как let to_smth (A foo bar baz) = Foo.to_smth foo ; Bar.to_smth bar ; Baz.to_smth baz. Гораздо больше очевидного синтаксического шума.
Больше похоже на вопрос Higher-Kinded Types и наличия аппликативных функторов сотоварищи... 🤔
источник

AT

Alexander Tchitchigi... in fprog_spb
С другой стороны, таки можно и через объекты с наследованием сделать.
источник

AT

Alexander Tchitchigi... in fprog_spb
С третьей стороны, если что-то добавлять, то почему не алгебраические эффекты и через них изгаляться?
источник

Y

Yuuri in fprog_spb
источник

Y

Yuuri in fprog_spb
Переслано от Roman Kashitsyn
У нормального рахитектора рахитектура в жабе и хаскеле будет примерно одинаковая.

Другое дело, что для  реализации этой рахитектуры на Жабе потребуется в 5 раз больше кода, в 17 раз больше файлов, в 10 раз больше жавистов, и никто в итоге не будет понимать, как же эти 2 миллиона строк кода вообще работают.
источник

AT

Alexander Tchitchigi... in fprog_spb
Так что добавление классов типов мне всё ещё не кажется единственно правильным решением. 🤷‍♀️
источник

YS

Yan Shkurinskiy in fprog_spb
Yuuri
Переслано от Roman Kashitsyn
У нормального рахитектора рахитектура в жабе и хаскеле будет примерно одинаковая.

Другое дело, что для  реализации этой рахитектуры на Жабе потребуется в 5 раз больше кода, в 17 раз больше файлов, в 10 раз больше жавистов, и никто в итоге не будет понимать, как же эти 2 миллиона строк кода вообще работают.
Наверное
источник

YS

Yan Shkurinskiy in fprog_spb
Но принципы одни!)
источник

YS

Yan Shkurinskiy in fprog_spb
Тут же о подходах спрашивают)
источник

AT

Alexander Tchitchigi... in fprog_spb
Yan Shkurinskiy
Но принципы одни!)
Hexagonal Architecture FTW!!! 😂
источник

AT

Alexander Tchitchigi... in fprog_spb
Alexander Tchitchigin
Hexagonal Architecture FTW!!! 😂
С другой стороны, так оно по факту и есть на самом деле...
источник

Y

Yuuri in fprog_spb
Alexander Tchitchigin
С третьей стороны, если что-то добавлять, то почему не алгебраические эффекты и через них изгаляться?
Вот уж не знаю. Я говорю с позиции не дизайнера языков, а пользователя, которому одинаковые штуки в одном языке было удобно делать, а в другом неудобно (ну хорошо, не так удобно).
источник

Y

Yuuri in fprog_spb
Alexander Tchitchigin
Hexagonal Architecture FTW!!! 😂
Ух ты, что это?
источник

AT

Alexander Tchitchigi... in fprog_spb
Yuuri
Вот уж не знаю. Я говорю с позиции не дизайнера языков, а пользователя, которому одинаковые штуки в одном языке было удобно делать, а в другом неудобно (ну хорошо, не так удобно).
Одинаковые штуки одинаковым образом. 😉
источник

Y

Yuuri in fprog_spb
А чего там шесть?
источник

AT

Alexander Tchitchigi... in fprog_spb
Yuuri
Ух ты, что это?
Да то же самое, что Clean Architecture и Domain-Driven Design. Почти неотличимо от MTL-пирога. 🤷‍♀️
источник

AT

Alexander Tchitchigi... in fprog_spb
Yuuri
А чего там шесть?
Классный вопрос! 👏👍😂
источник