Lenguajes de programación emergentes (1a. parte)

Por Alan Lazalde el 26 de Julio de 2010 en Destacadas, Software Libre.

Los lenguajes de programación son mi fascinación. No sólo se trata de programar/codificar con ellos. Se trata también de conocer los detalles de las diferentes sintaxis, así como la expresividad que tiene cada uno para resolver problemas de todo tipo. Cada uno, como sucede con cualquier idioma hablado, es una forma de ver y entender el mundo.

clojure source code Lenguajes de programación emergentes (1a. parte)

En lo que sigue te presento la primera parte de dos sobre 10 lenguajes de programación emergentes. Todos son libres/abiertos. Todos son raros, únicos de alguna manera ---allí comienza mi curiosidad---. Casi todos tienen menos de 10 años de vida. Los hay orientados a objetos, funcionales, orientados a pila y más. Y no es que debas probarlos todos, pero sí te invito echarles un vistazo con el mismo espíritu con el que un arqueólogo descubre lenguajes inimaginables. En todos los casos presento una breve ficha técnica, así como un ejemplo: no el clásico "Hello, world!", sino un pequeño programa para listar los números del 1 a 10. Da clic en los títulos para ir a la página oficial del lenguaje en cuestión.

1. Io

  • Año de creación: 2002.
  • Paradigma: Orientado a objetos, basado en prototipos (como en JavaScript).
  • Descripción: Simple, muy dinámico, introspectivo y concurrente. Multiplataforma y extensible. Fue diseñado para unir la expresividad de Smalltalk con la velocidad de C.
  • Inspirado en: Smalltalk (principalmente), Lisp, Lua, Self.

  • Instalación: En Ubuntu:

    1. Descarga
    2. Descomprime
    3. Ingresa al directorio
    4. mkdir build && cd build
    5. cmake ..
    6. sudo make install
    7. ldconfig
  • Ejemplo:

      for ( i, 1, 10, write(i, " ") )
    

2. Clojure

  • Año de creación: 2007.
  • Paradigma: Funcional, pero de propósito general.
  • Descripción: Compilado, eficiente, robusto, multihilado, con sistema de macros. Corre sobre dos máquinas virtuales: JVM y CLR.
  • Inspirado en: Lisp, Haskell.
  • Instalación:

    1. En Ubuntu: sudo apt-get install clojure.
    2. De otra forma, descarga el código; entonces compila e instala con ant.
  • Ejemplo:

      (dotimes [i 10] (print (inc i) ""))
    

3. D

  • Año de creación: 1999.
  • Paradigma: Multiparadigma, pero sobre todo orientado a objetos e imperativo.
  • Descripción: Es muy parecido a C/C++, pero intenta ser mucho más práctico. Gdc y ldc son compiladores libres para el lenguaje D.
  • Inspirado en: C++, Java.
  • Instalación:

    1. En Ubuntu: sudo apt-get install gdc
    2. De otra forma, descarga el código oficial, descomprime y entra a ./dmd/linux/bin.
  • Ejemplo:

      import std.stdio;
    
      int main()
      {
                for (int i = 1; i <= 10; i++)
                            writef(i, " ");
                 return 0;
      }
    

4. Go

  • Año de creación: 2009.
  • Paradigma: Imperativo y concurrente.
  • Descripción: Es como C, pero sin declaración de tipos de datos como en Python. Su sintaxis es sencilla. La compilación es, sin exagerar, excepcionalmente rápida. Ken Thompson, también co-creador de C, ayudó en el diseño.
  • Inspirado en: C, Pascal.
  • Instalación: Cambia el valor de las variables según tu conveniencia. En Ubuntu:

      export GOROOT=$HOME/gosource
      export GOARCH=386
      export GOOS=linux
      export GOBIN=$HOME/gobin
      export PATH=$PATH:$GOBIN
    
      source ~/.bashrc
    
      sudo apt-get install bison gcc libc6-dev ed gawk make
      sudo apt-get install python-setuptools python-dev build-essential
      sudo easy_install mercurial
    
      hg clone -r release https://go.googlecode.com/hg/ $GOROOT
    
      cd $GOROOT/src
      ./all.bash
    
  • Ejemplo:

      package main
      import "fmt"
    
      func main() {
    
         for i:=1; i<=10; i++ {
            fmt.Printf("%d ", i)
         }
    
      }
    

