This is a pragmatic piece of Fowler on the rather dry topic of Object-relational mappings - in short, the attempt to marry an object-oriented code base with a relational data base.

Usually you’d get enough early success to commit deeply to the framework and only after a while did you realize you were in a quagmire - this is where I sympathize greatly with Ted Neward’s famous quote that object-relational mapping is the Vietnam of Computer Science

What Fowler refers to here, is Ted Neward’s article “The Vietnam Of Computer Science”

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    1 day ago

    ORMs are a pain and so is hand rolling SQL queries and doing the mapping manually.

    I definitely think there’s scope for NoSQL databases where the database “shape” matches the normal struct style of programming languages. Kind of like how JSON does and XML doesn’t.

    But it seems like all we got was MongoDB and Firebase which are both shit.

    Are there any good NoSQL databases? MongoDB and Firebase don’t even have schemas.

    • Maestro@fedia.io
      link
      fedilink
      arrow-up
      5
      ·
      1 day ago

      The real problem is that most data is inherently relational, and trying to force it into a document database is just as problematic as ORMs are.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        3 hours ago

        I don’t see why you couldn’t have relations in a object model database. Just allow fields that are references to other objects or their keys.

    • Mirror Giraffe@piefed.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      20 hours ago

      Mongoose solves the schema part, or typegoose is you want it to generate types on the go as well.

      My problem with mongo is that I always end up realising the advantages of SQL down the line, but I guess many of those projects wouldn’t have gotten that far without mongo being so damn nice in the beginning.