miércoles, 21 de noviembre de 2012

MongoDB bajo contexto


Un par de semanas atrás asistí como es de costumbre cuando se da la oportunidad, a una de las charlas del Grupo de Usuarios de Java de Costa Rica (CRJUG). En esta ocasión organizado por los amigos de BodyBuilding.com. En esta ocasión nos dieron una charla introductiva al mundo de MongoDB, un motor no-sql de base de datos que usan en su sitio web. Disfruté mucho el estilo relajado de las presentaciones. Algo así como “Por programadores para programadores”. Nos mostraron las principales diferencias entre este nuevo paradigma en comparación con el tradicional paradigma relacional. Creo que desde un principio fueron bastante transparentes afirmando que no habían venido en una “misión evangelística” de la tecnología. Ellos saben al igual que muchos que el uso de este nuevo paradigma es para determinados propósitos. No es para substituir las bases de datos relacionales con sus características típicas: seguridad, transaccionabilidad, integridad referencial, etc. Como en muchos otros ámbitos en ciencias de la computación donde siempre existe una tensión constante en tratar de balancear todos los elementos claves de un sistema: seguridad, robusticidad, velocidad, confiabilidad, etc,  las bases de datos no escapan de esta batalla y por tanto han comenzado a aparecer nuevos métodos para inclinar la balanza sobre un grupo de características deseables en ciertos contextos, como lo es la escalabilidad.

Estoy enfatizando este punto por algo interesante que observé durante la presentación. Debido al sistema informal de la presentación, siempre hubo apertura para hacer preguntas y comentarios en todo momento y entoces algunos participantes en varias ocasiones insistieron en comparar esta solución con la típica solución de base de datos relacional. Esto en principio está bien para señalar el por qué de las diferencias, pero no obstante lo que encontré interesante fue lo que percibí la manera en que se hacían los aportes. Como con cierta duda y escepticismo, como “no puedo creer que las reglas de toda una vida se estén violando”. Por supuesto que nadie dijo esto de manera literal, pero solo describo mi percepción de la forma defensiva en que se hacía. Por ejemplo un participante comentó que Oracle atacaba un problema de una manera distinta sin abandonar el paradigma relacional. En otra ocasión hubo una breve argumentación de por qué MongoDB no continuó con un lenguaje de consulta similar el tipo SQL, porque después de todo, toda la comunidad de desarrolladores ya está acostumbrada a usar este lenguaje.

Esta reacción de una parte del público es interesante, pero no del todo sorprendente. Las bases de datos relacionales han estado con nosotros por más de 40 años. Son más viejas que muchos de nosotros. Es por ellos que a muchos les cuesta creer que sea necesario reinventar el agua tibia. Es similar a que apareciera un nuevo movimiento defendiendo las virtudes de un lenguaje de programación que abandona la programación orientada a objetos. Sería completamente normal para muchos mirar esto con ojos totalmente escépticos. En mi humilde opinión considero que la experimentación en nuevos paradigmas es completamente necesario para desarrollar innovación en cualquier ámbito científico y tecnológico. Y también creo por otro lado que no debemos conducirnos de una manera “hipsteriana”, intentando probar y hasta siendo promotores de las últimas tecnologías solo por lucir “cool”, llegando al punto inclusive de etiquetar a otros como anticuados por no usar lo más reciente en frameworks, librerías, metodologías, etc. Las bases de datos relacionales están a décadas creo yo de entrar en una fase de retiro, pero igual debemos comenzar a considerar las nuevas opciones que ya están comenzando aparecer en el escenario desde hace algunos años atrás.

En este video bastante gracioso (la verdad cada vez que lo veo me causa risa de nuevo), se señala de manera cómica este último punto que menciono, donde tenemos personas bastante creídas y apresuradas para descartar soluciones sólidas y probadas solo porque hay algo nuevo de moda. Jugando como dije al hipster pero con tecnologías de desarrollo. No creo que este video sea una crítica en específico a MongoDB, sino más bien una crítica a la gente que no entiende el contexto apropiado de ciertas tecnologías y creen que es una zapato que le queda bien a todo mundo. Si uno tiene una aplicación sencilla sin grandes problemas de concurrencia por el momento, uno no debería estar preocupándose muy al principio por escalabilidad. Sí dejar un diseño no acoplado solamente a una base de datos, pero no entrar en pánicos innecesarios. Sobre arquitecturar una aplicación puede causar más problemas de los que puede solucionar. Pero ese es otro tema que comentaré después a su debido tiempo.


No hay comentarios:

Publicar un comentario