Entrevista a Alvaro Herrera

En la entrevista del lunes tuvimos el agrado de tener a Alvaro Herrera,  Ingeniero civil en computación, 32 años, vive en la ciudad de Valdivia-Chile,  padre, desarrollador de PostgreSQL y actualmente trabaja en Command Prompt, Inc.

PostgreSQL

Hola Alvaro, gracias por aceptar nuestra entrevista, para iniciar nos interesaría saber ¿Como llegaste a PostgreSQL?

Estaba de estudiante en práctica en una empresa nueva, de esas que los gringos llaman “start-up”, cuya meta era dedicarse a vender el servicio de monitoreo de sistemas de red.  En esa época teníamos un Nagios que registraba eventos en archivos de texto plano, y la idea de los jefes era inventar un sistema para recorrerlos y generar informes semanales.

En ese punto me pareció obvio que ese esquema no iba a funcionar a largo plazo, y como apenas conocía de bases de datos, me puse a investigar lo que había y me topé con un famoso artículo de Tim Perdue acerca de la migración de SourceForge de MySQL a PostgreSQL.  A partir de ahí me hice usuario y empecé a aprender; lo simpático fue que en paralelo empecé a hacer el curso introductorio de bases de datos en la U (que en ese tiempo se basaba en Oracle), así que pude ponerme en movimiento rápidamente.

Hace poco entrevistamos a Juan Carlos Inostroza que trabaja para  Oracle, ¿Cual es tu apreciación respecto a Oracle?,  ¿crees que  PostgreSQL es el competidor de Oracle?

Ciertamente PostgreSQL es (uno de los) competidor(es) de Oracle.  En muchos ámbitos donde hoy en día se pagan las carísimas licencias de Oracle, se podría estar usando PostgreSQL.

Oracle tiene la enorme ventaja de ser el líder de mercado; ese del cual dicen “no han despedido a nadie por comprar Oracle” (como se decía de IBM hace veinte años).

¿Donde PostgreSQL se queda corto y tiene que madurar?

Hay varias áreas.  Por un lado, la oferta de libros sobre PostgreSQL es bastante limitada.  La de libros en español es más limitada aún.  Hay algunas áreas desde el punto de vista del código donde también faltan cosas, pero en este punto continuamente se avanza en muchas direcciones simultáneamente.  (Quiero recalcar, sin embargo, que desde el punto de vista de una empresa u organización chilena, es muy difícil encontrarse con algo que PostgreSQL no pueda hacer hoy en día).

Desde el punto de vista del soporte comercial, en Chile estamos bastante cortos.  Actualmente hay que recurrir a empresas extranjeras.

¿Cual es tu labor en  Command Prompt, Inc?

He tenido varios papeles a lo largo del tiempo.  Empecé haciéndome cargo de PL/php, que es una biblioteca para empotrar PHP que permite hacer procedimientos almacenados en PHP.  Luego de unos meses de ese proyecto
me hice cargo del desarrollo de Replicator, que es un sistema de replicación maestro-esclavo para PostgreSQL; hace poco se liberó bajo licencia BSD la versión 1.8.  Tenemos varios clientes que compraron las licencias de la versión anterior, y lo utilizan continuamente.  La gran ventaja que tiene Replicator sobre otros sistemas de replicación de PostgreSQL es que es muy simple de utilizar.

Además, parte de mi tiempo se va en participar en el desarrollo de la versión comunitaria de PostgreSQL: mi gran preocupación últimamente ha sido el daemon autovacuum, pero hago varias otras cosas más pequeñas todo el tiempo.

La otra gran tarea que tengo es hacerme cargo de la lista de correo pgsql-es-ayuda (la tercera lista de PostgreSQL en volumen de tráfico, después de pgsql-hackers y pgsql-general).

¿Por qué crees que la mayoría de los CMS que son usados para montar  sitios web vienen por defecto para MySQL y no PostgreSQL?

Es un círculo vicioso.  La mayoría de la gente sólo ha escuchado hablar de MySQL, así que cuando necesitan un RDBMS libre es lo primero que les viene a la mente.  Es difícil encontrar hosting con PostgreSQL, así que no se hace conocido para las masas, así es que no lo piden, y por lo tanto los proveedores no lo ofrecen.

Si uno quiere instalar un CMS lo primero que necesita es hospedaje que dé soporte a la base de datos que necesitas.  Los desarrolladores de los CMS están acostumbrados a MySQL por razones que ahora son puramente históricas, así que se basan en él para hacer el CMS.  Hay una gran resistencia al cambio; y aun aquellos CMS que ahora ofrecen soporte nativo para PostgreSQL tienen “plug-ins” o módulos que sólo funcionan con MySQL, así que el panorama es difícil para quien quiere remar contra la corriente.

La otra razón es que si se quiere soportar dos tipos de bases de datos diferentes, los desarrolladores harán la aplicación de manera que funcione en ambos; es decir, usarán el mínimo común múltiplo de la funcionalidad, aquello que ambos ofrecen.  Si desechas las capacidades más avanzadas de PostgreSQL y reimplementas esa funcionalidad en tu aplicación, no has obtenido ninguna de las ventajas de usar PostgreSQL.

