viernes, diciembre 30, 2011

Programacion de alto rendimiento (continua)

(continuacion del post "Programacion de alto rendimiento")
Bueno, ya se decidieron por algun lenguaje de programacion para su back-end, perfecto!, aun tenemos varias decisiones que tomar.

De entrada, tenemos que ser concientes de que actualmente no podemos escapar de aprender JavaScript, en primera porque es el corazon de HTML 5, el nuevo y potente estandar que pronto dominara la Internet y es el lenguaje que utilizan actualmente las aplicaciones Web 2.0 para las llamadas asincronas (AJAX). Programar en JavaScript es un arte! no lo subestimen, mucha gente cree que es un pequeño lenguaje que sirve para unos cuantos detallitos en las paginas web... falso.

JavaScript es un potente lenguaje, le da vida a las paginas web y permite sacarlas de un status de una pagina util y ponerlas en el status de impresionante. Para facilitar el uso de JavaScript existen decenas de buenos frameworks que simplifican y/o mejoran el rendimiento de la programacion en este lenguaje, ademas de lidiar con el dolor de las particularidades de los navegadores web.

Un buen framework de JavaScript debe de:

  • Lidiar con la compatibilidad de navegadores
  • Permitir la orientacion a objetos
  • Ser compatible con la notacion JSON (JavaScript Object Notation)
  • Facilitar el manejo de eventos y funciones callback
  • Facilitar la programacion de animaciones y/o componentes de UI (user interface)

De acuerdo a lo antoriarmente mencionado les puedo recomendar los siguientes frameworks (ordenados por prioridad, mia por su puesto):

Este poderoso framework se ha convertido en un "must". Apoyado por gigantes como Google y Microsoft provee un lenguaje muy sencillo de usar con funciones muy flexibles para el manejo de eventos y con una sintaxis totalmente JSON. De las mejores caracteristicas que puedo mencionar es el apoyo enorme de la comunidad de desarrolladores en toda la Internet, lo que permite que evolucione rapidamente y con una calidad muy alta. La otra caracteristica es su alto rendimiento logrado al ofrecer una version recortada "minified" que puede agregar componentes bajo demanda. La API esta bien documentada por lo que su adopcion no deberia representar mayor obstaculo.

Este framework esta impresionantemente bien documentado, ofrece componentes para la GUI muy elaborados, con muchas parametrizaciones que los vuelven muy flexibles y hacen que las aplicaciones web se sientan como aplicaciones de escritorio. Al igual que jQuery, cuenta con una version recortada para mejorar el rendimiento. Dada la cantidad de componentes la curva de aprendizaje puede ser un poco larga pero valdra la pena. Otro detalle con el que se tiene que lidiar es con la adaptacion de los CSS existentes. Por cierto, vale la pena revisar tambien a su hermano Sencha Touch que es otro JavaScript framework para aplicaciones web moviles.

En realidad aqui el framework es Prototype, un viejo lobo de mar en esto de los frameworks de JavaScript, uno de los pioneros con una buena madurez y un conjunto de funciones que permiten interactuar con el DOM (Document Object Model) a nivel elemento de una manera muy sencilla de tal forma que se pueden agregar, modificar, mutar (utilizando clases CSS o estilos individuales), etc. Las desventajas de este framework comparado con jQuery es que este no ha evolucionado al mismo ritmo, esto se traduce en la carencia de caracteristicas como la concatenacion de funciones (util para muchos efectos graficos, creanme!). Script.aculo.us es un add-on para Prototype que agrega componentes AJAX como autocompleters, efectos de transicion, drag n drop, etc.

Programar en JavaScript requiere, idealmente, considerar su utilizacion en un modo no intrusivo, esto significa que las funciones y cualquier codigo escrito en este lenguaje no debe formar por ningun motivo parte de la GUI. Esto se logra agregando manejadores de eventos directamente vinculados en tiempo de ejecucion a cada uno de los componentes una vez que todo el arbol DOM ha sido cargado. Uno de estos dias escribire al respecto para ilustrar de una mejor manera este concepto.


Nota: No uso acentos, me da flojera cambiar el layout de mi teclado
Nota 2: Si, se que solo me tomaria un par de clicks

No hay comentarios.: