El mayor problema que he visto es la falta de estandarización. En el mundo de RDBMS, puede llegar bastante lejos con cualquier base de datos aleatoria si conoce SQL. Básicamente todos lo implementan, con pequeñas variaciones. No conozco un solo RDBMS existente que no haga SQL: casi puede usar "RDBMS" y "SQL" indistintamente.
Lo más parecido a un OODBMS es quizás OQL, que ha sido un fracaso total.
Ninguna base de datos ha implementado gran parte de ella. Usé un OODBMS comercial bastante agradable hace un par de años, pero (a partir de 2007 o así, y estaba en la versión principal 8 o 9) ni siquiera admitía consultar un objeto por su nombre. El manual decía simplemente que esta parte de OQL aún no había llegado a su fin. (No estoy seguro, pero podría haber sido capaz de hacer una llamada nativa para hacer eso.)
La mayoría de las bases de datos de objetos que he visto recientemente tienen interfaces de idioma nativo en lugar de un lenguaje de consulta como OQL. El sistema que utilicé, por ejemplo, soportó (¡solo!) Perl y VB, IIRC. Limitar a su audiencia a solo un par de idiomas (u obligarlos a escribir wrappers, como nosotros lo hicimos) no es la manera de ganar amigos.
Debido a esto, no hay competencia, y por lo tanto no es un plan de copia de seguridad fácil. Si coloca sus datos en MS-SQL y Microsoft deja de apoyarlos, probablemente pueda volcar sus datos en Postgres y portar sus consultas, sin demasiados problemas. (Puede ser mucho trabajo, si tiene muchas consultas, pero no dudo que pueda hacerlo. Es un dolor, pero no es un reto técnico). O Oracle, o MySQL, o muchos otros, ambos comerciales. y gratis.
No existe tal cosa con un OODBMS: si el que está utilizando se arruga, o lo toman en una dirección que no le es útil, o si le falta una característica clave que necesita, puede Simplemente descargue sus datos en un OODBMS competidor y transmita sus consultas. En cambio, estás hablando de cambiar una biblioteca principal y realizar cambios masivos en la arquitectura. Tan realista, estás limitado a un OODBMS comercial en quien realmente confías (¿puedes nombrar incluso uno?), O un OODBMS de código abierto en el que confías que tu equipo lo mantendrá cuando las cosas van mal.
Si esto suena a FUD, lo siento, no era mi intención. Pero he estado allí, y desde una perspectiva de administración de proyectos, dudaría en volver, a pesar de que el entorno de programación puede ser maravilloso. Otra forma de pensarlo es: mire cuán popular es la programación funcional en la actualidad, a pesar de la buena idea que es. Los OODBMS son así, pero lo que es peor, ya que no es solo su código, sino también su código y sus datos. Con mucho gusto comenzaría un gran proyecto en Erlang hoy, pero todavía dudaría en usar un OODBMS.
Proveedores OODBMS: para cambiar esto, necesita make it easy to leave you for your competitors. Podrías desenterrar OQL e implementarlo, o hacerlo en el nivel API como ODBC, o lo que sea. Incluso un formato de volcado estándar (usando JSON?) Y herramientas para importar/exportar a/desde eso para varios OODBMSs, sería un gran comienzo.
"Si no está roto no lo cambies" es tan estúpido ... ¿por qué hacer algo mejor o desarrollar software más rápido es algo malo? Mi última computadora no se rompió cuando la cambié, ¡estaba LENTO!Es mi objetivo como desarrollador buscar soluciones mejores y más eficientes. – billy