¿Compilando JavaScript?
Sin duda JavaScript es el leguaje del presente y del futuro. Piensa en las aplicaciones que han tenido repercusión en los últimos tiempos: Google Maps, Outlook Web Access, Live.com, Hotmail, Flickr, Community Server, etc...
Todas tienen en común que usan muchísimo código JavaScript, aunque sea generado... Yo cada vez estoy más convencido de que JavaScript es el lenguaje del futuro.
Tambien ocurre que una aplicación en la que estoy trabajando desde hace algún tiempo tiene más JavaScript que código C#. Sin duda JavaScript es un lenguaje que tiene sus puntos débiles y fuertes. Desde mi punto de vista la carencia de un compilador es uno de esos puntos que me ponen nevioso de JavaScript, como ocurre con todo los lenguajes de tipado debil.
Aunque habría que discutir mucho sobre el tema, yo siempre prefiero tener un compilador que me avise de que estoy haciendo algunas cosas mal, aunque solo sea a nivel sintactico, porque en realidad que un programa compile solo es un pequeño paso hacia que sea correcto, pero todo viaje comienza con el primer paso. Una interesante discusión sobre este tema es Strong Typing vs. Strong Testing de Bruce Eckel, que resumiento lo que expone con argumentos es que un compilador nunca sustituye a un buen tratamiento de la calidad y las pruebas en tu proceso de desarrollo.
Bueno como yo ya he comentado que me gusta tener un compilador, pues hace algún tiempo que utilizo dos herramientas sumamente utiles, que en cierto modo compensan la carencia de compilador en JavaScript y que han hecho un gran favor a mi productividad y la calidad de mi código cuando escribo JavaScript.
La primera es JavaScript Lint, excelente herramienta gratuita que 'compila' nuestro Java Script y que se integra con facilidad con Visual Studio. Ya hable someramente de ella en un post anterior sobre 'memory leaks' en JavaScript. Ideal para no volverse loco buscando donde hemos cambiado un { por un (, por ejemplo, en nuestro archivo JavaScript. Además de errores tambien nos lanza advertencias sobre aquellos aspectos de nuestro código JavaScript que con correctos sintacticamente pero que necesitan de nuestra atención por temas de corrección o rendimiento.

La segunda es una herramienta online (gratuita) que tiene su hermana instalable, JSSorcerer (no gratuita), que da muchas más posibilidades. La versión online es capaz de detectar problemas en el JavaScript de cualquier archivo la enviemos y puede sernos de gran ayuda. No he probado la versión de escritorio.

Estas dos herramientas son en cierto modo responsables de que ya no odie JavaScript, incluso empiezo a cojerle el gustillo...