miércoles, marzo 16, 2011

Aprendiendo jQuery

Mi primer contacto con JavaScript fue en 1998, cuando compré un libro sobre JavaScript 1.2. Hoy, con la perspectiva de 13 años de experiencia puedo decir que el libro era bastante malo, pues promovía técnicas que ya desde entonces eran consideradas malas prácticas. Pero en el 2009 aprendí Lua y entonces se abrió ante mí totalmente el mundo de la programación OOP tradicional, y particularmente el mundo de la OOP de JavaScript—mucho más similar a Lua y a Lisp que a Java o C++.

Mi incursión en el mundo de CSS es más reciente, hablamos de unos 6 años. Antes ni siquiera lo consideré porque ningún navegador tenía soporte completo. Pero como usuario de Opera siempre pude experimentar con todos los selectores, los más bizarros.

En los últimos 3 años he programado todo tipo de widgets usando diferentes niveles de Ajax y de objetos en JavaScript. Mi experimento más reciente es inyectar metadatos en formas usando namespaces en XHTML para enlazar directamente los campos de una forma a una tabla o vista SQL y automatizar la validación de los campos y su correcta actualización en la tabla.

Próximamente estaré usando jQuery de tiempo completo. Si tienes una base sólida de selectores CSS, XPath y objetos en JavaScript entonces jQuery es una extensión de tus conocimientos. Siempre debió ser posible navegar el árbol DOM con XPath, y los iteradores de jQuery ahorran un porcentaje importante de líneas de código. Se pierde un poco de claridad para los no-iniciados, pero si sabes de qué se trata entonces no tienes problemas con los chorizos que comienzan con $.

Mi única preocupación es que jQuery usa la sintaxis y semántica de selectores CSS. Si no tienes paciencia/experiencia suficiente para lograr algo en CSS puedes verte tentado a hacerlo en jQuery — y creo que la trifecta contenido:presentación:comportamiento funciona mejor cuando cada aspecto está bien delimitado.

Ojo, si vas a hacer un widget basado en scripting entonces da lo mismo si los mezclas, de todas formas un user-agent sin scripting no lo va a renderear — pero para todo lo demás mantente al margen.

Ya les platicaré cómo salen las cosas.

No hay comentarios.:

Publicar un comentario