¿Crees que MySQL le ha quitado gran terreno a PostgreSQL, es un problema de dinero?

No; al menos no ahora.  MySQL ganó la carrera de hacer una base de datos rápida hace diez años.  Hoy en día yo diría que la cosa va al revés: PostgreSQL está creciendo más rápido que MySQL.  El problema es que la ventaja que lleva MySQL es grande :-)

Pero no es un problema de dinero.  Es un problema de quién es el  más popular.  Como decía arriba, es un círculo vicioso.  La buena noticia (para PostgreSQL) es que ha logrado romperse.

Entonces, algo que le falta a PostgreSQL es el área marketing, si no hay una empresa definida detrás de su desarrollo ¿como crees que se podría conseguir eso?

Sí, podría decirse que le falta marketing.

Lo cierto es que las empresas que están detrás de PostgreSQL (EnterpriseDB, Command Prompt, SRA OSS, OmniTI, …?) hacen su propio marketing, y como son abiertos proponentes de PostgreSQL, lo impulsan también.

PostgreSQL como proyecto comunitario no tiene las grandes cantidades de dinero que se requiere para invertir en estas cosas.  El dinero que se recauda se utiliza en financiar conferencistas a diversos eventos por todo el mundo para darlo a conocer a las audiencias interesadas.

Supimos que hace poco fuiste padre, ¿ que tal la experiencia?, tendremos un nuevo pingüino entre nosotros?

Alvaro e hijaEs cierto; hoy (19) se cumplen tres meses de ese acontecimiento.  La verdad es que es una cosa increíble, maravillosa.  Es difícil decir tan pronto si será pingüina o no, pero si los deseos de los padres influyen en algo (tenemos claro que no es así), ella se dedicará a la música.

¿Que te ha parecido la introducción de PostgreSQL en el sector empresarial?, ¿falta terreno por recorrer?

Muchísimo.  En Chile, de partida falta una buena empresa de soporte. Sin embargo, hay muchos lugares en que se está usando, y aparentemente les va bien.  La buena noticia es que les funciona; la mala noticia es que como la licencia es tan liberal, nadie se entera (hasta que me escriben porque tienen algún problema que no saben cómo resolver).

Otros mercados están mucho más maduros, como en USA, Europa, Japón. Allá la presencia de PostgreSQL es mucho mayor, hay varias empresas que dan soporte y que aportan al desarrollo de PostgreSQL, auspician eventos, etc.

Acá naturalmente que nos falta muchísimo.

y en este sentido, ¿por qué no formar tú la empresa en Chile?

Lo he pensado muchas veces, pero la comodidad de mi puesto actual me detiene.  Otro factor es que como vivo en Valdivia, los potenciales clientes que puedo alcanzar fácilmente no son muchos.  Creo que sería distinto si estuviera más cerca de Santiago.  Una vez teniendo una cartera de clientes importante, la ubicación física no sería importante.

Como ves, más que nada es una cosa de inercia.

¿Participas en alguna comunidad FLOSS?

Soy uno de los miembros antiguos de la lista Linux de la Universidad Santa María, y gracias a ella he participado como expositor de casi todos los Encuentros Nacionales de Linux.  Aparte de eso, no, aunque estoy tratando de conseguir que el Guliv (Grupo de Usuarios de Linux de Valdivia) pueda tomar vuelo nuevamente.

¿Software Libre o Código Abierto?

Software libre

¿Vim o Emacs?

Dos veces he tratado de seguir el tutorial de Emacs, sin éxito.  Mi vida transcurre en un 75% entre Vim, Mutt, Epiphany.

Alvaro montando novillo

¿No sales de la consola?

$ ps u -C xterm | wc -l
9

(Traducción: tengo 9 xterm corriendo en este momento.  Uno de ellos tiene screen con tres sesiones y un mutt en cada una de ellas, con mis tres carpetas de correo principales).

¿Que distribución usas?

Debian

¿Que tendremos en el futuro en PostgreSQL?

Desde el punto de vista del código, para la próxima versión de PostgreSQL hay muchísimas cosas nuevas; tenemos por ejemplo soporte para WITH RECURSIVE (consultas recursivas); procedimientos almacenados variádicos (número variable de argumentos) y valores por omisión para sus argumentos; la posibilidad de cambiar el idioma selectivamente al crear una base de datos; más trazas para DTrace; y muchísimos otros cambios, no todos los cuales son visibles para el usuario final.  Además hay algunos cambios que están en proceso de revisión, como un sistema de
replicación síncrono, funciones de ventana (”windowing functions”); SE-PostgreSQL (un encastrado de seguridad, como SE-Linux); servidor replicado secundario al cual se le pueden hacer consultas (”hot standby”); la posibilidad de hacer actualizaciones in-place, sin tener que pasar por dump/restore.

