Skip to content
DevMeme
5966 of 7590
FunctionalProgramming Post #6535 · source on Telegram

FP kingdom praises monoids while scorning OOP builders in castle standoff meme

Description

Cartoon split into two castle-lined hills facing each other across a river. Left heading: "OUR BLESSED FP"; right heading: "THEIR BARBAROUS OOP". On the functional-programming hill, banners point to stone towers labeled "OUR GLORIOUS SEMIGROUP", "OUR GREAT MONOID", "OUR NOBLE MONAD", and "OUR HEROIC FUNCTOR". On the object-oriented side, mirrored banners point to towers labeled "THEIR PRIMITIVE FACTORY", "THEIR BACKWARD BUILDER", "THEIR BRUTISH ADAPTER", and "THEIR WICKED STRATEGY". Two small boats with purple and orange sails sit between the shores. The humor contrasts algebraic FP abstractions with classic OOP design patterns, parodying paradigm tribalism familiar to veteran developers

Comments

51
Anonymous ★ Top Pick After two decades of paradigm crusades, it turns out the moat between the FP and OOP castles is just a shared mutable Map - everyone’s been ferrying side effects across it in little boats named “abstraction.”
  1. Anonymous ★ Top Pick

    After two decades of paradigm crusades, it turns out the moat between the FP and OOP castles is just a shared mutable Map - everyone’s been ferrying side effects across it in little boats named “abstraction.”

  2. Anonymous

    After 20 years in the industry, you realize both camps are just trying to manage state and side effects while pretending their abstraction layer doesn't leak - the only difference is whether you call it a 'monad transformer stack' or a 'dependency injection container'

  3. Anonymous

    This perfectly captures the irony of FP evangelists who've spent years wrapping their heads around monads and functors, only to realize they've essentially reinvented the same design patterns OOP developers have been using all along - just with more intimidating mathematical names and a superiority complex. Both sides are building castles on the same conceptual foundation, but one insists on calling their bricks 'algebraic data structures' while mocking the other's 'primitive factories.' The real joke? Most production codebases are pragmatic hybrids that would make both camps equally uncomfortable

  4. Anonymous

    Most GoF patterns vanish once you have higher-order functions; what remains is a monoid, renamed 'builder' to pass enterprise architecture review

  5. Anonymous

    After 20 years, the FP - OOP border is mostly naming: their Builder smells like a Monoid, their Adapter like a Functor, their Strategy like a Monad - the ferry between castles is just called compose

  6. Anonymous

    FP functors fmap to victory; OOP builders construct yesterday's architecture one primitive at a time

  7. @moosschan 1y

    I miss the times, when programming was fun (it never was)

    1. @RiedleroD 1y

      talk for yourself, I'm having fun

      1. @azizhakberdiev 1y

        define fun

        1. @RiedleroD 1y

          No

          1. @azizhakberdiev 1y

            exactly

            1. @RiedleroD 1y

              No

            2. @RiedleroD 1y

              ok, now that I can actually reply instead of just pressing "reply no" on my watch, here's my actual point: no

              1. @RiedleroD 1y

                jokes aside, I just like programming. there's nothing more to it

                1. @azizhakberdiev 1y

                  like just coding and seeing it works or all that fuckshit with optimization, debugging and SDLC?

                  1. @RiedleroD 1y

                    depends on mood

                    1. @RiedleroD 1y

                      sometimes I really want to optimize a small piece of code into oblivion, sometimes I want to make a script that automates some work for me, sometimes I want to fix a bug in someone else's software …

                  2. @niko2048 1y

                    it's cool to just make stuff. Jobs suck because you dont care about what you're making often

              2. _ 1y

                Did you try the MesageEase keyboard to write messages from your watch ?

                1. @RiedleroD 1y

                  idk what that is, and I don't have one of those crappy apple watches or wearOS watches

                  1. @RiedleroD 1y

                    I have a pebble. no touchscreen. just four buttons. and I'd never change it for anything with a touchscreen

        2. @zexUlt 1y

          #define fun

          1. @SamsonovAnton 1y

            fun meme(dev: Int = 0): Int = dev / 0

    2. @pyrothefuck 1y

      it was fun until it turned into a job

    3. アレックス 1y

      Remember when we had opinions about languages?

      1. @RiedleroD 1y

        yeah I think austro-bavarian is just better than standard german … wdym … wdym that's not what you meant?

        1. アレックス 1y

          So true

  8. @nicovillanueva 1y

    A colleague once said, "I hate working as a concept". Principal eng, likes solving problems and stuff, but hates the whole risk management aspect of it, liaising with teams, bringing up legacy stuff, etc And, like, yeah, agree. I miss coding for fun. My work coding leaves no time for my fun coding.

  9. @EmberFox 1y

    Y'all are writing code? I'm just describing what changes I want to an AI and verifying it did what I said

    1. @RiedleroD 1y

      bad dev :bonk:

      1. @EmberFox 1y

        Mmm, I agree, but it's what makes sense for the business

        1. @RiedleroD 1y

          technical debt disagrees

          1. @EmberFox 1y

            Code doesn't need to be readable by humans if the AI can understand it /s

            1. @RiedleroD 1y

              not that, I meant accumulating legacy cruft and bugs

              1. @EmberFox 1y

                That's where the code review is key

                1. @RiedleroD 1y

                  you mean the code review that people like doing with chatGPT? or the one where they just gloss over it quickly without really giving it much thought?

                  1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

                    Copy, Paste, 1597668 rows affected, Move into a different country

                  2. @RiedleroD 1y

                    tbh code review is the one thing where AI can actually help. asking it "are there bugs or performance concerns in this code" could 100% be helpful

                  3. @EmberFox 1y

                    No, I mean manually reviewing the code and deciding if it's human readable (eg, not a ton of logic stuffed in one line)

                2. @EmberFox 1y

                  The state of code writing AI (Cursor) at the moment, seems to be basically a very fast junior dev. You tell it what it needs to do and it will do that, but sometimes makes wrong assumptions about how to structure the code or function definitions or whatever

    2. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

      It barely can help in non general questions

      1. @EmberFox 1y

        I'm using Cursor and it's frighteningly good at reading and understanding existing code

  10. @EmberFox 1y

    Last week I needed to add a column of data to a reporting tool in The Legacy Code, and it was able to understand that spaghetti and make the changes after one prompt

    1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

      Ask it to make use of the codeGeneration capability in UWP. It will use wrong function signatures

      1. @ZgGPuo8dZef58K6hxxGVj3Z2 1y

        Microsoft doesn’t have samples of that (yet? ever?) and it cant come up with anything thinkable of its own. And it 1:1 copies sample code from a whole other SDK which have mismatching signatures

  11. @EmberFox 1y

    It even inferred that it needed to update the SQL query to get the data

  12. @EmberFox 1y

    shitty future fr

  13. @EmberFox 1y

    My boss was playing with some system that has different AI models working together to translate, write, and test code like a virtualized team, but I'm not a fan

  14. @EmberFox 1y

    My use case is not having to spend an hour+ reading the spaghetti code other people wrote 7 years ago just to make a simple change

  15. @maggi_increment 1y

    Which FP language Is good to learn?

    1. @RiedleroD 1y

      farming /j

Use J and K for navigation