¿Cuál es el futuro de la programación?

Creo que mi respuesta no es practica y tal vez vaya más al futuro de lo que preguntas. Esto no te sirve para saber que lenguaje va a ser redituable.

Hoy todo se programa, y diversos lenguajes de programación son utilizados para diversos dispositivos y sistemas. Especialmente con IOT (Internet of things absolutamente todo se programaría, desde una cafetera, un ascensor, hasta el propio envase de leche reconociendo que está siendo comprado)

Esto hace que haya una gran necesidad de programadores dado que la programación no es trivial. No se puede automatizar la programación si bien hay muchos intentos de haberlo hecho.

Por otra parte en la humanidad no habrá suficientes personas que les guste programar. Dado que les va a gustar la música, la arquitectura, y muchas otras cosas.

Entonces no va a haber gente suficiente para todo lo que se necesita. Los puestos abiertos que quedan para programadores son un problema hoy mismo, mas la gran cantidad de programadores sin una calidad aceptable y de empresas que venden software de baja calidad para ser mejorado después hacen que haya todavia mas trabajo.

Entiendo que frente a esto la solucion será en el futuro, que se enseñe programacion como hoy se enseña a escribir, aun a quienes no tienen la vocacion de ser escritores, y con el tiempo surgiran lenguajes mas cercanos al usuario comun para que generen scripts que le permitan enfrentarse con darle instrucciones a un dispositivo o a un sistema mas complejo sin un expertise demasiado alto.

Hasta cuánto ganarán los programadores

Siendo que será una actividad cada vez más demandada, se podría pensar que los sueldos de los progamadores subirían indefinidamente.

Tendrán mucha más demanda por cierto… pero como todo… no creo que crezcan los sueldos indefinidamente. Antes de que los programadores junior ganen como los futbolistas estrella..… la humanidad habrá reconocido tener un problema… y buscará una solución.

Para ser más preciso, la humanidad «lo verá» como un problema. Dado que los sueldos en general son como una recompensa que se le paga a alguien que hace algo, pero tiene un ingrediente social … que es el valor que la sociedad quiere darle a esa actividad.  Y aún hoy, por ejemplo, la humanidad tiene ciertos parámetros  como que alguien que «estudió» debería naturalmente «ganar más» que alguien que no estudió. Como si las sociedades tuvieran que «indemnizar» a los que usaron ciertos años de sus vidas para estudiar.

Me parece más natural en pensar que el estudio fue una estrategia para tener una preparación previa para la vida laboral que le daría una ventaja sobre los que no estudiaron en esa área. Pero ese es otro tema…. A lo que me refiero es que los sueldos tienen un ingrediente social que tiene que ver con cuánto una sociedad quiere recompensar a alguien por un valor que agrega.

Una solucion a este dilema social y de población podría ser que se generen nuevos lenguajes, muy simples, o accesibles popularmente, que permitan a los «no programadores» resolver los problemas más comunes … o se van  a establecer procesos que permitan bajar el nivel de expertise de los que programan, y uno mismo se haga sus programas

Tal como hoy hay «administrativos» por ejemplo … que no nacieron para ser administrativos sino que lo hacen por el dinero, en el futuro cercano habrá programadores que no se enfrenten con la locura de quedarse en los afters en medio de las cervezas hablando de algoritmos.… sino que también…. como tantas otras profresiones harán propia la frase «menos mal que es viernes».

Como antes, cuando la corte tenia un musico que les componia y lo exhibian en las fiestas, y hoy te bajas el mp 3 de uno de los temas que te gustan…. Igualmente, la programacion en si… tendra un punto en que no dejará de ser compleja… pero estaremos dispuestos a conformarnos con soluciones más standards. Y si bien los mejores músicos y mejores pintores podían tener vidas más acomodadas, nunca llegaría el momento en que ganaran más que el rey. (Si bien otras profesiones como la de militar, en ciertos casos le permitiera aspirar a ser «emperadores»).

Hoy con los futbolistas veo algo parecido, ya se asimila y se hace común que algunos jugadores estrella ganen más que los directores técnicos del mismo equipo, pero tengo mis dudas de que esa relación sea cierta con respecto a la relación de ganancias con los «dirigentes de clubes» o de «asociaciones» futbolísticas.

Características de la programación del futuro

Creo 2 cosas acerca de la programación del futuro

  • Surgirán muchos más lenguajes tendientes a la simplificación

Como los lenguajes naturales, los lenguajes de computación tenderán a la simplificación.  Ya sea por expresar de forma más simple instrucciones u objetivos complejos, o por enfocarse en áreas específicas. Esta es una respuesta natural que se me ocurre que dará la solución al problema de la población escasa de programadores.

Esto no quiere decir que siempre serán más simples. Como en computación y otras actividades humanas, las modas inciden y los ciclos ocurren.  En la arquitectura «Cliente / Servidor» vivimos muchas idas y vueltas . Más del lado del cliente… clientes más inteligentes… seguidos con periodos de servidores más potentes y clientes más tontos.

Los mismos ciclos seguirán ocurriendo con los lenguajes de programación. Pero es cierto que los lenguajes «más simples» elevan la vara… y frente a algo simple y algo complejo… lo complejo se empieza a volver obsoleto.

Cuando esto ocurre, el lenguaje permite que uno se atreva a más … a enfrentar otro tipo de problemas por lo que de nuevo surgirá un lenguaje más potente y complejo… luego de lo cual… el perfeccionamiento lo permitirá simplificar.

Pero aún dentro de estos ciclos es natural pensar que la tendencia general será hacia la simplificación.

El efecto social de las funciones lambda

Uno de los ejemplos de «complicación» que puedo citar son las funciones lambda que surjen en muchos lenguajes y que permiten expresar muchas operaciones con una sola línea.

Pero las funciones lambda permiten algo todavía más importante. Y es alimentar el ego de los desarrolladores y permitir excluir a un grupo de inadvertidos que inicialmente creen que están frente a una actividad compleja. Es como una protección corporativa de los que ya saben programar. En otras profesiones esto se dio, tratando de armar una «licencia habilitante» para excluir a los que no habían estudiado. Pero el mundo del software está mucho más orientados a los resultados y el prestigio no se da simplemente por haber sido uno de los pocos que accedió a cierto instituto educativo, sino a los problemas que resuelve.  Mucho más en una sociedad que gracias a la tecnología eliminó muchos intermediarios y como consecuencia… muchos filtros y obstáculos para hacerse conocido.

Pasamos de los sistemas que tenían que ser «legibles» y «parecidos al lenguaje natural» a «expresar todo en una línea».

Pero no me cabe duda de que en el futuro no cercano, aparecerá algún impertinente que diga «El rey está desnudo».. y que diga «¿Que me importa tener 5 renglones más si eso me permite resolver el trabajo pagandole menos al que lo hace …. y encontrandolo mucho mas rapido sin que resuelva tests de inteligencia para trabajar en una central nuclear?»

Entonces estas «complejizaciones» sociales de los lenguajes no demoran mucho en impertinentes innovadores que las derriban con lenguajes más simples.

  • Seguirá siendo una actividad humana

La simplificación muchas veces quiere decir «automatizar» o darle mayor capacidad expresiva al lenguaje, y menor incidencia al humano que la dirige,  para pemitir actuar acertadamente frente a «indicaciones simples» del «programador» .

Más bien que quedarse conforme con lo que los lenguajes de programación resuelven, lo natural es que la simplificación que nos brinda una mayor capacidad expresiva para dar instrucciones a una máquina, nos sitúa en una nueva posición en la que tendremos nuevos desafíos y principalmente la ambición de resolver problemas más complejos.

Supongamos que tenemos que un lenguaje de programación que haga un juego de un tiburón escapando de pescadores con un lenguaje extremadamente sencillo. Ese «compilador» o «interprete» tiene que haber sido programado por alguien. Pero supongamos que «ya» existe. y que nos parece que es lo suficientemente expresivo para no necesitar más. Que a partir de ahora todo lo podemos expresar con ese lenguaje y no necesitamos programar más.

Entonces … programemos nuestro juego

Escribimos la instrucción

"Hacer juego de tiburón escapando de pescadores 
como a mi me gusta"

Ese es nuestro programa.

El compilador genera la aplicación y ya la podemos usar.

Ahora se nos plantea otro desafío.

"Hacer juego de tiburón escapando de pescadores 
como a mi me gusta 
ocupando menos memoria final"

o

"Hacer juego de tiburón escapando de pescadores 
como a mi me gusta 
que compile más rápido"

Estas ultimas clausulas evidentemente necesitarán una ampliación del lenguaje, o una reprogramación del compilador... y es en ese punto de la «era de lenguajes simples» donde los programadores volverán a ser necesarios y el ciclo se volverá a activar.

Nunca será todo automatizado.

 

Adjunto un video con un alcance futuro mas acotado (y mas practico) que muestra las profesiones que se prevee que se pidan mas durante este 2019. Puedes hacer tu propio analisis consultando bases grandes como indeed o upwork

7 empleos con más demanda en cloud
7 empleos con más demanda en cloud

Deja un comentario