Al final me he decidido. Siempre he pensado que saber programar en distintos lenguajes era algo bastante práctico, sobre todo porque al final cada lenguaje tiene su forma de hacer las cosas, su comunidad diferente, y eso ayuda a ampliar las ideas con que nos enfrentamos a los problemas.
Como además últimamente estoy usando bastante linux y eso me hace incómodo trabajar con lenguajes .NET (MonoDevelop no está del todo mal, pero VS + Resharper está muy por delante), he optado por irme a un lenguaje cuyas herramientas funcionen sin problemas en linux, aprovechando así para matar dos pájaros de un tiro: lenguaje nuevo, plataforma (semi-)nueva.
El lenguaje elegido ha sido Javascript y para hacerlo un poco más entretenido (y, de paso, focalizado), voy a intentar aprenderlo desarrollando pequeño sistema cliente/servidor realizado íntegramente con Javascript. Mi idea es utilizar node.js para la parte de servidor y HTML+jQuery en la parte del cliente.
Para empezar con algo, y sobre todo como recordatorio por si tengo que volver a hacerlo, aquí va mi primer contacto con node.js:
Instalación paso a paso de node.js en Ubuntu 11.04
La instalación está basada en estas instrucciones de instalación, pero tuve que hacer algunos pequeños ajustes.
Desde una consola, es necesario ejecutar lo siguiente:
sudo apt-get install curl
Esto instalará curl, que será necesario para descargar cosas por línea de comandos y nos servirá también para poder hacer llamadas de prueba a nuestra aplicación web. Antes en linux usaba wget, pero ahora parece que todo el mundo usa curl. Por algo será.
Luego hay que ejecutar esto:
sudo apt-get install libssl-dev
Con esto instalamos las librerías de desarrollo de ssl. No sé si las usaré para algo, pero node.js se quejaba de que no las encontraba y no podría usar ssl, así que por si acaso…
Después de eso ejecute el primer script que aparece en el enlace:
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc . ~/.bashrc mkdir ~/local mkdir ~/node-latest-install cd ~/node-latest-install curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1 ./configure --prefix=~/local make install # ok, fine, this step probably takes more than 30 seconds... curl http://npmjs.org/install.sh | sh
Esto hace una instalación local de la última versión de node.js. Al ser una instalación local, no hacen falta permisos de root para nada, aunque a cambio hay que añadir al path la ruta donde lo hemos instalado. Además nos instala también npm, que es el gestor de paquetes para node.js (algo así como el equivalente a gems en Ruby, NuGet en .NET o CPAN en perl).
Para los que no sabemos mucho de linux pero nos gusta entender lo que estamos haciendo, los pasos del script son:
- Añadir al path la ruta
$HOME/local/bin - Crear las carpetas local y node-latest-install
- Descargar y descomprimir node-latest-tar.gz en node-latest-install
- Prepararnos para compilar con configure, indicando que la ruta donde vamos a instalar es
$HOME/local - Lanzamos la instalación
- Descargamos e instalamos npm
Con esto ya tenemos todo listo para hacer nuestra primera aplicación de ejemplo. Creamos un fichero app.js en algún sitio y le añadimos el siguiente código (sacado de nodejs.org):
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
A continuación, lo ejecutamos con:
nodejs app.js
Y usando un browser navegamos hasta http://localhost:1337 para comprobar que todo funciona:
Ya está, ya tenemos lista la instalación de node.js. Ahora sólo falta empezar a usarla para algo divertido

Cosas que echo de menos en Javascript | Koalite's blog
[...] hace una semana que empecé a jugar con Javascript. Aunque no he tenido mucho tiempo para hacer nada, ya tengo claras algunas de las cosas que más [...]
Javascript: Diferencias entre declaración de función y expresión con función | Koalite's blog
[...] que me resultó un poco confuso cuando empecé a jugar con Javascript fueron las diferentes formas que fui encontrando de “crear” funciones. En ejemplos hechos con [...]
Mostrar avisos y errores con jQuery UI | Koalite's blog
[...] parte de mis juegos con javascript, estoy empezando a probar jQuery y jQuery UI. Se trata de dos librerías muy útiles que facilitan [...]
Tutorial node.js + express + jquery (I): Creando la aplicación « Koalite's blog
[...] primero es instalar node.js, pero supongo que si estás leyendo esto problablemente ya lo tengas instalado. Gracias a npm, el [...]