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.

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 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; i5. 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

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: