Hola compañeros:
Quizá no sea el único que se ha hecho esta pregunta alguna vez. Hasta ahora jamás había recurrido a ORMs y los veía innecesarios siempre que se tuviese cierto conocimiento de SQL y del modelo de BD que se empleaba (no me importa perder tiempo en las consultas si al menos sé con un 100% de seguridad lo que hago y sus efectos).
En mi corta vida como programador sólo una vez he recurrido a un modelo así y fue uno que desarrollamos en nuestro equipo, un poco básico en comparación con esos "mastodontes" que se ven por ahí. Evidentemente nos sirvió para ciertas tareas más o menos básicas, ya que en aquellas en las que intervenían muchas tablas interrelacionadas aquello se iba de madre y había que tirar de SQL "crudo".
El caso es que andaba planteándome la posibilidad, ya que son tantas las voces que lo aconsejan, de comenzar a usar ORMs (aunque continuaría haciendo el diseño directamente en la BD y luego lo exportaría).
Supongo que evidentemente el ahorro de tiempo ha de ser significativo, ya que de hecho es su mayor valuarte según tengo entendido. Sin embargo mis dudas vienen a la hora de la velocidad/rendimiento y la fiabilidad.
En cuanto a lo primero, ¿Supera en algún caso a una consulta pura y dura? ¿No debería ser su rendimiento igual o incluso inferior por aquello de realizar más operaciones/construcciones internas?
En cuanto a lo segundo, sin haber probado productos punteros como Hibernate pero sí otros más "simples" en otros lenguajes, he encontrado varios problemas al generar objetos a partir de una BD: relaciones mal reconstruidas, tipos incoherentes... ¿Se supone que un ORM tiene más "poderío" cuando se diseña la BD primero en él y luego se reconstruye nativamente? ¿Es imposible mapear una BD compleja ya creada con 100% de fiabilidad a un ORM?
Muchas gracias por vuestras opiniones.