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?

  • starlord@lemm.ee
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    5
    ·
    9 months ago

    But typically backend devs aren’t database engineers and they have no idea how to compose a good sql query, let alone how to optimize it or test its execution plan.

    Should the BE Dev be touching the data if they don’t, you know, know how to work with the data? No: SQL Developers or Data Engineers should create data they can access and use. The design of the database is entirely separate from the design of the application. They do not need to be related, and usually should not.

    I’ve seen way way more absolute clusterfuck garbage queries that take way too long to run that were hacked together by BE devs.

    Again, should the BE Devs be touching the data, then? No. If they don’t know what they’re doing (which is writing queries to handle data), then they shouldn’t be messing with the data. The Data team should be messing with the data, and serving it to the BE Devs.

    Views are fucking awful imo. It’s yet another entire layer of abstraction that deeply obfuscates what is actually running and/or happening.

    You must not be a SQL Developer or Data Engineer.

    Stored Procedures only should be reached for under one circumstance imo, and that’s when you need to use recursion on your DB.

    You’re definitely not a SQL Developer or Data Engineer.

    IE if you have perhaps a parent/child self FKd table to create a hierarchy tree with unknown depth… You’d want to traverse it recursively which likely would want a stored proc.

    I had to read this several times to make sure I understood, because I would absolutely and immediately fire any Data Engineer working for me who developed something like this, and I would shun and or quit the company or project team that insisted on developing an application or process that required it, especially if they did so without consulting their Data team.

    I want all my codebase in one place, and in one language, under one language, through a single LSP.

    This is completely unrealistic. It speaks to a lack of industry experience and is down-right selfish. No hiring manager will ever take you seriously if you say you only use one language. You need to know several to get by. And that’s because each one has a different purpose. HTML renders web content, CSS makes it pretty, JavaScript makes it think, PHP makes it explode, Go makes it go, JSON helps it share data, SQL manipulates the data, Shell/Bash updates systems, etc. Some of these are markup languages, some are stylers, some compute and run functions, some explain data, some manipulate data, some give system instructions. They all have a different purpose, are used in a different layer of the stack, and require a different expert (with the exception of some Full-Stack Wizards) to implement.

    Saying you want one language is the most bonkers thing I’ve read on the internet this month. Don’t travel the world; you’re gonna have a bad time.