Entrevista con un experimentado programador en Go

Mario Solis es un desarrollador de los que no tienen miedo de ayudar. Ha colaborado con la comunidad en varios proyectos OpenSource, y en estos momentos se encuentra dando su talento a Revel. Un Framework de Go para el desarrollo web que esta creciendo poco a poco y se encuentra en un nicho de mercado no alcanzado por su competencia: el rendimiento. Cercano a C, pero con la facilidad de Java.

El siguiente texto es una entrevista sin editar o manipulaciones.

Yo

Hola Mario Solis. Antes de nada, quiero agradecerte que compartas tu experiencia para nuevos desarrolladores en Go. Sobretodo para aquellos que quieren usarlo para un desarrollo web. La primera pregunta es obligada: ¿Qué es Go?

Mario

Hola Andros, gracias a ti por la oportunidad. Pues respondiendo a tu pregunta Go es un lenguaje relativamente nuevo, se lanzó a finales del año 2009. Go viéndolo desde un punto de vista sencillo, es básicamente un Java mas potente, enfocado a la concurrencia y a demandas de alto nivel de velocidad. Go es un lenguaje compilado, multiplataforma y recalco muy pero muy potente. Al final es como un C y un Java mas bonito :P

Yo

¿Cómo se trabaja en web? ¿Qué es Revel?

Mario

Go tiene incluidas librerías, para el manejo de http requests (más info en . Puedes levantar un servidor web con unas cuantas lineas de código y listo. Cuando hablamos de Revel, básicamente es un framework, el cual tiene 2 metas muy claras, easy to use & performance.

Yo

¿Qué ventajas tiene sobre otros Frameworks para web?

Mario

Revel es un framework con el cual el desarrollo es muy productivo. Es muy rápido (gracias al lenguaje) y a que utiliza una goroutine para cada petición http que se realiza al servidor. El consumo de una aplicación de Revel es relativamente bajo, está muy bien estructurado, pero a la vez es muy flexible. Revel no necesita instalación de librerías externas para su funcionamiento, solo necesitas el framework y listo. Revel provee de muchas librerías o utilerías como routing, parameter parsing, validation, session/flash, templating, caching, job running, testing framework, internacionalizacion…

Yo

¿Que es Revel para ti?

Mario

Es un nuevo framework, que satisface muchas de las cosas que he querido, no digo que otros no lo hagan pero siempre me ha gustado Go, y Revel es un framework que está estructurado y las metas creo que van de la mano con mis metas “easy to use” y “performance”.

Yo

¿En que proyectos OpenSource has colaborado?

Mario

Uff la pregunta mas difícil hasta el momento, Soy co-fundador de OpenNut, además de participar en el Congreso Guatemalteco de Software Libre (CGSOL) y Encuentro Centroamericano de Software Libre (ECSL), soy miembro activo de la comunidad de Revel. La mayoría de proyectos que realizo me gusta que sean open source y que en algún momento puedan ayudar a alguien mas.

Yo

¿Cual es tu lenguajes favorito? ¿Por qué?

Mario

No me gusta responder mucho a este tipo de preguntas, como te dije antes cada lenguaje y cada framework tiene su propia finalidad. Al día de hoy el lenguaje que prefiero es Go. Pero pueda ser que eso cambia el día de mañana, como ha venido cambiando todos los años desde que estoy en el desarrollo de software.

Yo

¿Por qué Go?

Mario

Go, es un lenguaje que te enseña a programar, a ser ordenado, a manejar el estándar. Es ordenado, es rápido, maneja concurrencia de forma muy fácil, y es muy divertido desarrollar en Go.

Yo

¿Podrías decirme 5 cosas buenas de Go y 5 no tanto?

Mario

Extremadamente rápido. Manejo de concurrencia de forma nativa. La documentación es muy muy buena. La mayoría de librerías de terceros son estandarizadas, y Go trata de obligar a que esto siga así. Es compilado. Hay muchos temas en cuanto a que no es muy bueno de Go. Hay ciertas características que no están implementadas. Y creo que es porque el lenguaje está orientado a la simplicidad. Creo que apoyo una en especial y es el manejo de excepciones. La abstracción, “herencia”, y otras cosas que en otros lenguajes son muy sencillas, en Go lleva un tiempo acostumbrarse.

Yo

¿Cual es el futuro de Go?

Mario

Creo que tiene mucho futuro, a pesar de ser un lenguaje relativamente nuevo, es un lenguaje que está tomando mucho auge. Está siendo muy usado en especial por los administradores de servidores, gracias a su facilidad y simplicidad. Sin mencionar en el desarrollo web, gracias a su velocidad y concurrencia.

Yo

¿Podrías dar algún consejo a nuevos alumnos de Go?

Mario

Go es simple y divertido. Todo lenguaje tiene una curva de aprendizaje, Go facilita mucho las cosas con su buena documentación. Mi consejo sería leer la documentación en lo que se necesite. Usar el tour de Go que es muy entretenido. tiene muchos ejemplos, documentados y siempre está publicando tutoriales, o consejos. Y sobre todo practicar y practicar.

Yo

¿Qué quieres aprender en el futuro?

Mario

Lo que sea, siempre que no estoy aprendiendo me frustro y tengo que buscar cualquier cosa, desde como hacer una silla hasta como hacer un procesador de pc.Por ese motivo la programación me encanta, tengo varios lenguajes en lista que quiero aprender, espero poder hacer tiempo para seguir con el aprendizaje, y experimentar con eso.

Yo

Se que trabajas mucho con Django. Antes de terminar quiero preguntarte: ¿Django o Revel?

Mario

No puedo darte una respuesta a esta pregunta. Me gustan los dos frameworks, pero entre Python y Go elegiría Go. Aun cuando Python es el lenguaje que me da de comer.

Versión escritorio