• Rimu@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 month ago

    Because outsourcing your core business processes is a bad idea. A fediverse app that relies on a library to do all the fediverse stuff is going to have a bad time. Not straight away, but eventually.

    • tofu@lemmy.nocturnal.garden
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      I’m not sure about that. Sometimes it’s more about properly applying libraries. Thinking of database handling or cryptography

      • Rimu@piefed.social
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        Imagine you want to write a competitor to PostgreSQL and you start out by importing SQLite into your project and building on top of that. To you it seems like a good idea because you’ve never written a DB app before and the only DB you’ve ever seen before is SQLite. You’ll get a prototype real fast but you’ll never build a PostgreSQL equivalent because you never learned the foundational knowledge of how a DB works and because SQLite forecloses all the pathways you need to get there.

        Same thing.

        • Jesus_666@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 month ago

          Of course you wouldn’t use an existing database engine as the foundation of a new database engine. But you would use an existing database engine as the foundation of an ERP software, which is a vastly different use case even if the software does spend a lot of time dealing with data.

          If I want to build an application I don’t want to reimplement everything. That’s what middleware is for. The use case of my application is most likely not to speak a certain protocol; the protocol is just the means to what I actually want to do. There’s no reason for me to roll my own implementation from scratch and keep up with current developments except if I’m unhappy with all current implementations of that protocol.

          Of course one can overdo it with middleware (the JS world is rife with this) but implementing a communication protocol is one of the classic cases where it makes sense.