Que tal señores, de tiempos que no toco a la libreria Jquery, pero cada dia va mejorando. Ahora que ya esta en su etapa 1.4 y que recientemente salio la 1.4.2 creo que se merece una actualizacion del mismo en mi blog.
Como la mayoria sabe Jquery es la libreria Javascript pereferida por mi. Su aplicacion a juegos en javascript es potente, aunque sirve excelentemente a cualquier tipo de aplicacion web.
Basicamente la version 1.4 trae mas velocidad y nuevas funciones, siendo aun funcional con navegadores de la "talla" de IE6, lo que es un milagro aun ahora.
Pero esta nueva version trae unas increibles mejoras en la velocidad. Mas de lo que ya es posible hacer. Llegara algun dia donde no se pueda lograr mas velocidad en ¿Jquery?. De verdad asombra lo que hacen estos Javascripts Ninjas con el codigo de Jquery.
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?

Desarrollar juegos para web no es tarea facil. Tienes que preocuparte por varios lenguajes y tecnologias al mismo tiempo. Es por eso que hace un año empece a buscar la herramienta perfecta que me ayude a desarrollar en css, javascript, html y php al mismo tiempo. Por un tiempo estuve con el Dreamweaver CS3. No es una herramienta mala, bien util en PHP, pero mis necesidades en el codigo javascript, ademas de todas las librerias que usaba limitaban al buen Dreamweaver, una herramienta propia de Diseñadores Web. Es ahi cuando encontre al Aptana.
Aptana es un IDE que ahora corre como una extension del ya mitico Eclipse o como version Standalone,aunque recomiendo la version para Eclipse. Nos permite crear codigo principalmente en HTML, Javascript y CSS de una forma por demas deliciosa.
Por supuesto lo que mas llama la atencion es que su version Community es totalmente gratuita. Yo uso esa y de verdad, me hace las cosas mas sencillas.
Si quieres usarlo pues son 3 pasos basicos:
- Bajate el Eclipse. Recomiendo la version Classic
- Bajate el Aptana for Eclipse. Ahi te dan las faciles instrucciones para instalarlo
- Actualiza tu Aptana y disfruta
- Puedes trabajar codigo en Html,Javascript y Css. Ademas tienes una extension para trabajar codigo en PHP muy buena y completa.
- Ademas tienes mas extensiones para trabajar con Ruby on Rails, Adobe Air 1.5 , Iphone y Python. Me falto mencionar que tambien puedes trabajar con WRT para celulares nokia

- Funcionalidades especiales para las siguientes librerias javascript Jquery,Dojo,Yahoo,Ext Js, Motools, Prototype, Scriptaculos, Adobe Spry, Microsoft ASP.NET Ajax Controls, OpenRico y Aflax.

- Outline Visualizator, navega por tags,variables y funciones, codigo en css ,javascript ,html y hasta en PHP!. De lejos la funcion mas util para mi

- Autopadding: Supon que ingresas un if de ultimo momento , todo el codigo que este dentro de los nuevos corchetes se identa. Aptana ademas identa tu codigo en otros tipos de situaciones de una forma por demas inteligente. Me dejo pensando que Aptana esta vivo, o hay duendes magicos bien ordenados dentro del codigo.
- Ademas en teoria tiene un debugeador de javascript bastante bueno. No lo he probado pero segun los comments leidos hace todo mas facil e interesante y ademas soporta todas las librerias citadas antes.
A que esperas, empieza a usarlo ahora!!!
Estuve investigando otras opciones para la creacion de clientes de juegos web. No porque la opcion PHP/JQUERY me trajera algun problema, al contrario me parece una decision acertada el camino AJAX, pero hay tanto buzz sobre otras tecnologias que merece la pena estudiarlas, quien sabe derrepente sea mas facil e interesante llevarlas a cabo en alguno de los clientes que investigue. Esta va a ser la primera de una seria de entradas acerca de tecnologias web para clientes. Por ahora todos estan invitados a exponer sus ideas principalmente sobre que clientes web estudiar. Ustedes me pueden indicar cualquier cliente web que permita crear RIAS, siglas de internet rcih applications, y ya que la definicion de que es una ria es un poco abierta, les dejo esta iamgen que saque de la tesis de Florian Moritz, solo se que le gusta javafx
Entonces un Rich Internet Application esta entre los perfectos limites de una pagina de web normal y una aplicacion Desktop.
Empesare por el combo tipico de AJAX con su mejor exponente (para mi) la libreria Jquery, despues me ire por los caminos de Javafx, seguido de Flex y AIR, y por ultimo la propuesta RIA de Microsoft, Silverlight. Estoy abierto a consultas y criticas constructivas, el punto de vista sera desde el de programador y diseñador, que tan facil me hace la vida estas tecnologias al momento de programar. Hasta entonces
Este post es la continuacion de Xeno - Tecnologias Web a usar - Parte I Servidor
Ahora nos toca tratar el tema del cliente, esto significa como es que la informacio una ves mandada va a ser manejada por el Navegador
CLIENTE
Lenguaje del Cliente: Usaremos Javascritp junto con lalibreria jquery. Basicamente javascript nos ayudara a que la interface sea parecida a la de un juego desktop, de hace un par de años por supuesto y sin graficos 3d, que puedo decir, es un juego por browser. Jquery nos permitira desarrollar mas facil y cross-browser el juego. Por supuesto tenemos ciertas limitaciones:
- Javascript es Lento: Demasiado lento en comparacion con java embeded o hasta con flash (bueno la ultima version) aunque actualmente navegadores como el chrome o el proximo IE 8 prometen mejoras de velocidad en el javascript. Por eso hay que ver que tnato codigo podria resistir el cliente.
- El codigo puede ser manipulado por cualquier persona: Y en general uno nuncas debe de confiar en los datos enviados por el usuario, por ejemplo supongamos que estasmos en un mapa moviendo unidades, si nosotros de alguna manera (hackeando el javascript) hacemos que una unidad se mueva lejos de su rango de accion, nosotros debemos de confirmar en el server que ese movimiento sea valido.
Diseño y Estructura: Basicamente va a ser un Diseño Tableless, y vamos a usar bastante CSS. Casi lamentablemente para el sistema ( para los tios de la W3C) no va a ser XHTML compatible ya que vamos a usar propiedades de los tags que no son oficiales. Esquinas redondeadas por CSS y CSS Sprites son una de las tecnicas que se me vienen a la mente, pero estoy seguro que van a haber mas.
Extras: Al final se tratara de minimizar los archivos enviados, ya que esto significa menos ancho de banda usado y es mas rentable. Para hacer esto lo pimero enmiente seria enviar todos los scripts minimizados, mandar pocas imagenes ( y transformarlas en sprites) y ver si mandar la informacion comprimida es mejor ( ay que es un esfuerzo extra para el procesador del servidor).
Por supuesto el Uso de AJAX va a ser necesario. Tengo una tecnica para mandar informacion json en la primera carga de la pagina web que me ayudara bastante a mejorar la carga de datos. Esto hara que use menos ajax ya que ajax no es la panacea para todo.
Eso es todo lo pensado para el juego en la parte del Cliente. ¿Dudas? ¿Preguntas? o piensan que Flash es bueno para Juegos Web persistentes? Lo leere en sus comentarios. Hasta la proxima
¿Te gusta la pagina?, socializame haciendole click a tu color preferido: