6 nuevos lenguajes de programación creados para la nube, IA y Bitcoin

Nuevos lenguajes de programación

Hoy te mostraremos 6 nuevos lenguajes de programación recientemente creados que probablemente no conocías y que podrían revolucionar el desarrollo de software en el futuro.

Desde la aparición de los primeros lenguajes de programación, desarrolladores independientes y empresas han creado nuevos lenguajes. ¿El motivo? Introducir nuevas características, ampliar las capacidades, corregir deficiencias de lenguajes antiguos o simplemente crear lenguajes para tareas específicas.

Aquí veremos una lista de los más novedosos lenguajes, alguno de los cuales están enfocados en áreas de gran tendencia como la inteligencia artificial (IA), Bitcoin y la nube.

Nuevos lenguajes de programación

  1. Ecstasy, creado para la nube
  2. Bel, un lenguaje de programación estilo LISP
  3. Miniscript, el lenguaje para Bitcoin
  4. Gen, un nuevo lenguaje de programación de IA
  5. Bosque, el lenguaje de Microsoft para los desarrolladores modernos
  6. V, de código abierto y muy similar a Go

1. Ecstasy, creado para la nube

Ecstasy es el primer lenguaje de programación de código abierto diseñado para la era de la programación en la nube.

Cameron Purdy
Cameron Purdy

“Ecstasy es un lenguaje de programación modular de uso general, seguro para los tipos, creado para la nube. […] es un lenguaje que se centra en la seguridad, la composición y la legibilidad, pero está diseñado con la intención explícita de repositorios, integración continua (CI), devops, implementación continua, portabilidad en la nube y del cliente, integración perimetral/CDN/5G y sistemas geográficamente distribuidos”.

Cameron Purdy

Creado en 2019 por Cameron Purdy y Gene Gleyzer, Ecstasy tiene las siguientes características:

  • Escalable: minimiza la cantidad de sorpresas potenciales de los cambios en el código. Además, incluye soporte fundamental para todo el ciclo de vida de desarrollo de software, incluidas versiones y actualizaciones, simulación y pruebas, y gestión de dependencias.
  • Seguro: el código que se ejecuta dentro de un contenedor Ecstasy no tiene acceso a ningún sistema operativo o recursos de hardware.
  • Portátil: Ecstasy es un lenguaje completo de Turing con un formulario de compilación intermedio bien definido que puede ser dirigido a casi cualquier sistema operativo y entorno de hardware.
  • Reutilizable: Ecstasy aborda el desafío de la reutilización de varias maneras, pero la más obvia es a través de su soporte para la programación modular.
No te puedes perder:  Los 50 lenguajes de programación más utilizados

Hola Mundo en Ecstasy:

module HelloWorld
    {
    void run()
        {
        @Inject Console console;
        console.println("Hello World!");
        }
    }

El proyecto aún está en desarrollo. Puedes obtener más información en su repositorio público de GitHub o en su sitio web.

2. Bel, un lenguaje de programación estilo LISP

Bel es un nuevo lenguaje de programación presentado en octubre de 2019 y creado por Paul Graham, el cofundador de Y combinator.

Se trata de un dialecto del lenguaje Lisp que tiene la intención de reflejar lo más posible la especificación este último.

Paul Graham
Paul Graham

“Bel es un intento de responder a la pregunta: ¿qué sucede si, en lugar de pasar de la fase formal a la fase de implementación lo antes posible, intenta retrasar ese cambio el mayor tiempo posible? Si sigue usando el enfoque axiomático hasta que tenga algo parecido a un lenguaje de programación completo, ¿qué axiomas necesita y cómo se ve el lenguaje resultante?”

Paul Graham

Según su creador, Bel tiene cuatro tipos de datos fundamentales: símbolos, pares, caracteres y corrientes. Además, la ejecución de un programa en este lenguaje consiste en la evaluación de expresiones. Todos los objetos Bel son expresiones, por lo que la palabra “expression” es simplemente una declaración de intenciones: significa un objeto que espera ser evaluado.

Si quieres obtener más información sobre Bel, puedes ver su guía, su código fuente y algunos ejemplos. Y aunque Paul afirma que “[Bel] no es un lenguaje que pueda usar para programar computadoras”, anima a la comunidad a “[…] intentar escribir una implementación basada en Bel” donde él será uno de los primeros usuarios.

> (cons \h "ello")
"hello"

3. Miniscript, el lenguaje para Bitcoin

Miniscript es un lenguaje que tiene como objetivo facilitar a los programadores escribir “contratos inteligentes” o condiciones para gastar Bitcoins.

Pieter Wuille
Pieter Wuille

Creado por el programador Pieter Wuille, Miniscript permite escribir (un subconjunto de) Scripts de Bitcoin de forma estructurada, permitiendo análisis, composición, firma genérica y más.

