Estoy aprendiendo JavaScript. Creo que es uno de los lenguajes con más futuro, y no sólo por la web (que da de comer a mucha gente), sino por herramientas como PhoneGap (que te permite crear aplicaciones para iOS, Android, …), y también por la llegada del nuevo Windows 8, ya que se pueden desarrollar aplicaciones en JavaScript que acceden al hardware de la máquina donde esté instalado Windows 8.
Empecé aprendiéndolo gracias a Codecademy, que comenzó el año con unos cursos o clases online, y me llamó mucho la atención la posibilidad de poder ir practicando JavaScript sin tener que instalar nada. Y además, cada semana la herramienta me recordaría que tenía una nueva lección, así no dejaría de practicar.
Pero hace poco tropecé con un pequeño problema, y es que quería aportar una solución escrita en JavaScript al desafío de Compresión en RLE en Solveet (una plataforma donde la gente publica desafíos de programación y otra gente publica sus propias soluciones, muy recomendable y divertido). El problema era que no tenía instalado nada en mi ordenador que me permitiera hacer TDD (lo prefiero para resolver los desafíos, así practico doble: el desafío y la práctica TDD).
Una herramienta que me encanta para gestionar el ciclo de vida de mis proyectos es maven, así que me decidí a buscar algo que me permitiera escribir JavaScript y luego ejecutarlo con comandos de maven.
Y tuve la suerte de encontrar un post de akquinet donde explica cómo crear un proyecto maven para JavaScript. La verdad es que es realmente sencillo porque akquinet se ha currado un archetype para maven que te crea un esqueleto de proyecto para que escribas directamente JavaScript. Simplemente con este comando para ejecutar maven:
mvn archetype:generate \
-DarchetypeArtifactId=javascript-quickstart \
-DarchetypeGroupId=de.akquinet.javascript.archetypes \
-DarchetypeVersion=1.0.0 \
-DgroupId=<enter your groupId> \
-DartifactId=<enter your artifactId>
Con el proyecto creado a partir del archetype de akquinet podrás:
- Ejecutar tus tests JavaScript con Jasmine
- Comprimir los ficheros
.js
y.css
de tu proyecto - Generar la documentación con JSLint y JSDoc
Además, al ser un proyecto maven, es muy fácil que lo integres en un servidor de Integración Contínua como Hudson.
Si quieres, puedes ver la solución que aporté en Solveet. El desafío es muy sencillo, y hay muy poco código JavaScript: Compresión RLE en JavaScript, el código completo con los tests.