Luego de la PyCon, Guido Van Rossum muy amablemente nos concedió una entrevista vía e-mail. Aquí la traducción al español, esperando no traicionar la versión original en inglés.
Saludos Guido, después de muchos debates dentro del grupo, elegimos estas preguntas y discúlpanos por enviarte el correo electrónico hasta ahora. Un gran saludo desde Colombia y gracias nuevamente por tu tiempo.
Camayihi: ¿Por qué creaste Python?, ¿qué razones tuviste y en cuál contexto?
Guido Van Rossum: A finales de los años 80s yo era parte de un equipo en el CWI (Centrum voor Wiskunde & Informatica – Centro para Matemáticas e Informática) en Amsterdam que estaba construyendo un nuevo sistema distribuido, Amoeba. Necesitábamos construir aplicaciones (por ejemplo: Clientes de correo electrónico, herramientas para hacer copias de seguridad) y encontramos que esto iba demasiado lento en C. Aparte de C, el único otro lenguaje que corría sobre Amoeba era el shell, para el cual no era correcto escribir herramientas como esas. Entonces comencé a pensar en escribir un lenguaje que me permitiera escribir código rápidamente, pero que se sintiera todavía como un lenguaje real de programación. http://en.wikipedia.org/wiki/Amoeba_%28operating_system%29
Antes de unirme al equipo de Amoeba, había estado en el equipo del lenguaje ABC, donde ayudé a implementar un lenguaje de programación y un ambiente que estaba diseñado para algunas de las personas más inteligentes en el CWI, principalmente Lambert Meertens. El ABC, tenía muchas características importantes, pero no fue un éxito, quizás porque estaba adelantado para su tiempo. http://en.wikipedia.org/wiki/ABC_%28programming_language%29
Entonces para Amoeba, decidí crear un nuevo lenguaje que llenara mis necesidades, inspirado de muchas maneras en el ABC.
Camayihi: ¿Por qué elegiste la indentación como una regla para Python?
Guido Van Rossum: Esto vino directamente del ABC. Me gustaba, porque me di cuenta que los humanos, cuando leen código, están mejor guiados por la indentación, entonces noté que una adecuada indentación debería ser aplicada por el lenguaje. Tuve que experimentar también algunos molestos errores causados por el código escrito en C que estaba indentado adecuadamente pero que carecía de las llaves requeridas para decirle al compilador lo que el programador intentaba hacer.
Camayihi: ¿Piensas que podemos hacer aplicaciones en Python 3 sin preocuparnos por las librerías? Es decir, ¿actualmente si hay suficientes librerías escritas en Python3
Guido Van Rossum: Si, estamos cerca del punto de inflexión. Veo más y más personas comenzando a usar Python 3 para proyectos reales, y veo más y más librerías de terceros que tienen una versión sólida (o al menos experimental) que usa Python 3, como es el caso de Django y NumPy.
Camayihi: Háblanos sobre el futuro cercano de Python, ¿qué tienes en mente?
Guido Van Rossum: La cuestión más grande en la que estoy trabajando yo mismo es un ciclo de eventos estándar para hacer Entradas/Salidas de forma asíncrona. Pueden leer sobre esto en el PEP 3156. http://www.python.org/dev/peps/pep-3156/
Camayihi: ¿Por qué elegiste crear a Python como un lenguaje de scripts y no como un lenguaje compilado?
Guido Van Rossum: Porque escribir un compilador que genere código máquina es mucho más trabajo que escribir un intérprete. Y porque me gustan muchas de las características de los lenguajes de scripts (realmente, lenguajes dinámicos), como lo son la ausencia de declaración de tipos de variables.
Camayihi: ¿Qué piensas sobre el gran número de frameworks escritos en Python? ¿Hay algún framework que prefieras?
Guido Van Rossum: Creo que esto prueba que el lenguaje es popular. No tengo fuertes preferencias — algunos días uso un framework grande como Django, algunos días uso un micro-framework como Flask, algunos días escribo uno propio. 🙂
Camayihi: Cuando piensas en Python, ¿piensas en aplicaciones Web o en aplicaciones de escritorio o en ambas?
Guido Van Rossum: Hago muchas aplicaciones de ambos tipos. Escribo aplicaciones Web grandes y pequeñas, pero también escribo muchas utilidades para consola de comandos. No he escrito una aplicación con una interfaz gráfica de usuario para escritorio en muchos años.
Camayihi: ¿Por qué la programación orientada a objetos de Python es diferente de la de lenguajes como Java o C++?
Guido Van Rossum: Cada lenguaje tiene su propia variación de la programación orientada a objetos. A diferencia de Java, en Python no *tienes* que usar clases para que las cosas funcionen. A diferencia de C++, las clases de Python son objetos en tiempo de ejecución que pueden ser accedidos sin restricción, modificados, e incluso construidos dinámicamente.
Camayihi: ¿Qué haces en Dropbox? Cuéntanos sobre tu nuevo trabajo.
Guido Van Rossum: No puedo decir mucho todavía; estoy diseñando una nueva API que no ha sido publicada aún. ¡Puedo decir que la estoy pasando bien aquí!
Camayihi: ¿Qué sientes al ser un BDFL (Benevolent Dictator for Life – Dictador benevolente de por vida)?
Guido Van Rossum: Estoy feliz que muchas personas confíen en mi juicio sobre el lenguaje y el diseño del API del mismo. Me gusta ayudar a la gente a encontrar puntos en común cuando hay desacuerdos dentro de la comunidad, y espero que la gente confíe en mi juicio sobre como las personas deberían tratarse entre ellas. Algunas veces me siento triste cuando los conflictos se extralimitan y se hacen amenazas.
Camayihi: ¿Crees que tu Computer Programming for Everybody (Programación de computadores para todos) ha tenido éxito?
Guido Van Rossum: Creo que tiene un largo camino por recorrer, pero estoy encantado de ver que Python se está volviendo más y más popular en la educación.
Camayihi: ¿Continúas con Rietveld?
Guido Van Rossum: Desde que dejé Google, tuve que dejar su desarrollo en manos de otros, pero todavía soy parte de su equipo. Todavía lo uso para las revisiones de código de Python.
Camayihi: ¿Usas GNU/Linux?
Guido Van Rossum: Lo hago, pero no para el uso de mi computador principal. En Dropbox mi único computador es un portátil Mac, pero para el trabajo de los servidores de desarrollo, ejecuto Ubuntu dentro de una máquina virtual.
Camayihi: ¿Cuál es tu opinión sobre Java y PHP?
Guido Van Rossum: Ocasionalmente uso Java (¡Desarrollé una característica para el cliente de Dropbox para Android!) y está bien, aunque requiere demasiado código para mi gusto. Nunca he usado PHP y espero nunca hacerlo.
Camayihi: ¿Algún consejo para los nuevos programadores en Python?
Guido Van Rossum: ¡Comiencen con Python 3! Es mucho más limpio y tiene varias características nuevas específicamente diseñadas teniendo a los nuevos programadores en mente. Incluso si después tienes que usar Python 2, es mucho más fácil aprender Python 3 primero — después de todo, si aprendes Python 2, tendrás que aprender Python 3 de alguna forma en el futuro cercano. Un programador de Python 3 únicamente tiene que recordar un puñado de cosas que no funcionan en Python 2. Pero un programador de Python 2 tiene que desaprender muchas cosas cuando migre a Python 3.
Imagen: Wikimedia Commons