La fortaleza de un ORM es que le permite modelar el comportamiento de la aplicación utilizando técnicas orientadas a objetos. En un mundo cuidadosamente diseñado, tiene una capa de la aplicación donde el idioma de la empresa se combina perfectamente con el idioma del equipo de desarrollo. El ORM es un habilitador de eso, si el ORM se usa con sensatez.
La debilidad es que la cantidad de personas que realmente obtienen una programación orientada a objetos es bastante pequeña. Mucha gente escribe espaguetis y albóndigas, con objetos altamente acoplados que tienen poco comportamiento propio y el comportamiento real termina en clases horribles de "Servicio" y "Gerente" de 8000 líneas, y ese código a menudo es tan complicado que todos tienen miedo de cambiarlo porque no pueden descubrir cuáles serán los efectos secundarios.
Además, mucha gente realmente no entiende el modelo relacional. Un ORM no los ayudará a obtenerlo, y no los ayudará abstrayendo el modelo relacional. Simplemente le permite concentrarse en su capa de dominio desde el principio y hacerlo bien antes de comenzar a preocuparse demasiado por el diseño de la base de datos. Si se aplica bien, con la ayuda de herramientas de migración de esquemas sensatas, y ORM puede ayudarlo a evitar que se acumule la deuda del código.
He creado aplicaciones en las que un ORM mantuvo el código de la aplicación simple, legible y comprobable, y tuvo un rendimiento razonable. También mantuve aplicaciones donde el patrón fue mal utilizado y el código fue complicado, no comprobable, lento y frágil; Resulta que el ORM en sí tenía poco que ver con esto, excepto que en lugar de escribir un código incorrecto que modelaba mal el dominio de la aplicación, el equipo de ingeniería heredado escribió un código incorrecto que modelaba mal el dominio de la aplicación Y un código de capa de servicio incorrecto que descuidaba todo El valor que su ORM podría proporcionarles.
Los ORM no lo harán más inteligente, pero en manos del desarrollador adecuado, puede conducir a un código más mantenible y de mayor calidad.