Is there a programming language specifically designed for interacting with SQL databases that avoids the need for Object-Relational Mappers (ORMs) to solve impedance mismatch from the start?

If such a language exists, would it be a viable alternative to PHP or Go for a web backend project?

  • echindod@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    3 months ago

    Everyone else has more experience than I, and I am not sure these are exactly the kinds of answers you are looking for…but the two things I have thought is using something like PL/SQL and stored procedures, so much of your backend logic is removed from the server and set into the database itself. Not exactly what you are looking for I think, and it has problems of its own.

    Second, Prolog is a great query language (from what I am told) and capable of running a server. TerminusDB runs their server in prolog, and also postgres has a prolog implementation. It would be interesting to play with these things, but they may not exactly be what you are looking for.

    • veer66@lemmy.oneOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      Stored procedure and Datalog are not what I’m looking for. However, I should consider them seriously, since they may be more practical.

      • echindod@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        3 months ago

        I am not as familiar with RDBMs internals, but you could also build your server in the database. Right now, I am building a server client of sorts with Oxigraph. I have a store object that I am manipulating directly with rust code. It is an option. However its not going to be very flexible, and it does complicate the sanitization issues.

        Also, prolog is a complete language, very capable of running the server. I don’t know what kind of architecture you are thinking of and having the distinction between datalog on the database and prolog in the server might be problematic. Also, I may be projecting a little. I wish I could be using prolog. But alas.

        • veer66@lemmy.oneOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 months ago

          I don’t know what kind of architecture you are thinking of and having the distinction between datalog on the database and prolog in the server might be problematic.

          I thought about Datomic and Clojure.