Estas vacaciones ya pasadas, han sido muy relajantes, durante el día, piscina, playa, parques, deportes… y resto de actividades típicas con la familia y amigos. Y por la noche, aprovechando que al día siguiente no había que madrugar, me puse a tratar de conocer un nuevo lenguaje de programación.
Antes de seguir, os explico que para mi programar es como un pasatiempo, es algo parecido a hacer crucigramas o sudokus, se trata de una actividad lúdica que además me mantiene la mente despejada.
El lenguaje que he escogido es Openlaszlo. Vi en su momento algunas demos y no pude resistir la tentación de ver como se podía programar ese tipo de aplicaciones. La demo que más me llamo la atención, fue ésta de una tienda por Internet, ligada a datos de Amazon. Antes de seguir leyendo, abrir el enlace de la demo… vale la pena.
Así que me bajé el kit de desarrollo. Este paquete instala en el PC el compilador, un servidor web basado en Tomcat, un tutorial, la documentación y un montón de ejemplos para poder aprender. Instalé el paquete en Windows XP, Vista y en Opensuse; ningún problema con ninguno de los sistemas operativos. Esto ya me dio buen sabor de boca.
Openlaszlo sirve para programa aplicaciones que corren desde el navegador, pero con una particularidad, el aspecto de la aplicación es casi el de una aplicación de escritorio, como si de una aplicación Ajax se tratase. Al final se puede conseguir un programa con un aspecto final y un comportamiento como si se tratase de un programa tipo cliente pesado.
El lenguaje en el fondo son como dos lenguajes unidos. Por un lado tendríamos la parte declarativa. Con esta parte del lenguaje, definimos el aspecto de la aplicación: ventanas, formularios, botones, cuadros de edición, animaciones, colores… Luego tenemos otra parte ya ejecutiva, basada en Javascript, que es la que realiza la acciones.
Con un ejemplo lo vamos a entender mejor. Usando la parte declarativa podemos definir una ventana con un botón que al pulsarlo, cierre la ventana. Pues el código que pinta la ventana, coloca el texto de la ventana, los colores y el botón de cerrarla, se definen con la parte declarativa. En el botón de cerrar, colocamos una línea de código en Javascript que tiene la instrucción de cerrar la ventana.
Podemos abrir ficheros multimedia, vídeo, música, imágenes en jpg, gif, png, swf… lleva una buena colección de instrucciones para manejarlos, asi podemos ver demos como ésta que muestra vídeos de Youtube, o ésta otra que permite algo parecido con fotos de Flickr.
El sistema permite acceder a datos externos mediante ficheros XML. Es decir el Openlaszlo no ataca directamente una base de datos, sino que nosotros tenemos que dejar la información desde nuestras bases de datos en fichero XML que son los que Openlaszlo tratará.
Las aplicaciones una vez probadas en local, pueden desplegarse en la red de dos formas: o bien en un servidor donde tengamos instalado el Openlaszlo y se van compilando conforme se necesitan, o bien podemos compilarlas en nuestro PC y subirlas a un servidor web normal. Si optamos por el segundo sistema, podemos compilar las aplicaciones en un fichero de Flash (versión 7 u 8) o en una versión DHTML. Hay ligeras diferencias entre ellas, pero podríamos desarrollar una aplicación para los dos entornos sin muchos problemas.
La documentación es abundante y está muy estructurada, aunque al principio lo que uno echa de menos es algo de bajo nivel. Al final tuve suerte y pude localizar un libro que me ha servido mucho para poder comenzar a hacer algo.
El lenguaje es orientado a objetos, así que menos mal que lo que aprendí en su día de programación orientada a objetos me iba a servir para algo. Conforme pasan los días y vas aprendiendo un poco los rudimentos del lenguaje, vas viendo como con un par de cientos de líneas de código se pueden crear aplicaciones muy espectaculares y potentes.
En resumen, un lenguaje muy recomendable, si estás programando aplicaciones en Internet, quieres que tengan una interfaz cómoda de usar (o bien una interfaz llamativa) que parezca una aplicación de cliente pesado, y no quieres usar muchas herramientas externas.
Eso si, al final me di cuenta de que hoy en día lo difícil no es aprender un lenguaje, sino todo lo que le rodea. Así he tenido que desempolvar manuales y libros de XML (el código que escribimos es XML) de Java, Javascript, Flash y sobre todo de servidores Web.
11 Comentarios
Comentarios Cerrados
Pues muy interesante, OpenLaszlo lo tenía en el punto de mira para las RIAA y como quiero empezar a toquetear algo para no oxidarme… puede ser un buen punto
Antonio: me parece que la primera mención la vi en tu blog. Y luego la primera descarga que hice del kit de desarrollo fue de CDlibre.org.
Que libro compraste?
¿libro sobre OpenLaszlo? La última vez que vi uno era para una versión ya muy desfasada, además que es un lenguaje quizá demasiado dinámico en cuanto a la velocidad en que se le añaden nuevas funciones o actualizan el código, lo que hace que sea dificil guiarse por un manual externo.
Lo único que no me gusta es que sea orientado a objetos, no es que eso sea malo, solo que es que yo no tengo ni idea de POO y me cuesta muchísimo no perderme.
Por cierto, nunca antes había trabajado con bases de datos ¿es siempre así de la latoso o es cosa del Laszlo?
Ruisan: lo dejaba para otra entrada, se trata de Laszlo in Action (http://www.manning.com/klein/) está sin terminar todavía el libro, pero te dejan comprarlo y te puedes ir descargando los capítulos conforme los van escribiendo (yo ya he hecho tres actualizaciones del libro). Lo mejor del libro es que lo va explicando todo a la vez que programan una aplicación real: una tienda por Internet… que por cierto casi, casi se podría usar.
Rarok: eso me paso a mi la primera vez que lo ví, pero yo estoy trabajando con la versión 4.02 y parece que está ya más estabilizada.
Lo de las bases de datos… la forma que tiene Laszlo de tratarlas, es que solo trata fichero XML… eso es malo y es bueno. Es malo si estás acostumbrado a atacar tu directamente las bases de datos (yo me incluyo en ese grupo) pero es bueno, porque te da libertad para usar la base de datos que tu quieras, siempre y cuando conviertas antes los datos a XML y desde allí los leas con Laszlo.
Bueno, hace tiempo que leo tu blog, y me ha gustado que alguien pruebe un lenguaje de programación y nos lo cuente…
Openlaszlo parece interesante. Sin embargo (y aunque no soy ningún experto), el hecho de que no pueda acceder directamente a bases de datos me parece una limitación importante…
Aprovecho para preguntaros qué otros lenguajes/entornos de programación orientados a Internet conocéis y/o usáis.
Un saludo.
Muy interesante, lástima lo de las BBDD. Que yo sepa hay un montón de desarrollos con toolkits parecidos ahora, y se están volviendo muy populares.
También es interesante GWT, http://code.google.com/webtoolkit/ porque permite compilar java -> ajax, bastante útil para tener las dos versiones de la aplicación.
Profesor y Deabru: lo contaré en otra entrada, pero al final lo de no tener acceso directo a las bases de datos no es tan mala idea. Te la la libertad de que tu trabajes con tus módulos de BBDD, generes los XML y accedas a estos desde Laszlo. Además te permite que en desarrollo puedas simular el entorno de BBDD, simplemente definiendo los XML y atacándolos. Luego en producción ya veremos que BBDD escogemos.
Llevo un tiempo enganchado a tu blog, muy bueno de verdad.
Estoy de acuerdo en lo que dice que lo difícil no es aprender un lenguaje si no todo lo que lo rodea, yo que me defendía en entorno de escritorio, y algo de web, ahora me estoy poniendo al día en cuanto a xhtml y css, y cuando crees que ya puedes empezar te das cuenta que te falta javascript, y hoy en día para algo serio y grande ajax, la verdad que casi no se por donde seguir.
Una pregunta, que tipo de aplicaciones serían las recomendadas para generar los xml. La verdad que si estas acostumbrado a atacar directamente a la bbdd te rompe un poco los esquemas.
Ruyman: te voy a contar una maldad… una de las cosas que me ha gustado de Laszlo, es que es de lo que he visto para programas sobre web, de lo que más se parece a un sistema de desarrollo de escritorio…
Me explico, tengo un editor algo decente, puedo simular las BBDD de producción a base de fichero XML, edito un fichero, me voy al navegador, lo lanzo, el sistema lo compila, si algo falla, el compilador suele dar mensajes fáciles de entender, indicando siempre la línea donde nos hemos equivocado… y hay un sistema de debug bastante decente… Luego, tienes clases y métodos… vamos que no me encuentro tan perdido como me suele pasar en otras ocasiones.
General los XML, ya depende de cada cual. Yo para un experimento que hice, como tenía los datos originales en DBF, pues los saque de allí. Ahora mismo estoy peleándome con unas rutinas en PHP y con MySql, para generar desde tablas de MySql los XML que voy a manejar con Laszlo… Pero por la red hay ejemplos mejores para la gente que conoce mejor el Java…
Bueno pintandolo así tengo que ponerlo en mi lista de cosas a mirar…cuando no se sabe, pero tal vez antes de meterme de lleno con ajax me conviene por lo menos echarle un vistazo, aunque normalmente suelo tirar por las cosas más populares sobre todo por temas de soporte.