El futuro de la programación: Entrevistamos a Andrés Martín y Raúl Fraile

[Total:6    Promedio:4.3/5]

La tecnología informática es una ciencia que ha avanzado a gran velocidad. Desde las tarjetas perforadas y el lenguaje ensamblador, hasta los lenguajes orientados a la programación de dispositivos móvilesMedio siglo en el que hemos visto lenguajes de sintaxis muy simple y otra mucho más compleja.

Charles Babbage, conocido como el Padre de las computadoras, diseñó en 1816 una máquina totalmente mecánica capaz de realizar cualquier tipo de cálculo matemático: La Máquina Analítica. Continuó mejorando el diseño hasta su muerte en 1871. Pero la máquina nunca pudo construirse. Las razones fueron puramente políticas ya que muchos pensaban que podría utilizarse con fines bélicos. La máquina analítica fue construida 150 años después por el Museo de Londres. Ada Lovelace fue la primer persona que se interesó por la inexistente máquina de Babbage y desarrolló un algoritmo capaz de ser utilizado en ella. De allí que Lovelace sea considerada como la primera programadora de computadoras de la historia. 

la máquina analítica. programación

La Máquina Analítica

La tecnología informática ha evolucionado mucho desde aquél momento. Los primeros lenguajes de programación formales nacieron en los años 50. En esta infografía de SiliconAngle se refleja la evolución de la programación a lo largo de estos años:

The Evolution of Programming [Infographic]
Via: ServicesANGLE

Pero, ¿Hacia dónde se encaminan los lenguajes de programación? ¿Cuál va a ser su evolución? ¿Que podemos esperar de la ingeniería informática? Los ingenieros de desarrollo de SeisUnos Andrés Martín y Raúl Fraile -su trabajo abarca todas las áreas del software, sitios y páginas web, mobile, apps, librerías y bases de datos de programación de juegos,  nos han respondido a éstas y otras interesantes preguntas:

¿Qué Lenguaje de Programación tiene más futuro? ¿Por qué?

Andrés: Java y Javascript. Porque tienen detrás compañías como Google o Microsoft que están apostando por ellos y desarrollando herramientas que los utilizan. Porque la comunidad ofrece muchos recursos, son muy asequibles para los desarrolladores y no tienen grandes requerimientos. Porque la tendencia en apps sigue siendo la plataforma móvil y los navegadores.

Otros lenguajes como C++ siempre serán lenguajes de futuro a más bajo nivel.

Raúl: A día de hoy, generalizando, el lenguaje más interesante yo creo que es Javascript. Por su versatilidad, pudiendo ser utilizado en navegadores, servidores… Si hablamos de desarrollo para móvil  los más utilizados probablemente serán Java en la parte de Android y Swift para iOS .

¿Cual es la habilidad más importante que debería tener un programador?

Andrés: La comprensión metodológica. Ser capaz de entender e interpretar un proyecto independientemente del lenguaje que deba utilizar.

Raúl: Lo principal a largo plazo es saber actualizarse porque el mundo de la programación está siempre en continúo cambio y es necesario estar al día en todo momento.

¿Crees que las matemáticas y la física son un conocimiento importante para un trabajador?¿ Por qué?

Andrés: Siempre es conveniente, aunque no lo considero necesario en el ámbito de desarrollo. En ciertos proyectos será de vital importancia, pero en otros podría ser más interesante saber de leyes, de reglas del mercado del alquiler vacacional o de marketing online, por ejemplo.

Raúl: Todo conocimiento es bueno para un trabajador, en cualquier campo, pero tampoco creo que sea necesario ni imprescindible.

¿Cuál crees que será el siguiente acontecimiento importante en programación?

Andrés: Es difícil hacer una aproximación como ésta. Quizá un sistema operativo de Google.

Raúl: Es más un deseo porque veo imposible que pueda llegar a suceder… Lo mejor sería que hubiera un lenguaje y un entorno de programación universal para cualquier plataforma 🙂

¿Qué hace que algunos programadores sean mucho más productivos que otros?

Andrés: Creo que hay dos factores imprescindibles. Conozco desarrolladores con grandes capacidades que por falta de motivación no rinden todo lo que podrían. Esto es un problema de la dirección de equipos y, en última instancia, de la dirección de la empresa para la que desarrollan.

Por otro lado, conozco personas que se dedican al desarrollo por ser una profesión de futuro, a pesar de no resultarles atractivo. Conozco a fantásticos desarrolladores que no tienen estudios superiores, pero si una gran vocación, algo que les ha permitido progresar más que satisfactoriamente que cualquiera en esta profesión.

Por lo tanto, creo que las principales razones por las que unos programadores son más productivos que otros son la motivación y la vocación.

Raúl: La motivación es un factor muy importante para la productividad. También es importante la formación. Pero la productividad no es el principal objetivo de un programador. Su principal función debe ser siempre la calidad del propio desarrollo y del producto final.

Una herramienta de trabajo sin la que no puedes vivir y qué ojalá la hubieras ideado tú…

Andrés: No podría quedarme solo con una. Skype, Eclipse, CakePHP, GIT… Cualquiera de ellas es importante, cualquiera es imprescindible y considero que cualquiera de ellas es una gran herramienta en cuyo desarrollo hubiera sido interesante participar.

Raúl: Me quedo con Skype.

¿Qué es más fácil, programar para android o para iOS?

Andrés: En lo que se refiere a la programación, no veo una diferencia clara. Son dos lenguajes y cada uno tiene sus particularidades. Sí pueden existir diferencias en otros aspectos que pueden marcar, según cada desarrollador, la preferencia hacia una u otra plataforma. Android, por ejemplo, es código abierto y permite ver el funcionamiento interno de librerías o SDK. Utiliza un lenguaje muy extendido (Java), con lo que eso supone de cara a encontrar documentación o información, tiene más flexibilidad a la hora de distribuir la app o a la hora de utilizar opciones (p.e. compras in-app). Pero, por otro lado, la existencia de un número tan elevado de terminales distintos o de versiones diferentes de sistemas operativos Android, hace que pueda ser difícil hacer apps universales y siempre podemos encontrar problemas de compatibilidad.

Por su parte iOS es una plataforma menos flexible, algo que en ocasiones es una ventaja, pues facilita la homogenización, estandarización del desarrollo y distribución. pero en otras ocasiones se convierte en un inconveniente, ya que nos obliga a asumir las reglas que marca Apple en la distribución y el funcionamiento.

Raúl: Claramente para iOS. Hay dos problemas muy claros que presenta el desarrollo de Android.

El primero la falta de un único entorno de programación. Esto hace dependiente los proyectos del entorno y plataforma donde se desarrolló, complicando la portabilidad. Últimamente parece que con Android Studio este problema se va estabilizando. En iOS la programación con XCode está totalmente generalizada.

El segundo problema en Android es la multitud de fabricantes de móviles, de modelos diferentes y de versiones del sistema operativo en los que hay que probar y hacer funcionar las aplicaciones. Con iOS el parque de móviles es mucho más reducido y son totalmente compatibles entre si.

Y tú, ¿Estás de acuerdo con estas apreciaciones? ¿Hacia dónde crees que nos van a llevar los nuevos lenguajes de programación? Si quieres que nuestro equipo resuelva alguna de tus preguntas, no dudes en ponerte en contacto con nosotros.

[Total:6    Promedio:4.3/5]
 

 

Related posts