Telegramy
Articles
About
« Rev
@haskellru
28
Fwd »
SimpleX
На том же хаскелле все куда сложнее
ㅤ
Напротив, в ООП с SOLID никаких проблем нет
открой любой крупный ява проект например, и разверни конечный класс взад, там под десяток другой родителей
ㅤ
и попробуй легко поменять, муаххаа
ㅤ
На том же хаскелле все куда сложнее
если писать в стиле ооп то конечно да
SimpleX
Унаследовал, поменял
ㅤ
В питоне чисто функционально пишешь?
стараюсь по мере его возможностей и они слабые
Андрей
стараюсь по мере его возможностей и они слабые
Чего там не хватает?
ㅤ
Унаследовал, поменял
поменял ту часть что пришла от родителя?
SimpleX
поменял ту часть что пришла от родителя?
Да.
Vladimir
он сейчас скажет что овверайдинг - костыль
SimpleX
Конечно
Vladimir
три.два.один
ㅤ
Да.
и классы которые ожидают от детей тоже поведение что у родителя встали раком
ㅤ
он сейчас скажет что овверайдинг - костыль
а разве нет?
ㅤ
целостность потерялась
SimpleX
Если вам нужно поменять поведение интерфейса, вы что-то делаете не так
Vladimir
Если вам нужно поменять поведение интерфейса, вы что-то делаете не так
какие ещё интерфейсы
Vladislav
и классы которые ожидают от детей тоже поведение что у родителя встали раком
ну так бездумно везде применять наследование это как весь код в IO заворачивать в Хаскелле
Vladimir
это же придётся плодить абстракции
Vladimir
ты что
ㅤ
Если вам нужно поменять поведение интерфейса, вы что-то делаете не так
конечно, в ооп если ты хочешь делать чтото свободно, ты не прав, делай в согласии с архитектурой проекта
ㅤ
это же придётся плодить абстракции
вот именно и это тоже
SimpleX
Соглашение интерфейса важнее ваших костылей
ㅤ
ну так бездумно везде применять наследование это как весь код в IO заворачивать в Хаскелле
почти все в ооп это костыли обхода зависимостей
Андрей
конечно, в ооп если ты хочешь делать чтото свободно, ты не прав, делай в согласии с архитектурой проекта
Т.е. функциональщина - полная анархия? Или всё таки какого-то стиля придерживаться надо?
Vladislav
конечно, в ооп если ты хочешь делать чтото свободно, ты не прав, делай в согласии с архитектурой проекта
а в хаскелле ты свободно можешь поменять определение типа?
SimpleX
В фп вы точно так же не можете менять логику функций
ㅤ
Соглашение интерфейса важнее ваших костылей
интерфейсы еще больше путаницы вносят
SimpleX
Это бред
ㅤ
В фп вы точно так же не можете менять логику функций
можешь, меняй
Vladimir
какую путанницу вносят интерфейсы?
ㅤ
а в хаскелле ты свободно можешь поменять определение типа?
тип это не класс
Vladislav
можешь, меняй
и всех caller'ов тоже
Vladimir
можешь, меняй
тоже самое могу сказать про любой ооп яп
Vladislav
тип это не класс
и?
SimpleX
интерфейсы еще больше путаницы вносят
Охлол, в тайпклассы - не интерфейс?
ㅤ
и?
иметь много типов норма иметь много классов не норма
Андрей
иметь много типов норма иметь много классов не норма
Почему?
Vladislav
иметь много типов норма иметь много классов не норма
иметь много типов не норма иметь много классов норма
Quet
не, все же круто товарищ вас троллит )
Андрей
Почему иметь много классов - не норма?
Quet
Vladimir
мне интересно, он рофлит или серьёзно?
ㅤ
Почему?
потомучто типы не связываются потом в дерево, а классы связываются
Vladimir
не, все же круто товарищ вас троллит )
тоже вот начал задумываться этим
Андрей
потомучто типы не связываются потом в дерево, а классы связываются
Не связывай классы, кто мешает?
Vladislav
Alex, твои аргументы невалидны, потому что в них всегда можно поменять ооп и фп местами и смысл не поменяется
ㅤ
Не связывай классы, кто мешает?
тогда что остается от классов?
Quet
тоже вот начал задумываться этим
ну я просто не верю что вменямый человек может так яростно топить за фп и еще такими аргументами мощными
Vladimir
я думаю такие существуют
ㅤ
Alex, твои аргументы невалидны, потому что в них всегда можно поменять ооп и фп местами и смысл не поменяется
нет :) посмотри проект, дерево ооп на хаскеле
ㅤ
вот наглядный пример
ㅤ
отличия фп от ооп и почему нельзя на фп писать в стиле ооп
Андрей
тогда что остается от классов?
То что и было. Тебя никто не заставляет связывать все классы.
ㅤ
То что и было. Тебя никто не заставляет связывать все классы.
не связанные классы это не ооп
Vladimir
отличия фп от ооп и почему нельзя на фп писать в стиле ооп
потому что это разные парадигмы - думаю по этой причине
Vladislav
нет :) посмотри проект, дерево ооп на хаскеле
а есть какие-то объективные метрики, показывающие превосходство фп над ооп, а не голословные утверждения?
ㅤ
потому что это разные парадигмы - думаю по этой причине
верно
Quet
а есть какие-то объективные метрики, показывающие превосходство фп над ооп, а не голословные утверждения?
ну че ты начинаешь, нормально же общались =р
Андрей
не связанные классы это не ооп
Почему? Мы не создаём объекты?
ㅤ
а есть какие-то объективные метрики, показывающие превосходство фп над ооп, а не голословные утверждения?
сам принцип, описание действий а не дерево-действий-данных
ㅤ
фп это теги ооп это дерево
ㅤ
каково отличие?
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)
или наследование
« Rev
@haskellru
28
Fwd »