Como comentaba en el post anterior, la compra de Sun por parte de Oracle ha levantado alarmas sobre el futuro de MySQL, una de las bases de datos más utilizadas (si no la-más-utilizada) en el mundo del desarrollo web, fundamentalmente por su carácter de software libre — sin ir más lejos, cientos de CMS como WordPress, Joomla o Drupal la utilizan de forma preferente o exclusiva, por lo que la posibilidad de que Oracle decidiera detener su desarrollo para favorecer sus propios sistemas de bases de datos (propietarios y de pago) se presenta para algunos como una amenaza real al futuro de sus aplicaciones.
Pero… ¿existen verdaderamente razones para estas preocupaciones? Creo que no, y es más, creo que temer por el futuro de MySQL es no entender las ventajas del software libre, o peor aún, pensar que “software libre = software gratis”… Habría que agregar también que es en puntos como este donde se aprecia la diferencia práctica entre el código abierto y el software libre: a pesar de las diferentes concepciones que podríamos encontrar al respecto (por ejemplo, la definición “oficial” de código abierto, de la Open Source Initiative se parece más bien a una definición de software libre), podríamos reducir didáctica e ilustrativamente su diferencia al hecho de que en su sentido más básico, “código abierto” hace referencia al simple hecho de que es posible ver el código fuente de un programa. En este sentido, cualquier programa escrito en un lenguaje interpretado (PHP, Perl, Python, Ruby [on Rails]) distribuido públicamente caería en la definición de “código abierto” (a menos que por alguna razón “especial” su autor decidiera ofuscar el código).
Un ejemplo de lo anterior podría ser Movable Type, que en lo fundamental siempre ha sido de “código abierto”: el programa es puro código fuente interpretado, pero hasta hace poco no existía la libertad de distribuir una versión modificada, la que existe sólo a partir de su licenciamiento con la GPL. Es entonces cuando las cuatro libertades para usuarios de software cobran sentido: no se trata de una razones puramente filosóficas o políticas (aunque también lo es) ni de una posición utópica o radical (como si ello fuera algo malo)… software libre no es lo mismo que código abierto.
¿Y qué tiene que ver esto con MySQL? Que justamente, su carácter de software libre asegura un futuro protegido: si Oracle decide detener su desarrollo, cualquier grupo de desarrollo podrá tomar la última versión publicada bajo la GPL y continuar el desarrollo, creando un fork… con otro nombre (si Oracle decide proteger su marca), con nuevas metas, con otras personas participando; agregando nuevas características o simplemente mejorando su seguridad y rendimiento o con cualquier otro plan de desarrollo.
No es una posibilidad utópica: ha pasado un montón de veces y seguirá pasando. Ubuntu es un fork de Debian, WordPress es un fork de b2, Webkit es un fork de KHTML e incluso el sistema operativo de Apple, Mac OS X es un fork de Nextstep, que a su vez es un fork de BSD (que es una variante de UNIX).
¿Y si Oracle no detiene el desarrollo de MySQL sino que lo transforma en un producto de software libre de pago? Está dentro de sus libertades, mientras siga publicando su código fuente. Y esto tampoco sería el peor de los escenarios: del mismo modo, cualquier grupo podría dedicarse a distribuir ejecutables compilados a partir del código fuente, y en este caso también hay referentes —CentOS es una distribución de GNU/Linux compilada a partir del código fuente liberado por Red Hat, una distribución comercial de Linux (y una de las de mayor tradición).
De cualquier modo, los primeros pasos para asegurar el futuro de MySQL ya se han dado: uno de los creadores de esta base de datos ha anunciado la creación de la Open Database Alliance para coordinar el desarrollo colaborativo en torno a MySQL.
Y los más paranoicos se alegrarán de saber que ya existen un par de fork’s totalmente compatibles con MySQL y que fácilmente podría convertirse en su sucesor: MariaDB, una rama de MySQL desarrollada en comunidad que mantendrá la compatibilidad con los nuevos lanzamientos de MySQL, y Drizzle, un fork modular basado en MySQL 6.0 y desarrollado por los propios ingenieros de MySQL (ahora SUN) … y quién sabe, si Oracle decide finalmente jubilar a MySQL, quizás podríamos tener un sucesor que no sea solamente una copia sino una nueva y mejor base de datos.