Сообщение Re[30]: Мнение: объектно-ориентированное программирование — от 14.10.2019 12:26
Изменено 14.10.2019 12:37 Pauel
Re[30]: Мнение: объектно-ориентированное программирование —
Здравствуйте, samius, Вы писали:
I>>Я пишу про те кейсы, где это неуместно. Типа это надо объяснять ?
S>Конечно. Ты только сейчас оговорился, что это бывает уместно, а ты лишь про те кейсы, где это неуместно.
Вот такое, как ты показал, уместно в основном при портировании с другого функционального языка. А вот C# имеет кучу собственных вещей, которые позволяют эффективно работать со списками в функциональном стиле.
Это эффективно в силу особенностей портирования — вместо переписывания есть вариант "скопировать и подправить механически".
I>>Кроме того:
I>> — на кой ляд изобретат велосипед в ЯП с другой парадигмой, где вообще всё построено на других принципах ?
S>Что бы было чем воспользоваться, если, вдруг, понадобились принципы, отличные от безальтернативно предлагаемых в данном ЯП.
Ага, "на всякий случай"
I>> — преждевременная пессимизация "всё и так будет работать" не менее вредна чем преждевременная оптимизация.
S>Убеди количественной оценкой вредности в среднем по больнице на сфероконических проектах.
Ага, "и так сойдёт"
I>> — сложность сопровождения вырастает — нужно постоянно продираться через такие велосипеды, соответсвенно, такое решение обычно усложняет проект, а не наоборот.
S>Такое решение может давать гарантии, которых не может дать обычное решение.
Подробнее, какие именно гарантии, если компилер C# те самые гарантии не выдаёт. До кучи, отламывается пошаговая отладка — становится неюзабельной, а так же и другие инструменты. Например, автоматический рефакторинг сильно вряд ли сможет рефакторить твои наколеночные списки.
>Как следствие, упрощает проект. Конечно, я здесь не про всевозможные велосипеды, а за те, которые обладают некими полезными свойствами как персистентность.
Для персистентной модели в общем случае нужно гораздо больше, чем иммутабельные списки. Нужна вообще вся модель приложения персистентная, а следовательно, весь код который её использует, должен быть особенным.
Кроме того, если функционалист уходит, на его место надо внезапно искать нового функционалиста, да еще такого, что бы C# знал и умел на вышем уровне, что бы продраться через эти велосипеды. Тут уже звоночек и у ПМ, и у HR, и у заказчика.
I>>Я пишу про те кейсы, где это неуместно. Типа это надо объяснять ?
S>Конечно. Ты только сейчас оговорился, что это бывает уместно, а ты лишь про те кейсы, где это неуместно.
Вот такое, как ты показал, уместно в основном при портировании с другого функционального языка. А вот C# имеет кучу собственных вещей, которые позволяют эффективно работать со списками в функциональном стиле.
Это эффективно в силу особенностей портирования — вместо переписывания есть вариант "скопировать и подправить механически".
I>>Кроме того:
I>> — на кой ляд изобретат велосипед в ЯП с другой парадигмой, где вообще всё построено на других принципах ?
S>Что бы было чем воспользоваться, если, вдруг, понадобились принципы, отличные от безальтернативно предлагаемых в данном ЯП.
Ага, "на всякий случай"
I>> — преждевременная пессимизация "всё и так будет работать" не менее вредна чем преждевременная оптимизация.
S>Убеди количественной оценкой вредности в среднем по больнице на сфероконических проектах.
Ага, "и так сойдёт"
I>> — сложность сопровождения вырастает — нужно постоянно продираться через такие велосипеды, соответсвенно, такое решение обычно усложняет проект, а не наоборот.
S>Такое решение может давать гарантии, которых не может дать обычное решение.
Подробнее, какие именно гарантии, если компилер C# те самые гарантии не выдаёт. До кучи, отламывается пошаговая отладка — становится неюзабельной, а так же и другие инструменты. Например, автоматический рефакторинг сильно вряд ли сможет рефакторить твои наколеночные списки.
>Как следствие, упрощает проект. Конечно, я здесь не про всевозможные велосипеды, а за те, которые обладают некими полезными свойствами как персистентность.
Для персистентной модели в общем случае нужно гораздо больше, чем иммутабельные списки. Нужна вообще вся модель приложения персистентная, а следовательно, весь код который её использует, должен быть особенным.
Кроме того, если функционалист уходит, на его место надо внезапно искать нового функционалиста, да еще такого, что бы C# знал и умел на вышем уровне, что бы продраться через эти велосипеды. Тут уже звоночек и у ПМ, и у HR, и у заказчика.
Re[30]: Мнение: объектно-ориентированное программирование —
Здравствуйте, samius, Вы писали:
I>>Я пишу про те кейсы, где это неуместно. Типа это надо объяснять ?
S>Конечно. Ты только сейчас оговорился, что это бывает уместно, а ты лишь про те кейсы, где это неуместно.
Вот такое, как ты показал, уместно в основном при портировании с другого функционального языка. А вот C# имеет кучу собственных вещей, которые позволяют эффективно работать со списками в функциональном стиле.
Это эффективно в силу особенностей портирования — вместо переписывания есть вариант "скопировать и подправить механически". При портировании важно сохранить вообще все кейсы, в т.ч. выроденные, про которые никто уже не знает.
I>>Кроме того:
I>> — на кой ляд изобретат велосипед в ЯП с другой парадигмой, где вообще всё построено на других принципах ?
S>Что бы было чем воспользоваться, если, вдруг, понадобились принципы, отличные от безальтернативно предлагаемых в данном ЯП.
Ага, "на всякий случай"
I>> — преждевременная пессимизация "всё и так будет работать" не менее вредна чем преждевременная оптимизация.
S>Убеди количественной оценкой вредности в среднем по больнице на сфероконических проектах.
Ага, "и так сойдёт"
I>> — сложность сопровождения вырастает — нужно постоянно продираться через такие велосипеды, соответсвенно, такое решение обычно усложняет проект, а не наоборот.
S>Такое решение может давать гарантии, которых не может дать обычное решение.
Подробнее, какие именно гарантии, если компилер C# те самые гарантии не выдаёт. До кучи, отламывается пошаговая отладка — становится неюзабельной, а так же и другие инструменты. Например, автоматический рефакторинг сильно вряд ли сможет рефакторить твои наколеночные списки.
>Как следствие, упрощает проект. Конечно, я здесь не про всевозможные велосипеды, а за те, которые обладают некими полезными свойствами как персистентность.
Для персистентной модели в общем случае нужно гораздо больше, чем иммутабельные списки. Нужна вообще вся модель приложения персистентная, а следовательно, весь код который её использует, должен быть особенным.
Кроме того, если функционалист уходит, на его место надо внезапно искать нового функционалиста, да еще такого, что бы C# знал и умел на вышем уровне, что бы продраться через эти велосипеды. Тут уже звоночек и у ПМ, и у HR, и у заказчика.
I>>Я пишу про те кейсы, где это неуместно. Типа это надо объяснять ?
S>Конечно. Ты только сейчас оговорился, что это бывает уместно, а ты лишь про те кейсы, где это неуместно.
Вот такое, как ты показал, уместно в основном при портировании с другого функционального языка. А вот C# имеет кучу собственных вещей, которые позволяют эффективно работать со списками в функциональном стиле.
Это эффективно в силу особенностей портирования — вместо переписывания есть вариант "скопировать и подправить механически". При портировании важно сохранить вообще все кейсы, в т.ч. выроденные, про которые никто уже не знает.
I>>Кроме того:
I>> — на кой ляд изобретат велосипед в ЯП с другой парадигмой, где вообще всё построено на других принципах ?
S>Что бы было чем воспользоваться, если, вдруг, понадобились принципы, отличные от безальтернативно предлагаемых в данном ЯП.
Ага, "на всякий случай"
I>> — преждевременная пессимизация "всё и так будет работать" не менее вредна чем преждевременная оптимизация.
S>Убеди количественной оценкой вредности в среднем по больнице на сфероконических проектах.
Ага, "и так сойдёт"
I>> — сложность сопровождения вырастает — нужно постоянно продираться через такие велосипеды, соответсвенно, такое решение обычно усложняет проект, а не наоборот.
S>Такое решение может давать гарантии, которых не может дать обычное решение.
Подробнее, какие именно гарантии, если компилер C# те самые гарантии не выдаёт. До кучи, отламывается пошаговая отладка — становится неюзабельной, а так же и другие инструменты. Например, автоматический рефакторинг сильно вряд ли сможет рефакторить твои наколеночные списки.
>Как следствие, упрощает проект. Конечно, я здесь не про всевозможные велосипеды, а за те, которые обладают некими полезными свойствами как персистентность.
Для персистентной модели в общем случае нужно гораздо больше, чем иммутабельные списки. Нужна вообще вся модель приложения персистентная, а следовательно, весь код который её использует, должен быть особенным.
Кроме того, если функционалист уходит, на его место надо внезапно искать нового функционалиста, да еще такого, что бы C# знал и умел на вышем уровне, что бы продраться через эти велосипеды. Тут уже звоночек и у ПМ, и у HR, и у заказчика.