At my company we use C#/EF with 50 developers and a gigantic codebase and database.
A statically typed binding to the database with 'find all references' etc.. The ability to write a few lines of simple understandable code that turns into a much more verbose SQL query aids in readability, maintainability, and understand ability of the code base.
I have used other ORMs and feel that EF/LINQ is way simpler in that the same query syntax is used for in-memory and database operations. They can be mixed and matched for doing really intensive data processing with relatively few lines of very easy to read code.
My only comment would be that using an ORM - you do need to understand how it works, and how the code you write turns into SQL and a lot of the details of contexts and tracking.
It's like flying a plane - big, complicated, it will get you where you need to go very fast and effectively, but if you don't know what you're doing you'll crash right into a mountainside.
IMO, SQL is a domain specific language that is far from verbose. If you need to understand or predict the SQL and let that influence your ORM code, then just use SQL.
If you're using a dynamic language, an ORM doesn't provide much. But in C# LINQ has the benefit of being strongly typed, this means your DB schema can be evolved. If you write raw SQL (or Python) and you rename a table/entity or column/property you gonna have a bad time. In C# you can just use a refactoring or, worst case, compile time errors.
You can write very simple ORM code that results in very complex and verbose SQL. Especially when you want to return structured data that includes internal aggregations. If an ORM is not used, you often see a lot of data manipulation after the query is performed.
A statically typed binding to the database with 'find all references' etc.. The ability to write a few lines of simple understandable code that turns into a much more verbose SQL query aids in readability, maintainability, and understand ability of the code base.
I have used other ORMs and feel that EF/LINQ is way simpler in that the same query syntax is used for in-memory and database operations. They can be mixed and matched for doing really intensive data processing with relatively few lines of very easy to read code.
My only comment would be that using an ORM - you do need to understand how it works, and how the code you write turns into SQL and a lot of the details of contexts and tracking.
It's like flying a plane - big, complicated, it will get you where you need to go very fast and effectively, but if you don't know what you're doing you'll crash right into a mountainside.