Desde el punto de vista más social, tenemos PGCon East, una conferencia exclusivamente sobre PostgreSQL en Philadelphia, USA, en abril o por ahí, y la PGCon en Ottawa, algo más tarde en el año; tenemos bastantes personas nuevas integrándose al grupo de desarrollo, lo cual significa más código para la versión siguiente; tenemos más compañías poniendo dinero para auspiciar las conferencias y el código; tenemos más clientes satisfechos contratando servicios, haciendo donaciones, participando en conferencias, mostrando sus casos de uso que contagian a muchos nuevos potenciales usuarios.  Y la comunidad, esa que participa todos los días en las listas de correo, en IRC, sigue creciendo saludablemente todos los días.

Para los que se inician piensan que participar en un proyecto como  PostgreSQL es muy complejo, ¿es así?

Si alguien piensa que empezar a participar del proyecto PostgreSQL es una cosa de un día para otro, tiene razón.  Suena algo tonto, pero el primer paso es suscribirse a una lista de correo y ver de qué forma se trabaja.  Mirar el TODO http://wiki.postgresql.org/wiki/Todo y ver qué cosas faltan por hacer.  Echarle una mirada al código, tratar de entender cómo se construye un sistema de bases de datos relacionales.
Tomar un parche enviado http://wiki.postgresql.org/wiki/CommitFest_2008-11 y reportar los problemas que tenga; intentar escribir código y ver qué resulta.

Participar en una lista de correo, ya sea haciendo buenas preguntas, o respondiendo las de otros, tratando de ver si las cosas que pasan son esperables o son errores de programación (bugs) u otros problemas.

Participar se puede de muchas formas.

¿Que consejos les darías a los nuevos aspirantes a participantes de proyectos de FLOSS en especial al área de desarrollo?

Leer (buen) código ajeno es la segunda mejor manera de aprender.  La primera es escribir (buen) código y conseguir que otros te digan cómo hacerlo mejor la próxima vez.

En Chile existen varios grupos simpatizantes al FLOSS, se hacen varios eventos. ¿Como ves el movimiento en comparación a esos primeros  Encuentros Linux?

La verdad es que he participado de pocos de esos eventos.  Lo bueno es que se están haciendo, y que el software libre llega día a día a más personas, que le sacan partido e (idealmente) contribuyen a su vez.  Es bueno que haya “sangre fresca”, porque asegura y demuestra que el movimiento sigue vivo y saludable.

Ignoro si la tasa de crecimiento es suficientemente buena.  Lo que me preocupa es que, si bien tenemos grandes cantidades de nuevos usuarios, no parece que haya muchos nuevos desarrolladores (o, más en general, participantes activos).

Desde 1997 ya entraste en el mundo Linux, dejaste atrás el ambiente  Windows. ¿Como has visto el progreso, avance y acercamiento al usuarios durante estos más de 10 años?

Han pasado tantas cosas que es difícil recordarlas.  En esa época no existía Ubuntu, Gnome era muy feo, y Java era para usarlo sólo en Solaris y Windows.  PHP prácticamente no existía.

Hemos llegado al punto que Hewlett Packard, IBM y Sun tienen áreas dedicadas al software libre.  Dell vende computadores con Linux.  Oracle recomienda Linux por sobre cualquier otro sistema operativo.

Ubuntu atrae usuarios que se manejan sólo con Windows, o aún mejor, con usuarios que nunca antes han usado computadores; y lo bueno es que pueden conseguir hacer lo que necesitan.  Ya es una herramienta útil incluso para gente sin mucho entrenamiento (siempre se necesita entrenamiento para saber usar el mouse y el teclado, por supuesto).

Hemos llegado muy lejos, y creo que en cierta medida hemos ido forzando que otros (Microsoft, Sun) vayan en busca de la calidad, porque ya saben que están en competencia.

No creo que pueda haber mayor homenaje a la comunidad de software libre.

Vemos que te gustan las frases, casi siempre firmas tus correos con una de ellas, ¿tienes una favorita?

Hmm, no sé si favorita, pero hay una de Andrew Morton:
“World domination is proceeding according to plan”

Imágenes de http://flickr.com/photos/alvherre/

3 Responses to “Entrevista a Alvaro Herrera”

  1. zeroblack

    on Diciembre 22 2008

    excelente entrevista, felicitaciones al nuevo papá ;)

    lo que si falto fue la pregunta si Command Prompt, Inc. canalizado por Alvaro pueden hacer llegar alguna polerita o algun regalito para poder regalar a futuro ;)

    PD: No es que seamos pedigueños pero en pedir no hay engaño ;)

  2. Entrevista a Alvaro Herrera - DbRunas

    on Diciembre 23 2008

  3. Alvaro Herrera

    on Diciembre 29 2008

    Buena pregunta :-) Yo he pedido poleras en la empresa un par de veces, pero ni siquiera he conseguido para mí. Supongo que tendré que ver de conseguir alguna de confección local, para hacer promoción de Command Prompt …

Comment RSS · TrackBack URI

Deja un comentario

Nombre: (Requerido)

E-mail: (Requerido)

Website:

Comentario:

 
 

Acerca del Sitio

Misión de ONG LinuxChillán

La difusión y desarrollo de las herramientas ofrecidas por la tecnología libre, vistas como medio para que la sociedad global acceda de manera libre al conocimiento.