Picture, el lenguaje de programación del futuro

Ya sabéis que los lenguajes de programación basan su funcionamiento en la lógica y en las matemáticas. Aún recuerdo cuando empecé a estudiar programación, que las primeras clases me retraían a cuando estudiaba lógica en bachillerato dentro de la asignatura de filosofía. Con todas esas variables, sentencias y condiciones que ya había repasado antes sin saber a lo que me iba a dedicar en un futuro. Y es que, hablando de futuro, solemos dislumbrar siempre uno en el que la sociedad está dominada por la inteligencia de las máquinas, cuando, actualmente, las máquinas, ergo los ordenadores, son de lo más estúpido. Vale, vale, antes de que os echéis encima de mi con vuestros improperios os lo voy a explicar detalladamente para que me entendáis. Como programadores sabéis que para que desarrollar una aplicación es necesario dar órdenes a través de nuestro código. Y es que de eso trata la programación, de darle órdenes a una máquina de manera estructurada para que termine creando algo mayor que nos satisfaga. Si partimos de esa lógica, la inteligente no es la máquina, sino nosotros que somos los que dictamos la órdenes, ¿verdad?

La programación es una técnica eficaz y con lo que se desarrollan aplicaciones, sistemas operativos y multitud de tareas informáticas hoy en día. Pero dependiendo del lenguaje de programación hay que teclear más sentencias (líneas de código) o menos. Esto es debido a lo que he comentado antes, al fin y al cabo le estamos diciendo qué hacer a una máquina a través de órdenes cortas que, en base al lenguaje de programación, pueden ser muchas o pocas. Tomad esto como un ejemplo de lo que trato de explicaros:

Haz esto. Una vez que lo hayas hecho comprueba si esto o esto. Ok, si esto repíteme x veces esto.

Y así sucesivamente. Porque el ordenador no piensa, lo hacemos nosotros por él a través de órdenes sencillas. Pero, ¿y si te digo que varios informáticos están estudiando nuevas maneras de programar totalmente novedosas e innovadoras y que poco o nada tienen que ver con los métodos actuales? Pues seguramente te quedarías ojiplático, pero es del todo cierto. Se está desarrollando un nuevo estilo de programación, la programación probabilística, la cual basa su funcionamiento en la probabilidad y la intuición y no en la lógica como veníamos haciendo hasta ahora. Es decir, se trata de aplicar la inteligencia artificial al mundo de la programación, y con esto si que estaremos utilizando máquinas inteligentes.

Con la programación probabilística obligas al ordenador a resolver problemas por sus mismos medios, y no a través de obedecer órdenes como hasta ahora. Se le da a la máquina unas directrices básicas y, en base a su experiencia y a sus datos, le ordenas que lo ponga en práctica. A través de la inferencia buscará el algoritmo adecuado para desarrollar la aplicación en base a que es el más adecuado según las directrices o bien, porque se ha utilizado anteriormente con éxito. ¿Por qué se llama probabilístico? Por esto mismo, porque basa muchas de sus decisiones dependiendo del algoritmo que menos errores cometa y el que más se acerque a la solución correcta.

Este estilo de programación se está implementando ya en nuestros días. Herramientas como el buscador de Google, los filtros antispam o los coches sin conductor que están en desarrollo, ya utilizan estas técnicas de aprendizaje. Y es que la programación probabilística es un gran adelanto debido a que es sencilla y rápida de programar (5000 líneas de código podrían verse reducidas a unas 50) lo que optimiza muy mucho tiempos de desarrollo y por lo tanto los costes de programación. Y también exige menos requisitos de hardware, lo que a nivel de costes se notaría la rebaja también.

Picture pretende ser el lenguaje de programación abanderado de esta nueva manera de hacer las cosas. Está desarrollado por el Instituto Tecnológico de Massachusetts (MIT) como tantos otros lenguajes de programación que sueles utilizar día tras día. Como te he comentado antes, al ser un lenguaje probabilístico, es capaz de llevar a cabo tareas complejas en unas 50 líneas de código, que para un lenguaje de programación tradicional derivarían en 5000 líneas de código.

Vamos a coger el ejemplo que el MIT propuso para la explicación del lenguaje en su conferencia. Imaginemos que queremos convertir una cara en 2D en una imagen en 3D, es decir, renderizar cada pixel de la imagen en 2D para llevarlo a tercera dimensión. Como podrás imaginar, hacer esto mediante alguno de los lenguajes que solemos utilizar día tras día nos llevaría muchísimas líneas de programación. Si lo hacemos mediante Picture, solamente le tendremos que dar las directrices básicas, en plan, una cara tiene dos ojos, un poco más abajo está la nariz y debajo de esta, está la boca, y el lenguaje lo procesaría para generar la imagen en 3D mediante la inferencia. Cabe aclarar que las directrices y la gestión de la cara sería lo que programarían los desarrolladores que, como según han afirmado, requeriría poquísimo código. Utilizando la inferencia, se generan los algoritmos más probables para convertir el rostro 2D a 3D, y los aplica al proyecto. Cuantos más datos reciba el lenguaje, más elementos para calcular la probabilidad tendrá, y por tanto el resultado final será más perfecto.

La programación probabilística es el germen de la inteligencia artificial aplicada al desarrollo y os podéis imaginar la trascendencia que tendrá esto de cara a futuro, a pesar de estar dando aún sus primeros pasos. Esto obliga a los programadores como nosotros a reciclarse, para aprender métodos de programación totalmente desconocidos y novedosos. Como dije en el artículo para reconocer a un buen programador, el desarrollador tipo no se debe cerrar en banda a ninguna tecnología nueva, y Picture pretende ser toda una revolución en el mundo de la programación.

 

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP