lunes, mayo 29, 2006

JavaScript The Objec tWay

Estuve trabajando un poco con algunas cosas que estaban hechas con JavaScript, y tenia que introducir un pequeño cambio en algo que se suponía debería ser sencillo, afortunadamente no lo fue, y tuve que ponerme a refactorizar todo el código que estaba escrito en una forma totalmente procedural utilizando el nefasto estilo spaghetti.

Tarde o temprano iba a tener que meterle algo de mano a cosas hechas en JavaScript, y como esas que uno espera nunca tener que hacer, llego ese momento.

Recordé que una vez escuche que en JavaScript se podía llegar a trabajar en una forma bastante “objetosa” así que decidí ponerme a investigar un poco y encontré que efectivamente se puede y que además se pueden hacer cosas bastante interesantes que ni me imaginaba.

Por ejemplo, se pueden crear Clases y generar instancias de estas, se puede llegar a construir una herencia con un mecanismo que se llama prototipado:
Clases con JavaScript:

function Reporte() {
this.inicializar = function(e) {
window.alert("Esto es una prueba de prototipos con JS");
}

this.testTrue = function(e) {
return false;
}
}

function main() {
var aReporte = new Reporte();
aReporte.inicializar();
if(aReporte.testTrue()) {
window.alert("La validacion dio verdadera");
}
}

En el ejemplo se ve como se crea una Clase llamada Reporte, esta clase contiene una funcion llamara inicializar, que emite un mensaje y en la funcion main se ve como se usa la clase Reporte

Herencia con JavaScript

function superClass() {
this.supertest = superTest;
}

function subClass() {
this.inheritFrom = superClass;
this.inheritFrom();
this.subtest = subTest;
}

function superTest() {
return "superTest";
}

function subTest() {
return "subTest";
}

var newClass = new subClass();
alert(newClass.subtest());
alert(newClass.supertest());


Esto es un poco de lo que vi hoy, dejo algunos links que me sirvieron bastante.



domingo, mayo 28, 2006

Ciencia Ficción en Bits

Hace poco encontré un viejo Diskette de cuando estaba cursando en la secundaria en 4to año, algunos eones atrás, increíblemente estaba etiquetado, algo que solo hacia con discos que realmente creía interesantes.
Lo que decía la etiqueta era
AXXON , repentinamente recordé que era el contenido del disco, una revista!!

La revista AXXON era una publicación de ciencia ficción gratuita que se distribuía en Diskette, estaba hecha creo en Turbo Pascal, usando programación grafica, incluía en sus cuentos imágenes y enlaces estilo HTML, y eran muy buenas historias.
Buscando en Google encontré que tienen una pagina y que hoy es aun mas interesante que cuando la conocí, así que si les gusta el genero les recomiendo que se den una vuelta y disfruten de buenas historias.



jueves, mayo 25, 2006

Había una vez AJAX

El desarrollo WEB que comenzó hace varios años era puramente estático con paginas escritas en HTML que podían tener vínculos con otros documentos, una evolución de este modelo fue las paginas dinámicas que por medio de procesos generaban el código HTML que se presentaba, estos procesos de los denominaba programas CGI y permitían que se acceda a bases de datos y que los contenidos sean mostrados en paginas HTML.

Ese modelo sirvió bastante tiempo pero tenia falencias como el tiempo de ejecución o la cantidad de pedidos que podían ser servidos en un momento determinado, debido a que los programas CGI se ejecutaban en un proceso distinto por cada request que atendían.

Como consecuencia de esto aparecieron otras soluciones que básicamente solventaban los problemas de escalabilidad del modelo CGI. Surgieron servidores que podían correr estos procesos de una manera mucho mas rápida y sin el overhead de la creación de procesos, en esa época Netscape con su servidor WEB tenia un conjunto de librerías llamadas NSAPI y Microsoft con su IIS tenia las ISAPI.

Luego apareció Java que de a poco iba ganando espacio en la WEB y surge un modelo que conceptualmente se parecía a los Netscape y Microsoft, los Servlets, pero con algunas cosas que los hicieron particularmente atractivos para los desarrolladores, y era la simplicidad con la que se podía crearlos, en contrapartida con los modelos de Netscape y de Microsoft.

Pero resulta que el modelo del request y del response para refrescar los datos de la pantalla no había presentado una evolución en todo este tiempo, esto fue así hasta que Google comienza a desplegar aplicaciones como Gmail donde uno podía ver como una aplicación WEB se comportaba casi como una aplicación del tipo Desktop, esto despertó la curiosidad de muchos y es donde se comenzó a hablar de AJAX.

Hoy en día ya nadie se sorprende de ver una aplicación donde las paginas cambian su contenido sin que se realicen refrescos de la misma, es mas hoy es algo que resulta ya molesto tener que refrescar las paginas para cargar la información de un combo.

Pero como con todas las tecnologías que emergen en un principio son algo complicadas y muchas veces caemos en tareas repetitivas o en modelos donde las cosas no son manejables o reutilizables.

La batalla de los entornos de desarrollo como Java y .Net puede llegar a tornarse desiciva si alguno de estos logra abstraer todo esta complejidad y ocultarla al desarrollador.

Microsoft ya esta trabajando en un framework llamado ATLAS que proveerá componentes para ASP .Net que trabajaran con AJAX.

Para Java hay también bastantes frameworks de presentación que están dando soporte para AJAX, y además existe un framework para utilizar de GOOGLE, estuve dándole una mirada a los ejemplos y me pareció excelente el enfoque que dan para poder abstraer la complejidad de desarrollar con esta tecnología , el framework se llama GWT (Google Widget Toolkit)

Que será el próximo paso en la evolución de la WEB ? La WEB Semántica? Nuevos protocolos con estado?