Usando Miniscript es posible:

  • Crear software que pueda manejar la composición de las políticas (por ejemplo, tenga fondos en una configuración 2 de 3 donde una de las 3 “claves” es en sí misma una política que involucra quizás múltiples dispositivos y tiempos de espera).
  • Compilar políticas de gasto complejas a scripts eficientes.
  • Determinar bajo qué condiciones necesarias y/o suficientes puede ser un script satisfecho.
  • Realizar un análisis estático para ver si alguna de las limitaciones de recursos de Script (límite de operaciones, tamaño de la pila, etc.) podría interferir con la capacidad de gastar.
No te puedes perder:  Historia de los lenguajes de programación [Infografía]

Por ejemplo, el script:

<A> OP_CHECKSIG OP_IFDUP OP_NOTIF OP_DUP OP_HASH160 <hash160(B)>
  OP_EQUALVERIFY OP_CHECKSIGVERIFY <144> OP_CSV OP_ENDIF

en notación Miniscript sería:

or_d(c:pk(A),and_v(vc:pk_h(B),older(144)))

Puedes obtener más información en el sitio web del proyecto. También puedes ver su implementación en C++ y en la biblioteca Rust.

4. Gen, un nuevo lenguaje de programación de IA

Gen es un lenguaje de programación probabilística (PPL) de propósito general creado por investigadores del Instituto de Tecnología de Massachusetts (MIT).

Basado en el lenguaje de programación Julia, Gen puede ser usado para aplicaciones de inteligencia artificial. Por ejemplo, visión artificial, robótica y estadística. Y lo mejor, es que no tienes que lidiar con ecuaciones o escribir manualmente código de alto rendimiento.

“Gen es el primer sistema que es flexible, automatizado y lo suficientemente eficiente como para abarcar esos tipos muy diferentes de ejemplos en visión por computadora y ciencia de datos y brindar un rendimiento de vanguardia”.

Vikash K. Mansinghka, investigador del MIT

Con Gen, es posible escribir modelos sofisticados y algoritmos de inferencia utilizados para tareas de predicción, que anteriormente no eran factibles.

Además, dada su simplicidad, Gen puede ser utilizado tanto por expertos como por principiantes.

Ejemplo de código:

using Gen

@gen function my_model(xs::Vector{Float64})
    slope = @trace(normal(0, 2), :slope)
    intercept = @trace(normal(0, 10), :intercept)
    for (i, x) in enumerate(xs)
        @trace(normal(slope * x + intercept, 1), "y-$i")
    end
end

Si te interesa, puedes encontrar más información en su sitio web.

5. Bosque, el lenguaje de Microsoft para los desarrolladores modernos

Bosque es la nueva propuesta de Microsoft con la que busca aumentar la calidad del software y aumentar la productividad del desarrollador.

No te puedes perder:  Los 10 lenguajes de programación más populares

Se trata de uno de los más nuevos lenguajes de programación diseñado para que escribir código sea “simple, obvio y fácil de razonar”.

Mark Marron
Mark Marron

Creado por el científico informático Mark Marron de Microsoft, Bosque está fuertemente inspirado por la sintaxis y los tipos de TypeScript. Además, aspira a ser un lenguaje para los desarrolladores modernos. Pues rechaza gran parte de la complejidad tradicionalmente asociada con los lenguajes de programación.

Una de sus principales características es que todos los valores en el lenguaje son inmutables. Además, tiene soporte de operaciones algebraicas masivas para lecturas masivas y actualizaciones de valores de datos.

Ejemplo de código:

//Functor (Bosque) 

var a = List[Int]@{...}; 
//Pre: true 

var b = a.map[Int](fn(x) => x*2); 
//Post: List[Int]::eq(fn(x, y) => y == x*2, a, b)

Después de un año de desarrollo, Bosque fue presentado en abril de 2019. Para saber más de este lenguaje, puedes leer este documento en PDF o bien visitar su repositorio en GitHub.

6. V, de código abierto y muy similar a Go

V es un nuevo lenguaje de programación que dice ser simple, rápido y seguro para desarrollar software.

Nuevo lenguaje de programación V

Creado por Alexander Medvednikov, V es un lenguaje de tipo estático muy similar a Go e influenciado por Oberon, Rust, Swift.

Principales características:

  • Seguridad: sin valores indefinidos y sin variables globales.
  • Rendimiento: tan rápido como C y con una cantidad mínima de asignaciones.
  • Compilación rápida: compila entre 100k y 1.2 millones de líneas de código por segundo por núcleo de CPU.
  • Compilador pequeño: el lenguaje completo y su biblioteca estándar son menos de 1 MB.
  • Traducción C: V puede traducir todo su proyecto C.
  • Recarga de código activo: obtener cambios al instante sin recompilar.
  • Potentes bibliotecas de gráficos: biblioteca de dibujo multiplataforma construida sobre GDI + / Cocoa Drawing.

Finalmente, respecto a la gestión de memoria, su creador reconoce que no es lo suficientemente segura, pero que está en constante mejora.

Hello World en V:

fn main() {
	println('hello world')
}

Para saber más sobre V, visita su sitio web y su repositorio de GitHub.

¿Qué te parecieron estos nuevos lenguajes de programación? ¿Crees que tienen futuro?

Déjanos saber tu opinión en los comentarios.