…y primeros enlaces
Aún no tengo activada la forja de RedIris, así que temporalmente tengo el proyecto en SourceForge.
También tengo colgada una demostración de uso. Es algo simplona, pero creo que ilustra la idea.
¡Anímate, y descarga el código fuente! Tus aportaciones serán bienvenidas
Filed under: Updates y releases | Deja un comentario
Primer día
Hay un primer día para todo lo que empieza…
Para participar con el PureJS en el IV Concurso Universitario de Software Libre es necesario cumplir con dos trámites: alta en la forja RedIris y alta de un blog en WordPress. Para darme de alta en la forja, era necesario que utilizase una cuenta de correo de alguna entidad adscrita a RedIris, la UNED en mi caso (así que tenía correo de la UNED…) Ahora sólo queda esperar las 48h esas que dicen que tardan en dar de alta el proyecto.
Mientras esperamos, te puedo ir contando la historia del PureJS
PureJS no es un proyecto nuevo. Todo empezó un día en el que uno de mis varios jefes me comentó que, en un par de meses, íbamos a necesitar un grid editable, tipo Excel, que funcionase desde el navegador, y que no fuera un ActiveX. Mi encargo era sencillamente investigar el tema, “darle una vuelta”.
Componentes “tipo Excel” de cliente, hay muchos por ahí, algunos muy buenos. La investigación estaba siendo sencilla, pero me distraje… pensé ¿y si lo hago yo?
Programar en Javascript es algo que mucha gente odia (a mí me encanta). Es un lenguaje casi sin reglas y, por ello, extraordinariamente flexible. Lo malo es que, al igual que pasaba (¿aún pasa?) con Visual Basic, lo más fácil es programar mal. Por más que uno se aplique, el código queda generalmente farragoso, difícil de mantener.
Conclusión: la primera versión del componente eran unas trescientas líneas que en aquel momento entendía, pero ¿sería capaz de recordar cómo funciona eso después de un mes? No, ni de broma.
Una de las navajas suízas de la programación es el “divide y vencerás”. En Javascript esto se consigue refactorizando funciones grandes en funciones más pequeñas, haciéndo el código más fácil de entender. Era una opción.
La solución en C++, C# o Java pasa por crear jerarquías de clases. Cada componente encapsula unas funcionalidades que son extendidas por un componente superior. En lugar de aplicar el “divide y vencerás” al código, se aplica a los conceptos.
Desafortunadamente, Javascript no es un lenguaje orientado a objetos, sino basado en objetos. No implementa el paradigma OOP. Existen algunas alternativas para “simular” la OOP en Javascript [Nota: No me refiero a los frameworks de desarrollo, sino a los remedios caseros que aparecen en los manuales] , utilizando las funciones objeto, prototipos y extensión de prototipos. Pero tienen varios problemas:
- El código no se clarifica, más bien se complica.
- La herencia por prototipos es ineficiente en memoria, ya que copia el objeto heredado, en lugar de reusarlo.
- Sobrecarga de métodos muy limitada, y bastante impredecible.
Pero me daba la impresión de que estos problemas eran solucionables. Desarrollé una pequeña librería y pasé un par de semanas puliéndola, y resolví ponerla a prueba haciendo una jerarquía de clases para mi grid editable, cosa que hice en apenas dos tardes.
Al acabar el experimento, el código era sorprendentemente pequeño y claro. Me pregunté, “¿podrás entenderlo dentro de un més?” ¡Qué dices! ¡Por supuesto que sí!
Me gustó tanto el resultado que le puse nombre: “PureJS”, y decidi seguir desarrollándolo hasta convertirlo en un framework completo. Y ahí finaliza el principio.
Ya han pasado unos meses, y hay muchas cosas nuevas respecto a aquella primera versión… ¡pero lo mejor está por venir!
Filed under: La historia de PureJS | 4 Comentarios
Nace el blog!
¡Nace el blog de PureJS!
Si mi fuerza de voluntad me lo permite, en estas páginas iré describiendo la evolución del proyecto, explicaré sus características, y fantasearé con sus posibilidades…
Filed under: La historia de PureJS | cerrado
