
"Desarrollador Python" de la Semana: Mariano Reingart
¿Puedes contarme un poco sobre ti (hobbies, educación, etc)?:
Comencé a programar cuando era un chico y mi padre compró una ZX Spectrum TK-90 a fines de los '80.
Para 1989, con sólo 11 años, tomé mi primer curso "formal" de programación "Basic I" usando computadoras MSX y "D.O.S." hacia 1991.
Luego de terminar la primaria, en 1992 me anoté en un colegio con orientación de "Bachiller especializado en Informática" (nivel secundario) donde se enseñaba Visual Basic y Visual Fox Pro en los cursos finales.
Luego de egresar, trabajé en esa escuela como Ayudante de Laboratorio, instalando mi primer servidor Slackware Linux circa 1997 para la conexión de Internet, y programando los sistemas del colegio (usando inicialmente VB + Access).
Mi primer experiencia "open source" fue desarrollando un modulo para el kernel de Linux y así usar la linea telefónica dedicada de 128Kps (incluso tuvimos que importar la placa de comunicaciones); y un controlador de kernel de ucLinux para PiCoTux (una micro-computadora embebida corriendo Linux).
También, di mis primeros pasos en la migración de bases de datos a PostgreSQL y trabajando con los primeros dispositivos "WiFi".
Luego, estudié Ingeniería Electrónica por varios años, pero me dí cuenta que mis habilidades iban más por el lado del software, por lo que me cambié de carrera a una Universidad local para Estudiar Licenciatura en Sistemas.
Finalmente me gradué en 2011 luego de varios años "sabáticos" donde gané experiencia laboral desarrollando pequeños sistemas de gestión administrativa/contable para PyMEs, y una aplicación 911(en colaboración ad-honorem con un amigo de la radio-estación policial local).
Actualmente estoy terminado la Maestría en Software Libre (Universidad Abierta de Cataluña), y el Profesorado en Disciplinas Industriales / Docencia Superior (UTN - INSPT).
¿Por qué comenzaste a utilizar Python?
Empecé a usar python en los '00, buscando alternativas a Visual Basic.
Lo elegí para mi tesis de grado en 2006 "Desarrollo Rápido de Aplicaciones bajo el Proceso de Software Personal"
Desde 2009 enseño Python en un Instituto Terciario. Comenzó en un curso pero luego acordamos (con otros profesores) implementar un Proyecto Curricular Institucional orientado al software libre, principalmente en las siguientes materias:
- "Programación I", "Programación II" (incluyendo introducciones a wxPython/web2py)
- Bases de Datos (diseño e implementación)
- Sistemas Operativos (sistemas de archivos, procesos, IPC, etc.)
- Interconectividad ("Redes de Computadoras": sockets, aplicaciones de Internet, etc.)
- Práctica Profesional (trabajo final: desarrollo de aplicaciones web)
Felizmente, laboralmente hoy trabajo principalmente brindando planes de soporte comercial de código abierto gracias a Python, dado que desde 2008 el proyecto PyAfipWs: "factura electrónica", iniciado desde la lista de correo PyAr, la comunidad de Python Argentina, creció, siendo usado por una base de usuarios relativamente grande (incluyendo grandes empresas, PyMEs y profesionales)
¿Que otros lenguajes de programación conoces y cual es tu favorito?
Obviamente Python es mi favorito, y tengo cierta experiencia en PHP, C/C++, Java y otros lenguajes.
Lamentablemente aún tengo que usar Visual Basic Clásico (6.0) para algunos de mis sistemas ERP "legados" (son grandes, alrededor de cientos de miles de líneas de código, y no he tenido tiempo / recursos para migrarlos a Python por el momento)
Ahora estoy investigando vb2py, un proyecto para convertir código VB a Python.
Me intriga por qué no llegó a juntar masa crítica / tracción (el desarrollo parece estancado desde 2004), teniendo en cuenta que hay mucho código VB dando vueltas...
En el proyecto de factura electrónica, use pywin32 (de Mark Hammond et al) para hacer componentes Python usables desde lenguajes legados (VB, VFP), y bibliotecas como dbf (de Ethan Furman) para interactuar con lenguajes aún más antiguos (Clipper, xBase, etc.).
Recientemente también comencé a experimentar con Jython, para usar proyectos Python desde Java.
¿En que proyectos estás trabajando ahora?
Ahora estoy terminando la invesigación para mi tesis de maestría "Desarrollo Rápido de Software Libre de Alta Calidad", tratando de facilitar la vida a los desarrolladores integrando enfoques modernos como interfaces basadas en tareas (Eclipse Mylyn) y Ágil ALM (gestión del ciclo de vida de las aplicaciones), con principios disciplinados de la ingeniería de software para aseguramiento de calidad y mejora continua.
¿Que bibliotecas Python son tus favoritas (del núcleo or de terceros)?
Particularmente encuentro a web2py fascinante, dado que tiene prácticamente una curva de aprendizaje plana, permite prototipado rápido, una interfaz integrada de desarrollo en linea (web), etc.
Sus enfoques no tradicionales también son interesantes para traer otras perspectivas y "pensamiento crítico", especialmente gracias al liderazgo abierto, cordial y reflexivo de Massimo Di Pierro, su creador, y por supuesto, su comunidad afable.
Descargo: soy uno de los desarrolladores "principales", no muy activo estos días debido a la falta de tiempo, pero he contribuido un depurador en linea y otras mejoras, co-escribí el libro "web2py app development cookbook" de Packt, etc.
wxPython también me merece una mención especial, el trabajo de Robin Dunn es grandioso (phoenix py3k!), los widgets agw widgets de Andrea Gavana en puro phyton son realmente impresionantes, solo para mencionar algunos desarrolladores de dicha comunidad.
Este año traté de colaborar más en profundidad con una variante experimental wxQt, como becario enmarcado en el Google Summer of Code 2014 (ahora es usable, incluso desde wxPython! y bajo Android al menos la parte C++ ...).
Cuando necesito algo no cubierto por estas opciones, tiendo a mirar hacia soluciones simples (muchas veces influenciadas por extensiones PHP), iniciando, continuando o "forkeando" ("escindiendo") otros proyectos:
- PySimpleSoap: interfaces ad-hoc livianas para construir clientes y servidores SOAP
- PyFPDF: clase para la generación simple de PDF basada en FPDF de PHP y derivados
- gui2py: un fork (bifurcación) de PythonCard (conjunto de construcción GUI visual "rápido" & simple) para evolucionarlo y modernizarlo
También ayudan a entender las tecnologías subyacentes, a proveer alternativas implementadas en "puro Python" y a experimentar con la migración a Python 3.
¿Hay algo más que quieras decir?
No, disculpas por las largas respuestas, pero la entrevista es irresistible :-) ...
También, disculpas por mi Inglés (en la entrevista original), dado que hablo español es dificultoso a veces encontrar la traducción correcta.
Gracias a vos Mike por tus esfuerzos y este proyecto sobre artículos de entrevistas, y ¡gracias a toda la comunidad Python!