Continuamos con la lista de 10 lenguajes de programación emergentes iniciada desde la semana anterior. Al final les ofrezco algunos comentarios.

6. Kodu

  • Creado por: Anderson, Cheng y MacLauring, del grupo de Sistemas Creativos de Microsoft Research.
  • Año de creación: 2009.
  • Paradigma: Visual.
  • Descripción: Kodu no es un lenguaje de programación visual únicamente, también es un ambiente para diseñar, construir y jugar tus propios videojuegos. Los programas están compuestos de páginas, a su vez desglosadas en reglas, y luego éstas en condiciones y acciones. Los elementos básicos del lenguaje son puramente íconos. Incluye 20 personajes con diferentes habilidades.
  • Inspirado en: Logo y Squeak.
  • Instalación: Descarga (gratuitamente) e instala para Windows XP, Vista y 7. También para Xbox 360.
  • Ejemplo:

7. Scala

  • Creado por: El Dr. Martin Odersky, investigador del pretigioso EPFL.
  • Año de creación: 2003.
  • Paradigma: Multiparadigma; orientado a objetos (puro), funcional, imperativo.
  • Descripción: Fue programado en Java, y puede interactuar directamente con este lenguaje. Todo es un objeto, incluso los números. Su abstracciones pretenden ser más poderosas y uniformes. Fue creado con la idea de que la programación sea orientada a componentes.
  • Inspirado en: Smalltalk, Haskell, Erlang.
  • Instalación: En Ubuntu: sudo apt-get install scala
  • Ejemplo:

   object Numeros {
    def main(args: Array[String]) {
     for (i <- 1 until 11)
      print(i+" ")
    }
   }

8. Ioke

  • Creado por: Ola Bini, uno de los principales programadores de JRuby.
  • Año de creación: 2008.
  • Paradigma: Orientado a objetos, prototipado.
  • Descripción: Dinámico, fuertemente tipeado, corre sobre la JVM y la CLR. Se dice que es código plegable, es decir, código que crea código. Como lenguaje, su principal objetivo es ser expresivo.
  • Inspirado en: Smalltalk, Lisp, Ruby.
  • Instalación:

    1. Descarga y descomprime
    2. Ioke y otros ejecutables están en el directorio ./ioke/bin
  • Ejemplo

      x = 1
      until(x == 11,
        "#{x} " print
        x++
      )
    

9. Trylon

  • Creado por: Steve Folta, reconocido ex-programador de BeOS.
  • Año de creación: 2007.
  • Paradigma: Orientado a objetos.
  • Descripción: Usa indentaciones para estructurar los programas, igual que Python; con sintaxis similar a la de Smalltalk. Usa tipeado dinámico en los objetos, aunque los programas se compilan (estáticamente) con un compilador de lenguaje C.
  • Inspirado en: Python, Smalltalk.
  • Instalación:

    1. Descarga y descomprime
    2. Entra al directorio
    3. En Ubuntu instala los archivos de cabecera del recolector de basura: sudo apt-get install libgc-dev
    4. make
    5. sudo make install
  • Ejemplo:

   trylon numeros
   main: args
     x = 1
     while x <= 10
      print: x string + " "
      x+=1

10. Objective-J

  • Creado por: 280 North, Inc., empresa formada por ex-empleados de Apple.
  • Año de creación: 2008.
  • Paradigma: Multiparadigma: Reflectivo, orientado a objetos, funcional, imperativo.
  • Descripción: Como el nombre lo dice, es una implementación de Objective-C en JavaScript. La sintaxis es casi idéntica al primero. Como el compilador está creado con JavaScript, no es necesario instalar ningún complemento para el navegador. El framework Capuccino ---que implementa el API de Cocoa--- está escrito con Objective-J.
  • Inspirado en: Objective-C y JavaScript.
  • Instalación:

    1. Descarga y descomprime
    2. Prueba la instalación abriendo con el navegador el archivo /Starter/NewApplication/index.html
  • Ejemplo: Por razones de espacio sólo presento la función que implementa un botón al que con cada clic aumenta en uno el valor de una variable, lo cual se muestra en el navegador. Si la variable rebasa el valor de 10, se reestablece a 0.

      - (void)numeros:(id)sender {
          if ([label stringValue] == "Números!!") {
              i=i+1;
              [label setStringValue:i];
          }
          else {
              i=i+1;
              [label setStringValue:i];

              if ([label stringValue] == 11) {
                  [label setStringValue:"Números"];
                  i=0;
               }
          }
      }

Comentarios

La elaboración de esta lista estuvo inspirada por la del campamento de lenguajes de programación emergentes de la Open Source Conference sucedida hace muy pocos días. Los lenguajes presentados aquí fueron elegidos por obra del azar ---y la curiosidad, siempre.

Como habrán notado ya, la mayoría de los lenguajes son jóvenes, aunque con diferentes niveles de madurez. Se observa una fuerte tendencia a ser construidos encima de plataformas como la Java Virtual Machine y la Common Language Runtime. Muchos de ellos son multiparadigma, pero sobre todo orientados a objetos, siempre con el ánimo de ser expresivos a la vez que sencillos. Smalltalk sigue siendo un modelo a seguir.

Quedaron una inmensidad de lenguajes en el tintero, algunos más raros y experimentales que otros: el flexible ooc, el prudente noop, el humilde coherence, el funcional ur, el concurrente coffescript,... Y muchos más, por supuesto.

Les invito a realizar el ejercicio de probar nuevos lenguajes de cuando en cuando. El conocimiento de nuevos paradigmas enriquecerá su programación con impensables e interesantes formas de modelar el mundo.

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

También en Hipertextual: