SimpleX
На том же хаскелле все куда сложнее
Напротив, в ООП с SOLID никаких проблем нет
открой любой крупный ява проект например, и разверни конечный класс взад, там под десяток другой родителей
и попробуй легко поменять, муаххаа
На том же хаскелле все куда сложнее
если писать в стиле ооп то конечно да
SimpleX
Унаследовал, поменял
В питоне чисто функционально пишешь?
стараюсь по мере его возможностей и они слабые
Унаследовал, поменял
поменял ту часть что пришла от родителя?
Vladimir
он сейчас скажет что овверайдинг - костыль
SimpleX
Конечно
Vladimir
три.два.один
Да.
и классы которые ожидают от детей тоже поведение что у родителя встали раком
целостность потерялась
SimpleX
Если вам нужно поменять поведение интерфейса, вы что-то делаете не так
Vladislav
и классы которые ожидают от детей тоже поведение что у родителя встали раком
ну так бездумно везде применять наследование это как весь код в IO заворачивать в Хаскелле
Vladimir
это же придётся плодить абстракции
Vladimir
ты что
Если вам нужно поменять поведение интерфейса, вы что-то делаете не так
конечно, в ооп если ты хочешь делать чтото свободно, ты не прав, делай в согласии с архитектурой проекта
SimpleX
Соглашение интерфейса важнее ваших костылей
Андрей
конечно, в ооп если ты хочешь делать чтото свободно, ты не прав, делай в согласии с архитектурой проекта
Т.е. функциональщина - полная анархия? Или всё таки какого-то стиля придерживаться надо?
SimpleX
В фп вы точно так же не можете менять логику функций
Соглашение интерфейса важнее ваших костылей
интерфейсы еще больше путаницы вносят
SimpleX
Это бред
Vladimir
какую путанницу вносят интерфейсы?
Vladislav
можешь, меняй
и всех caller'ов тоже
Vladimir
можешь, меняй
тоже самое могу сказать про любой ооп яп
SimpleX
интерфейсы еще больше путаницы вносят
Охлол, в тайпклассы - не интерфейс?
и?
иметь много типов норма иметь много классов не норма
Vladislav
иметь много типов норма иметь много классов не норма
иметь много типов не норма иметь много классов норма
Quet
не, все же круто товарищ вас троллит )
Андрей
Почему иметь много классов - не норма?
Quet
Vladimir
мне интересно, он рофлит или серьёзно?
Почему?
потомучто типы не связываются потом в дерево, а классы связываются
Vladimir
не, все же круто товарищ вас троллит )
тоже вот начал задумываться этим
Vladislav
Alex, твои аргументы невалидны, потому что в них всегда можно поменять ооп и фп местами и смысл не поменяется
Не связывай классы, кто мешает?
тогда что остается от классов?
Quet
тоже вот начал задумываться этим
ну я просто не верю что вменямый человек может так яростно топить за фп и еще такими аргументами мощными
Vladimir
я думаю такие существуют
вот наглядный пример
отличия фп от ооп и почему нельзя на фп писать в стиле ооп
Андрей
тогда что остается от классов?
То что и было. Тебя никто не заставляет связывать все классы.
Vladimir
отличия фп от ооп и почему нельзя на фп писать в стиле ооп
потому что это разные парадигмы - думаю по этой причине
Vladislav
нет :) посмотри проект, дерево ооп на хаскеле
а есть какие-то объективные метрики, показывающие превосходство фп над ооп, а не голословные утверждения?
Андрей
не связанные классы это не ооп
Почему? Мы не создаём объекты?
фп это теги ооп это дерево
каково отличие?
Vladislav
Андрей
фп это теги ооп это дерево
Понятно, ты считаешь, что ООП - это только дерево. Соглашусь, не всегда вот такое понимание подходит под задачу.
Vladislav
фп это теги ооп это дерево
фп - тоже дерево, просто вызовов, а не объектов
у тебя там чистые действия без данных?
есть но свободно связаные
фп - тоже дерево, просто вызовов, а не объектов
дерево в котором ты легко перекомбинируешь все
в ооп это куча работы
Vladislav
есть но свободно связаные
"свободно связаные" - пойду, повешу в рамку
Vladislav
Vladislav
в ооп это куча работы
тоже голословно
возьми пример, класс автомобиль подкласс водитель подкласс маршрут а теперь отрефактори зеркально в фп это очень просто в ооп это ад
Quet
водитель подкласс автомобиля?
Андрей
А, понял. ФП - это сделай через задницу, верно?
Quet
водитель подкласс автомобиля?
car = new Car() car->addDriver(new Driver)
Vladislav
верно ли что на haskell можно быстрее и безбажнее чем на C++/java писать небольшие, хорошо формализованные задачи?
car = new Car() car->addDriver(new Driver)
или наследование