Saltar al contenido

Lenguajes de programación, big data y la IA

Existe un problema que es consustancial al ser humano y es la resistencia al cambio.

Java y C copan hoy en día el índice Tobei pero el lenguaje Python ha subido a la segunda posición cambiando la tendencia después de veinte años. La subida de python se debe mayoritariamente por su uso en la inteligencia artificial por lo que es lógico su gran aumento.  Hay algo obvio en estas apreciaciones es que Java está llegando a su obsolescencia aunque trate de adaptarse al futuro. En los últimos cinco años Java ha ido incorporando varias características de los lenguajes funcionales para tratar de convertirlo en multiparadigma, gracias a ello,  la migración no ha sido masiva a día de hoy.

Los lenguajes como cualquier cosa en la vida  se vuelven un hábito difícil de abandonar porque nos aferramos a lo conocido pero llega un momento en el cual comienzas  a ver que no son tan resolutivos como eran anteriormente, se vuelven tediosos, y es entonces cuando te planteas realmente el cambio. Mientras las limitaciones de los lenguajes orientados a objetos no se vuelvan un quebradero total de cabeza no vamos a ver una migración masiva, será un cambio muy lento pero irreversible.

“Un cambio total de pensamiento y obra (paradigma) nos llevará posiblemente unos veinticinco años”

Si nos apoyamos en la (Ley de Moore) podemos ver como la evolución de los micro-chips ha sido imparable y se ha ido cumpliendo hasta nuestros días su crecimiento es brutal. En 26 años el número de transistores en un chip se ha incrementado 3200 veces. Ha llegado a su máximo en esta década por un estancamiento que es consecuencia del límite físico de la tecnología actual. 

La Ley de Moore nos dice que un servidor que tiene  un procesador de 48 cores hoy, en 5 años tendrá 192 cores.   El ordenador personal que hoy vale 3000 euros costará la mitad el año próximo y estará obsoleto en dos años. Otra consecuencia directa de la ley de Moore es que los precios bajan mientras que las prestaciones suben. 

Siguiendo esta dinámica, en 2030 podremos ver procesadores con tantos cores como neuronas tiene un cerebro humano y en 2045 tendrán tantos cores como neuronas tiene toda la humanidad en su conjuntoPodemos deducir que la computación seguirá creciendo exponencialmente así como sus procesadores y la inteligencia artificial.

“Siempre que una tecnología se acerque a algún tipo de barrera, se inventará una nueva tecnología que nos permitirá cruzar esa barrera.” (Kurzweil)

¿Más procesadores equivalen a mayor resolución?

Hoy en día desaprovechamos casi todos los cores porque los lenguajes de programación que usamos no han evolucionado al mismo ritmo. Nos encontramos a un solo procesador sobrecargado con todo el trabajo mientras que los procesadores del alrededor son infrautilizados. El procesador supra-utilizado se calienta a unos niveles brutales hasta que colapsa y se inhibe.

De hecho hoy en día existen súper ordenadores como el DGX-1 está disponible por unos 150.000€ y el DGX-2 por unos 400.000€. “El quid de este sistema es la capacidad de procesamiento y su velocidad, puesto que las 16 GPUs están agrupadas en un espacio de memoria unificadas, lo que permite mantener cargas de trabajo de manera constante sin mucho sufrimiento.” NVIDIA está diciendo que el DGX-2 “es capaz de completar el proceso de capacitación para FAIRSEQ, un modelo de red neuronal para la traducción de idiomas, 10 veces más rápido que un sistema DGX-1, reduciéndolo a menos de dos días en total en lugar de de 15”.

El problema está en que no se ha gestado la misma evolución en los lenguajes de programación para aprovechar los avances que la computación nos ofrece. Tenemos ante nosotros la robótica, la realidad aumentada, el deep learning, las redes neuronales que necesitan de esa gran capacidad de cores para poder llevarse a cabo, y sin lenguajes de programación que puedan procesarlos adecuadamente estaremos desaprovechando todo lo que nos deparan los continuos avances tecnológicos.

Necesitamos adaptarnos cuanto antes a una realidad que en los próximos años será algo habitual con capacidades de procesamiento y rapidez cada vez mayores lo que permitirá mantener cargas de trabajo a los procesadores extremas sin mucho sufrimiento. (esto es factible con la dgx-2 actualmente).

