169 похожих чатов

Кругозор это, конечно, очень хорошо. Но только вот все равно

не даёт покоя вопрос - зачем оно вообще нам нужно? С ООП все понятно, оно даёт абстракции, более менее приближенные к реальному миру, от чего в голове это все проще представлять и структурировать. А в ФП фигурируют сложные мат термины, которые далеко не каждый сможет осознать

28 ответов

26 просмотров

Не соглашусь

Romcheg- Автор вопроса

Что правда, то правда. Но ООП все равно куда выигрышнее выглядит, чем древнее процедурное программирование. А вот ФП в сравнении с ООП не так очевидно выигрывает, и выигрывает ли вообще

kei
Не соглашусь

Думаю, что проблема ООП в строении абстракций очень высоко -- ближе к реальной жизни. Это приводит к коду которую сложно композировать и часто нужно вещи заново писать. А ФП строит концепты ниже -- ближе к маленьким, но часто встречаемым проблемам. Например: Отсутсвуещие значения (Maybe), значения которых можно комбинировать (Semigroup & Monoid), складывать в одно (Foldable), функции корых можно использовать везде одинаково без страха (Pure functions), части котда которых можно рефакторить без страха (Referential Transparency) и тд тп

Где вы видели в последний раз в реальном мире фабрику фабрик?

Сложные термины возникают не каждый день и далеко не у всех(как я понял, только у тех, кто хочет, чтобы они фигурировали) Кругозор даже сам по себе - это классно и полезно, потому что: 1) тебе каждый день приходится принимать какие-то решения. Лучше прокачан кругозор - лучше решения будут получаться в среднем по больнице 2) скорее всего, ты и так используешь ФПшные приблуды. Ну или они могли бы упростить тебе жизнь в некоторых моментах(ставь класс, если хотя бы раз в жизни ставить куда-нибудь @NotNull или хотел какой-нибудь асинхронщиной по управлять и тд). Зацепил лучше фп кругозором - больше/легче проблем решаешь, где надо с фп пересечься К тому же, ты в скалачатике. Тебя тут не заставят отрекаться от опп (скорее всего)

Антон 🇦🇲
Где вы видели в последний раз в реальном мире фабр...

https://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory

Romcheg- Автор вопроса
Антон 🇦🇲
Где вы видели в последний раз в реальном мире фабр...

Паттерны - уже более высокий уровень использования. Если смотреть в корень, в основу, то ООП вполне себе обращается к понятиям из реальной жизни

Rajven
screenshot https://ws.apache.org/xmlrpc/apidocs/org/apache/xm...

В реальной жизни, а не в программистких фантазиях

Использовал apache xml-rpc на реальном банковском проекте буквально в прошлом году. Или по-вашему легаси не существует?

Rajven
Использовал apache xml-rpc на реальном банковском ...

По моему, фабрик фабрик не существует в реальном мире, так что и кивать на моделирование реального мира как преимущество ООП несколько... Неразумно

Антон 🇦🇲
По моему, фабрик фабрик не существует в реальном м...

А, в реальной жизни как в реальной жизни, а не как на практике. Тогда мои извенения.

Антон 🇦🇲
По моему, фабрик фабрик не существует в реальном м...

3D принтер, способный напечатать сам себя? Пока не существует, но к этому стремятся...

Romcheg
Паттерны - уже более высокий уровень использования...

ФП подходы тоже понятия из реальной жизни, просто под другим углом ООП со своим наследованием заставляет думать о том, что можно делать с классом, в момент его описания. Это примерно то же самое, как если бы у родителей спросили, в какой вуз пойдёт учиться их новорожденный и какая будет у него любимая еда. А в ФП есть моделька, к которой в разных контекстах можно применять разные действия, что логично, потому что в реальной жизни набор доступных нам действий зависит от того, где мы находимся

Изначально у нас есть процедурное программиование. Программа выражена вызовом процедур, управляющих данными. Мы в голове должны держать смысл всего вызываемого кода из данной процедуры, и все данные, оперируемые ей. Это вызывает высокие конгетивные нагрузки и мешает делать абстракции. Придумали два решения: абстрагироваться от данных и от вычислений. В ооп мы не знаем, какими данными оперируем, но точно знаем, что просим объект сделать. В ФП всё наоборот: мы не знаем, что и как делается и не хотим, но знаем данные. И то, и то имеет много смысла

То что вы про ООП говорите это миф. В фп сложных мат терминов нет если вы не берете хаскель и теоркат. А это далеко не главное в фп и вообще не совсем суть фп

Google Tan
Изначально у нас есть процедурное программиование....

у вас изначально процедурное, а у кого-то изначально функциональное

Google Tan
Изначально у нас есть процедурное программиование....

Вот есть у меня вот такой тезис, уже не раз описаный.

Google Tan
Вот есть у меня вот такой тезис, уже не раз описан...

Если нам надо держать реализацию того, что мы вызываем в данной единице кода, то он сложен и стремится к повышению сложности. Уверена, что вы видели это и не раз

Google Tan
Если нам надо держать реализацию того, что мы вызы...

допустим, но не понятнро как это вытекает из "Если у нас код не является чисто функциональным и мы не следуем моим идеям ооп, то он скатывается в процедурный рано или поздно, как минимум в своих частях"

Artem Sokolov
допустим, но не понятнро как это вытекает из "Если...

Процедурный код - это код, в котором программа описана данными и операциями над ними. Если мы должны держать в голове вызываемые куски кода, то у нас состояние не инкапсулировано. То есть у нас данные и операции над ними. То есть процедурный код

Artem Sokolov
как будто промт чат гпт прочитал

Да, я не редко пишу слишком топорно и математично, знаю

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта