Google Closures, Nueva libreria javascript, que parece java

Publicadas por Jose Carlos Tamayo


Por la excelente lista de correo de Sitepoint, me puse al tanto del nuevo framework javascript de google, Google Closures. Despues de la novedad de su propio lenguaje de desarrollo llamado Go, Google esta con bastantes sorpresas estos ultimos meses.

Google siempre se caracterizo por sus excelentes servicios webs como google docs o gmail, y tambien por sus deficientes interfaces (vamos, quien me puede decir que google docs es user friendly?) . Asi que no sabia que esperar de un framework javascript hecho por google, asi que.. a embarrarnos de google...

Como sabran soy fanatico de la libreria Jquery, simplemente hace las cosas bien y de una forma simple. Asi que usare Jquery para comparar a Closures. Esto a mi parecer, es una justa comparacion.

Empecemos por lo mas obvio: el Hello World de Closures

goog.require('goog.dom');

function sayHi() {
var newDiv = goog.dom.createDom('h1', {'style': 'background-color:#EEE'},
'Hello world!');
goog
.dom.appendChild(document.body, newDiv);
}

A) goog.require('goog.dom');
Notaron esa funcion require() ? Es parecida al require de php, solo que inserta el codigo "ala" Ajax, . Esto puede ser bueno, porque tu pagina sera, en el mejor de los casos veloz, ya que tu codigo se inserta despues de que la pagina finalice de cargar, como hacer una llamada Ajax pero a tu codigo. Es parecido a la funcion getScript de Jquery, solo que lo tienes que usar de forma obligatoria. Esa libreria goog.dom carga funciones necesarias para manipular el DOM de tu pagina, pero no es la unica libreria, en total deben de haber mas de 50 archivos js que componen este framework.

Ahora goog es una variable publica, espero que la unica variable publica que tenga.

b) var newDiv = goog.dom.createDom('h1', {'style': 'background-color:#EEE'}, 'Hello world!');

¿What the heck? Aqui es donde todo esto empieza a decaer. quizas porque Jquery me maleduco con la facilidad con la que puedes crear un objeto DOM, e insertarlo donde quieras, pero esto me parece demasiada verbosidad. Serio, en jquery harias algo como esto:

$('body').html("pon un tag h1 con su style background-color:#EEE");
Y eso seria todo, definitivamente esto me lleva a pensar que la curva de aprendizaje de Closures es recontra alta en comparacion de las suaves caricias que te da Jquery al aprenderlo. ¿Sera necesario aprender otra libreria de javascript, realmente Closures brinda algo que las demas librerias no brinden?

Quizas si, chekando su API, me di cuenta de algunas cosas como la implementacion de la Comunicacion bidireccional que usa gmail, cosa que tambien tiene la libreria Dojo y estoy seguro que debe de haber un plugin para jquery de esto. Y aqui es donde Closures gana puntos extras: Tiene bastantes plugins ya creados y principalmente probados y testeados, cosa que en jquery no hay. Aceptemoslo,jquery tiene plugins geniales, pero son pocos en un mar de herrores ( con h de horror).

Puntos en contra de Closures son ciertos problemas de seguridad y bueno esta version al parecer no es compatible con otros frameworks, ni tampoco es compatible con Dmitry Baranovskiy,(si, pun intented!) el mitico creador de Raphael, solo lean el raje que hizo en la conferencia "Edge of the Web", realmente se puede sentir el odio hacia google closures en las letras.

En fin Google es una marca y como muchos dicen, sera el logo de google el que impulse este nuevo framework, tiene cosas buenas y como todas las cosas nuevas tiene tambien sus enemigos. Espero me den noticas de Aplicaciones creadas con este nuevo framework, que ademas tiene un compilador y una fabrica de templates. La pregunta es: ¿Sera bueno para Juegos Web?

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me