Entrevista con el creador de Ninja IDE

  
1 de Febrero de 2015   0  

Diego Sarmentero, creador del famoso IDE  Python llamado “Ninja IDE” nos ha concedido una entrevista a nuestro equipo de Pythonízame. Gracias Diego!

 

 

Cuéntanos, ¿Cómo fue que iniciaste en el mundo de la programación?

Cuando tenia 6 años, recuerdo haber visto por primera vez una computadora con interfaz gráfica de usuario, y quedé fascinado por el simple hecho de que moviendo el mouse, el cursor se movía en la pantalla y se podía dibujar con eso, y que alguien había hecho que eso sea posible. Pero recién a los 13 años, cuando tuve mi primer maquina, fue que en un viaje a muchos kilómetros de mi casa pude copiarme en un disquete un compilador de Qbasic y 3 programas de ejemplo, mi problema fue que en ese momento no tenia internet en mi casa y para mayor frustración, todas las bibliotecas de mi ciudad parecían tener solo libros de geografía, así que mi forma de aprender fue a prueba y error, modificando esos programas de ejemplo y viendo que pasaba y así entendí lo que era el GOTO (del cual hice uso de forma indiscriminada :P), IF, etc… y comencé a hacer programitas de encriptadores, jugar con colores y sonidos de la computadora, y cosas de ese estilo, hasta que después pude ir conociendo mas lenguajes, empezar a programar cosas mas complejas y haciendo UI que siempre me llamó mucho la atención.

 

¿Cómo nos relatarías un día normal en la vida de Diego Sarmentero?

¿Para qué definición de normal? 😛

Hasta Octubre del 2014 me encontraba trabajando en Canonical, para el equipo de “Unity Scopes API”, y tenia una rutina un tanto fija, pero la verdad que no estaba contento con el trabajo, siempre me gustó tratar de buscar de hacer cosas que me resulten creativas, por eso fue que renuncie para volverme “mi propio jefe”. Desde que empecé a programar, siempre estuve desarrollando proyectos por mi cuenta, de menor o mayor complejidad, pero siempre me gusto tratar de llevar a cabo mis ideas, y hace un tiempo que venia trabajando en algunas cosas y quise pasar a dedicarle todo mi tiempo a eso.

Working hard

Ahora, relatar un día normal, depende del día y de la semana. Principalmente inicio el día alrededor de las 7am, leyendo 1 o 2 capítulos del libro con el que esté en ese momento (alguno de ciencia ficción seguramente), después salgo a hacer unos 30km en bicicleta (porque desgraciadamente no es sano estar todo el día sentado) y al terminar con la rutina de la mañana, ya puedo largar con las tareas de programación del día!

Actualmente estoy trabajando en 8 proyectos que quiero sacar este año, y si hay algo que REALMENTE no me funciona es andar haciendo muchos cambios de contexto pasando de un proyecto a otro, por eso es que
decía que depende de la semana, usualmente dedico una o dos semanas a un proyecto, hasta poder terminar algún hito de lo que estaba haciendo, luego paso a otro, y así los voy rotando. Eso me sirve también para no aburrirme de estar haciendo todo el tiempo lo mismo, y ademas me da tiempo para seguir pensando en background ideas sobre otros proyectos mientras trabajo en otra cosa.

Por suerte tengo también mis grupos de amigos que me mantienen sociable con las distintas juntadas en la semana y evitan que entre en full ermitaño mode, con el partido de fútbol semanal o las reuniones a comer (también denominadas apologías a la gula).

Y para finalizar el día, planificar y anotar en mi pizarra en que voy a estar trabajando al día siguiente y luego a leer un poco de otro libro (pero ahora uno técnico) y/o mirar alguna serie de television (que son otro vicio mas).

 

¿Podrías platicarnos sobre tu trabajo como desarrollador y los proyectos en los cuales estas envuelto?

Como decía antes, como desarrollador siempre me gustó hacer cosas que considere creativas, usualmente cuando tengo que hacer cosas repetitivas me entran a producir bastante rechazo. Me gusta mucho aprender y probar cosas nuevas, tanto de programación, como de otras áreas como dibujo, modelado y animación 3D, etc. Me gusta mucho buscar cosas nuevas para aprender porque en los primeros momentos es como que toda información es muy interesante, todo parece importante, y podes ir viendo como de no saber nada sobre un tema vas dominando poco a poco eso. Seguir aprendiendo sobre temas que ya se también es interesante, pero no es tanta la sensación de que estas descubriendo algo nuevo, por eso considero que esta bueno siempre aprender cosas nuevas.

Y en cuanto a los proyectos en los que estoy envuelto, este año pretendo publicar 8 proyectos, de los cuales hay:

  • 3 Juegos para plataformas móviles (desarrollados bajo el nombre de “Ferpect Gaming”ferpectgaming.com).
  • La nueva versión de NINJA-IDE (3.0, ninja-ide.org).
  • Hacer un refactoring del código de MyConference para solucionar varios de los problemas y limpiar algunas “malas prácticas” myconference.co.
  • Mejorar y actualizar el proyecto TvStalker, y sacar aplicaciones para Android e iOS sobre el mismo (tvstalker.tv).
  • Publicar un libro de ciencia ficción que me encuentro escribiendo llamado “Inmortalidad”, ojalá para Septiembre.
  • Terminar un juego para PC que estoy haciendo, desarrollado bajo el nombre de “Mind Echoes” (El nombre del juego es secreto todavía :P).

Y también estoy con un grupo de amigos desarrollando otro juego para PC, llamado “Edmund: The Path Back To Life” (thepathbacktolife.com), pero este no se si estará terminado para este año o quizás el siguiente.

¿Porqué surge la idea de crear un nuevo IDE?

Cuando comencé con NINJA-IDE la idea era hacer un simple editor que solucionara alguno de los problemas y cosas que no me gustaban de otros editores que estaba usando en ese momento, y la idea también fue motivada por el hecho de ver que en la lista de correo de PyAr cada tanto había alguien preguntando que IDE para Python recomendaban, y usualmente no había muchas opciones o las respuestas tenían todas sus trabas, por eso me interesó hacer un IDE que fuera exclusivamente diseñado para trabajar con Python, no intentando abarcar todos los lenguajes que estén dando vueltas, ni hacer algo super pesado o confuso, sino hacer algo simple, intuitivo y que un desarrollador Python pueda aprovechar al máximo. Obviamente como cualquier cosa que se hace por primera vez, hubo muchas cosas que se fueron aprendiendo en el camino, y hasta terminamos reescribiendo NINJA-IDE completo en 2 oportunidades. Ahora estamos desarrollando la versión 3.0 de Ninja con Horacio Durán (Perrito), y esta versión 3.0 también fue una reescritura completa que hicimos entre los dos, y estoy MUY contento de como está evolucionando esta versión, va a ser por lejos la mejor versión de Ninja hasta ahora, y todos los cambios que hicimos en la arquitectura van a permitir que sea mucho mas fácil extender el IDE y desarrollar features muy potentes a través de plugins, además de varias importantes features que estamos desarrollando nosotros. Hace bastante que estamos trabajando en esta versión, pero la demora es porque realmente queremos que sea una versión de la que los usuarios puedan estar muy contentos, y tratar de llevar NINJA-IDE a un nivel tal que los desarrolladores puedan estar tan o incluso mas cómodos usando una herramienta 100% libre, en lugar de cualquiera de las soluciones comerciales.

ninja-ide-team

Si bien Python es un lenguaje tan cómodo, que es posible trabajar en cualquier editor de texto, lo que siempre quisimos desde NINJA-IDE es poder brindar una herramienta que pueda brindar todo tipo de asistencia al desarrollador, facilitando y acelerando el trabajo, con chequeadores de código, herramientas de autocompletado, navegadores de código para poder desplazarse a cualquier punto de todo el proyecto presionando solo un par de teclas, y muchas cosas más!

Y así como hicimos muchas mejoras tanto en la interfaz actual del IDE, mejoras en las features y tantas otras cosas, también tenemos pensadas muchas ideas a futuro para que el trabajo de cualquier desarrollador se pueda volver mucho mas cómodo y productivo.

¿ Tienes otros proyectos desarrollados con Python?

Actualmente además de NINJA-IDE, los otros proyectos que tengo en Python a los cuales cada tanto les dedico tiempo son MyConference y TvStalker. Pero siempre esta también la ocasional idea o prototipo que va a parar a mi repositorio de Github, como Documentor, CodeTranslator, etc.

IMG_20150128_074323

6. ¿ Qué les dirías a las personas que aún temen aprender Python?

Que simplemente se animen a probar!!

Si hay algo en lo que Python es realmente bueno es en tener una curva de ingreso bien baja, en muy poco tiempo podes estar ejecutando tu propio programa o jugar en vivo con el intérprete interactivo.

Yo personalmente venía de un oscuro pasado de Java y VBasic :P, y la primera vez que vi a un amigo hablar sobre Python y mostrar una presentación sobre la sintaxis, la facilidad del lenguaje, etc. pensé:

“Esto seguro es mentira, en situaciones mas complejas seguro ya no se puede usar”

pero al probarlo me di cuenta (para mi felicidad) de lo equivocado que estaba, y de lo potente y simple que es el lenguaje.

“Simple no significa limitado, sino bien diseñado.”

Y otra gran virtud que tiene Python, y que no está en el software, son todas las comunidades alrededor del mundo de gente que sabe mucho sobre el tema y que siempre tienen la mejor predisposición para ayudarte en cualquier problema que tengas o tirarte una guía de para donde encaminar tus búsquedas.

Palabras con las cuales describirías a Python.

Simple, Potente, Comunidad.



Alex Dzul

FullStack Python / Django Developer. #jslove

Temas relacionados