Si miramos 5 o 6 años atrás y pensamos en las situaciones para las que decidíamos utilizar JavaScript, a mi siempre me vienen dos muy típicas: las famosas validaciones de formularios y los siempre odiados tickers (barras texto movible), todos los hemos usado junto a esos preciosos gif animados: en construcción, pulsa para enviar, una enorme @.
Pero eso era antes, el cambio que está sufriendo día a día la web es algo impresionante, entre otras cosas lo que ha evolucionado la utilidad de este, hasta llegar al punto que puedes hacer cualquier cosa, absolutamente cualquier cosa con él.
JavaScript en la web
Actualmente puedes hacer casi todas (por no decir todas) las cosas que antes se hacían con flash en las webs, uploaders de archivos con múltiple selección, todo lo relacionado con vídeo y audio, movimientos dinámicos de elementos y un largo etcétera.
Además hubo un momento en todo este cambio, uno muy importante (igual que otros), que marcó un antes y un después. La comunidad dijo basta a fijarse en que navegador usas para ver que te muestro o ponerte la típica frase “Cambia de navegador” (Como odiaba eso por favor) y entonces empezamos a fijarnos en las características soportadas por el navegador, por ejemplo: me da igual si eres una versión vieja de firefox yo solo quiero saber si admites localStorage. La herramienta por excelencia que ha ayudado en este tema es el framework Modernizr.
Finalmente han cogido peso, mucho peso y cada vez más los frameworks de MV (unos solo MV, otros dicens er MVC otros MVc ahora y luego MVR etc..) aún se están acabando de definir y como he mencionado antes esto va evolucionando día a día, pero han supuesto una gran ayuda para este mundo ejemplos básicos son: Backbone, EmberJS o Mozart
Hay un montón de librerías y framework muy útiles con los que trabajamos todos los días como jQuery, Mootools, Underscore, Hammer, Intro, Math, Moment… prácticamente son infinitas y puedes encontrar estas y muchas más en JSDB
Con esto creo que están claras las nuevas bases del JavaScript interpretado en navegador, pero claro hemos evolucionado ya no solo hay webs…
Aplicaciones en JavaScript
Gracias a JavaScript y principalmente a las empresas que le han mostrado su confianza podemos ver cada vez más aplicaciones hechas con este lenguaje, que he decidido separar en tres bloques Apps nativas, Apps de escritorio y Apps híbridas.
Apps Nativas
Principalmente las empresas Microsoft, Firefox y BlackBerry son las que han depositado más confianza en ello, podemos hacer aplicaciones nativas para PC y tablets con Windows 8, para cualquier dispositivo con FirefoxOS y para los dispositivos que llevan BB10.
Apps de escritorio
Con ayuda de plataformas como TideSDK podemos crear aplicaciones de escritorio para Linux, Mac o Windows, seguramente son aplicaciones que no sean tan buenas como las hechas en los lenguajes habituales de programación para aplicaciones de escritorio pero es sin duda un gran logro.
Apps híbridas
Las encuentro las más interesantes de todas para aplicaciones no demasiado exigentes (vamos la mayoría de las que hay en el mercado) para hacer apps multiplataforma mediante herramientas como Cordova que permite hacer una estructura HTML, CSS y JavaScript y finalmente compilar para la plataforma deseada, cambiando si hiciera falta los estilos específicos de cada una de estas sin mucho esfuerzo.
En el servidor usando JavaScript
Aunque algunos lo consideran una moda, otros lo vemos como un hecho fantástico que ayuda a cerrar el círculo de JavasCript de manera que en la actualidad podemos hacer todo un producto: Servidor, web y aplicaciones para varios dispositivos directamente con JavaScript ¿Quién se hubiera imaginado esto hace varios años? Para servidor utilizamos NodeJS muy sencillo de utilizar y útil tanto para backend de webs como para entornos de trabajo ya que nos puede ayudar a hacer cualquier cosa como por ejemplo minificar nuestros archivos, concatenarlos, etc. de manera que nos ayuda mientras trabajamos, además de toda la lógica de servidor que conocemos.
Ayudando en las bases de datos
Últimamente están cogiendo más importancia las Bases de Datos basadas en NoSQL un ejemplo es MongoDB que utiliza documentos de tipo JSON que es una notación de tipo JavasCript con lo cual también encontramos algo de presencia de este lenguaje.
En hardware, el otro salto
Una de las cosas que me ha sorprendido más últimamente es que se puede programar para Raspberry Pi en este lenguaje, otros ejemplos son Arduino o Teensy, entre otros.
Entonces ¿Por que razón debo aprender?
Ningún programador debe depender de un solo lenguaje, pero está claro cuando te pones a aprender uno nuevo es interesante poder hacer el máximo de cosas con el y hemos podido ver que puedes hacer prácticamente cualquier cosa gracias a JavaScript, la podrás hacer con mejor o pero rendimiento, con mejor o peor estructura, está claro que tiene sus fallos y sus virtudes, pero si, yo te animo a aprender JavaScript y entrar en este mundo de posibilidades.