5. Factor

  • Año de creación: 2003.
  • Paradigma: Orientado a pila, concatenativo (sobre todo) y funcional.
  • Descripción: Definición dinámica de los tipos de datos, manejo automático de memoria, compilador o, si se quiere, también interactivo.
  • Inspirado en: Forth, Self.
  • Instalación: En Ubuntu:

    1. Descarga
    2. Descomprime
    3. Ingresa al directorio
    4. ./factor
  • Ejemplo: (Sé que se puede hacer mejor. Ya aprenderé.)

      { 1 2 3 4 5 6 7 8 9 10} [ "" write . ]  each
    

Referencias

Comentarios

  1. Felicitaciones por la recopilación...... hecho de menos un "bullet" de cada lenguaje, aunque no se bien como llamarlo. Algo que me pudiera decir "¿De quien es?".

    Saludos y... espero ya la 2a parte :)

    RuGI

    Responder

  2. soy programador y nunca escuche orientado a pila? seguro que es un paradigma???..funcional, OPP, estructurado, lógico, etc son paradigmas..

    Responder

    • Son muy pocos y conocidos los lenguajes orientados a pila. Pero lo hay, como PostScript y Forth.

      Intenta programar en Factor lo notarás. Es otra forma de programar. Otro paradigma, pues.

      También puede verse como concatenativo, que es muy parecido al funcional.

      Responder

      • Buena recopilación, solo conocía a D, respecto al paradigma orientado a pila, supongo que el lenguaje de las calculadoras científicas Casio es un ejemplo.

  3. Ok, pero no pongas CSS en la imagen que no es un lenguaje de programación y queda un poco... ummm...

    Responder

    • Tienes toda la razón. Se ve mal. Así que lo cambié por un poco de Clojure que tengo por ahí, presentado un poco à la Matrix.

      ¡Gracias!

      Responder

    • estoy muy de acuerdo contigo @anónimo. si se habla de lenguaje de programación no se puede poner código css. que se ponga por lo meno código de C o C++, si no tiene una imagen de los lenguajes que cita..

      Responder

  4. me voy a auto responder y si existe ese paradigma. No lo conocía. Orientado a pila: http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_orientado_a_pila saludos

    Responder

  5. personalmente al que más le veo futuro es a D

    Responder

  6. Arturo Munive

    D ya tiene 11 años y es la primera vez que oigo de el

    Responder

  7. alcuadrado

    Ken Thompson creo UNIX, no C.

    El unico creador de C es Dennis Ritchie, de hecho Kernighan solo lo ayudo a escribir el conocido libro...

    Responder

  8. Buen recopílatorio. Scala es otro lenguaje emergente con algunos años y buena popularidad, en Twitter lo utilizan, estaría bien para la segunda parte.

    Responder

  9. Buena info, como para aprenderlo y requerido en grandes empresas cuando haga práctica. Faltó Vala, un lenguaje basado en C# :D

    Responder

  10. Muy buena recopilacion, solo conocia referencias a Go, pero no he bajado ningun documento sobre ello.

    Responder

  11. Falta F#, C#, y otros lenguages. GO? se cuentan con los dedos los que usan ese lenguage.

    Responder

Información sobre comentarios

¡Gracias por dejarnos tus comentarios! — por favor intenta mantener tu opinión relacionada con la anotación, no usar insultos, agresiones, o faltas de respeto al autor y otros participantes de la discusión, en caso de no hacerlo tu comentario podría ser borrado.

Existe mucha más información en nuestra política de comentarios.