Tenemos a nuestra disposición los sistemas concurrentes que permiten que un cluster de procesadores operen en el mismo trabajo computacional sin fisuras. En un futuro próximo disfrutaremos en cualquier empresa de estas características y no podemos cerrar los ojos ante esta evidencia científica. Si queremos aprovechar como sociedad avanzada estos cambios disruptivos que nos abocan a la 5º revolución industrial  casi saltándonos la 4º en el trayecto.

Este planeta está produciendo y almacenando  flujos masivos de información y contenido digital en una escala incuantificable para un ser humano.  Los avances en inteligencia artificial (IA) y robótica están rompiendo todas las barreras entre humano vs máquina con todo lo que ello conlleva para el avance de la humanidad. Los lenguajes de programación (y nuestra adaptación) deben de evolucionar al mismo ritmo que los procesadores y la IA. Esto nos lleva a predecir que requerimos lenguajes de programación que soporten toda esta avalancha de datos y funcionalidades. 

Adaptación del mercado a la nueva realidad

En Estados Unidos y en el resto del mundo según reflejan las estadísticas el cambio de tendencia es innegable. Los lenguajes recurrentes y funcionales (Erlang, Go, Elixir,…) son los más demandados actualmente. Todavía quedan años de transición pero no podemos omitirlo. Esto nos demuestra que el mercado no se equivoca sabe cúal es el camino a seguir. PHP ni siquiera aparece en los mejor pagados y más demandados en las ofertas laborales para desarrolladores.

¿Por qué Hidup apuesta por Erlang vs Elixir?

Creemos firmemente en estos lenguajes por razones muy claras.  Erlang y Elixir, son recomendable para g desarrollar sistemas distribuidos, en los llamados microservicios, docker o si tienen que ver con sistemas concurrentes, para lo que Erlang es esencial. Erlang Lleva más de 30 años en este campo. 

Una de las razones por las qué Erlang y Elixir se demandan tanto  es su desarrollo en el Internet de las Cosas. Uno de lo grandes problemas al implementar estos sistemas tan sofisticados es la actualización de cada elemento conectado, algo que con Erlang se agiliza, puesto que tiene elementos para hacerlo; el bajo consumo también es muy destacable, no necesita mucha memoria, ni un procesador grande, algo que beneficia al back-end, que maneja  cientos de conexiones, debido a que está concebido para manejar esto, ya que es capaz de manejar muchas conexiones.

Cuando vemos los esfuerzos de Java con Akka, un framework y biblioteca, que emula claramente a Erlang, da a entender que si manejas Erlang tendrás trabajo de Java en Akka fácilmente, algo que en la actualidad está muy bien remunerado.  Por eso es tan demandado Elixir y Erlang en América latina, Europa y Estados Unidos.

Con el crecimiento masivo de usuarios a nivel mundial en internet, el futuro es funcional, y Elixir es un lenguaje que facilitará la transición a este paradigma a todo tipo de programadores.

La comunidad de desarrolladores está creciendo de forma exponencial, y facilita que se puedan crear frameworks  como Phoenix hecho para desarrollar aplicaciones web muy potente y con un rendimiento realmente espectacular. No existe lenguaje más rápido que Ruby hoy en día pero con Elixir tienes las bondades de Erlang unido  a unas prestaciones que colindan al rendimiento de Ruby.

 Todas estas cualidades aunadas hacen que Elixir se convierta en un lenguaje  de suma importancia cuando tienes que proveer a millones de usuarios  en el todo el mundo

 

Compañías tan famosas como Whatsapp, Facebook, Rackspace, Bet365, Ericsson y Pinterest  Warcraft, Heroku, Machine Zone, TMobile, Discord, Pager Duty, Moz, Amazon y WhatsApp utilizan Erlang como base principal de su operación, soportando a miles o millones de usuarios simultáneamente y ofreciendo servicios que ofrecen el 99.99% de disponibilidad.

Las empresas más importantes del mundo no pondrían en manos de Erlang y Elixir sus negocios si realmente no fuesen el presente y el futuro de la programación a todos los niveles y en todos los campos. 

En Hidup consulting apostamos por los lenguajes más avanzados para crear todos nuestros productos y por ello nos sentimos muy orgullosos de seguir trabajando para allanar el camino a las nuevas generaciones.