Aunque su nombre correcto es ECMAScript, es inevitable conocerlo por el nombre que la mayoría usa para referirse a él, Javascript.

Es el lenguaje de moda y cada vez más en auge tras la aparición del proyecto Node y de su nueva versión ES6 que será estable a partir de este año. Cada vez hay mas gente que quiere iniciarse en el lenguaje y profundizar en él.

En esta serie de capítulos intentaré plasmar lo que he podido ir absorviendo durante el último año sobre Javascript e intentar profundizar en las "good parts" que nos aporta como lenguaje y en el uso de buenas prácticas, así como intentar no caer en los hábitos que tengamos de otros lenguajes anteriores.

Como apunte inicial, la sintaxis que usaré será siempre la de ES6, tanto por que será el nuevo estandar a partir de este año como para extender su uso. No me pararé demasiado a comentar las particularidades de la nueva sintaxis, hay documentación de sobra del tema, solamente el caso de nuevos módulos y funciones que resulten de interés conocer y que quiera aplicar su uso en los ejemplos. Si necesitáis un manual os recomiendo una lectura rápida de la guía ES6 de AirBnB, es bastante completa y de forma muy resumida.

Esta serie va enfocada a quienes tengáis ya un conocimiento básico de programación (o Javascript) y queráis profundizar en conceptos más avanzados.

Escribiré siempre los ejemplos en inglés ya que me resulta más cómodo y conciso. La mayor parte de la documentación o artículos que citaré están también en inglés por lo que recomiendo que os acostumbréis a leer en el idioma de Shakespeare, a la larga son todo ventajas.

Instalación del entorno

Antes de empezar a programar necesitaremos un entorno en el que poder escribir y testear nuestro código.

Como editor, mi recomendación personal es Atom ya que es open source, multiplataforma y viene de serie con muchos plugins útiles (mas abajo cito algunos). Otra alternativa es Sublime Text.

Para la ejecución del código usaremos una terminal con Node. Para instalarlo podéis bajar el instalador de la web o bien usar los gestores de paquetes habituales para OSX/Linux.

Mac OS X (Homebrew)

brew install node  

Ubuntu / Debian

sudo apt-get install nodejs  

Fedora / CentOS

sudo yum install nodejs  

Aunque la actual versión estable de Node (4.x) soporta ES6, no implementa aún completamente la definición del estándar por lo que necesitaremos también Babel para poder ejecutar código sin problemas.

sudo npm install -g babel  

Este nos instalará Babel como librería de forma global y añadirá los comandos babel y babel-node a nuestra shell. Para comprobar que todo funciona correctamente ejecutamos el siguiente comando

echo "console.log('Hello, world!')" | babel | node  

que deberá devolver el mensaje Hello, world!. Si todo ha ido bien ya estamos listos para empezar.

Extras

Si usáis Atom como editor, recomiendo el uso de un plugin que hará más cómoda la experiencia haciendo que se resalten los errores en el editor antes de ejecutar el código.

Para ello usaremos Eslint. Es necesario instalar previamente el ejecutable para poder usar el plugin necesario.

sudo npm install -g eslint  

La instalación de los plugins es posible hacerla desde el propio editor o bien haciendo uso del comando apm que provee el mismo desde la shell.

apm install linter linter-eslint  

La configuración por defecto de Eslint marca como erróneas ciertas partes de la sintaxis de ES6, por lo que es conveniente crear el fichero .eslintrc en el directorio que estemos trabajando para indicarle que queremos usar la nueva sintaxis por completo.

{
  "env": {
    "browser": true,
    "node": true,
    "es6": true
  },
  "ecmaFeatures": {
    "modules": true
  },
}

Por último, como recomendación personal os sugiero el tema Oceanic Next para Atom, ya que tiene mejor soporte para ES6 que el que viene por defecto.

apm install oceanic-next  

¿Y ahora?

De momento podéis probar a escribir pequeños fragmentos de código con los que ir probando las novedades de ES6: arrow functions, let y const, destructuring, atajos para definir propiedades en objetos, etc.

No acostumbro a usar Windows para estos menesteres ya que no me resulta cómodo ni práctico para programar, pero sed libres de usar lo que queráis. Tanto Atom como Node se pueden instalar en el ventanucos.

"The Winter is coming..." - A Song of Ice and Fire (1996)