Por qué los programadores Java odian Javascript

23 Ene 2011
El presente artículo corresponde a la traducción en castellano del original escrito por Gordon Dickens, Why Java Developers Hate JavaScript, publicado en marzo de 2010 en su página personal.

Como desarrollador Java, odiaba tener que usar Javascript. Llegaba incluso un momento en el que me decía: «los amigos no dejan que sus amigos usen Javascript«.

Sin embargo, en los últimos años, Javascript se ha convertido en un requisito de todo proyecto web que mejora la experiencia de usuario. Con la llegada de herramientas como jQuery o GWT, muchos de mis problemas iniciales se han reducido. Además de esto, me tomé un cierto tiempo para leer más sobre este lenguaje; finalmente, el libro que realmente me abrió los ojos, fue «Javascript, the Good Parts«.

Pero entonces, ¿qué es lo que realmente odian los desarrolladores Java?

  • Javascript se parece a Java, huele a Java e incluso puede llegar a saber como Java, pero se comporta de modo diferente.
  • Las variables son globales dentro de su contexto (scope).
  • this‘ tiene un significado diferente según desde dónde se invoque (aprender esto es importante).
  • Un código entre llaves NO GARANTIZA un mismo contexto-bloque.
  • Las funciones son los «ciudadanos de primera» del lenguaje, no son clases (evitar las clases nos evitará también grandes decepciones).
  • Las funciones son objetos, no sólo los métodos de una clase.
  • Las variables son objetos de tipado dinámico.
  • Javascript siempre falla de forma silenciosa (para mantener la experiencia del usuario).
  • Es difícil de depurar (para esto, hay que usar Firefox + Firebug).
  • El punto y coma final es opcional.
  • Las funciones siempre devuelven un valor: el valor por defecto ‘undefined’ (salvo en los constructores donde el valor por defecto es this).
  • El comando «new«, además de crear un objeto, tiene propiedades específicas únicas.
  • Compatibilidad entre navegadores (para ésto, hay que recurrir a herramientas o librerías como jQuery).

¿Qué hay que entender acerca de Javascript?

  • Funciónes: son el objeto principal en Javascript.
  • Sistema basado en prototipos: Object.prototype, vinculación de objetos, delegación, método hasOwnProperty(), etc.
  • Clausura.
  • Currying (funciones arrastradas).
  • Las 4 formas de invocación: métodos, funciones, constructores y apply.
  • Similitudes con otros lenguajes dinámicos como Ruby, Groovy, etc…

¿Qué debemos olvidar cuando utilizamos Javascript?

  • Clases.
  • Definir ámbitos (bloques) a través de llaves.
  • Programación de tipado fuerte.

En resúmen, Javascript es un lenguaje completamente diferente a Java, con algunas similitudes sintácticas. Sin duda, se trata de un lenguaje flexible y poderoso una vez que conoces sus particularidades y comportamiento. Para los interesados, recomiendo el libro de Crockford, Good Parts (mencionado arriba): una lectura corta pero repleta de ejemplos interesante sobre las particularidades de este lenguaje.

Más:

Aún no tenemos debug!
Ningún marciano se ha comunicado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *