viernes, 12 de octubre de 2012

La estrella del show

En este mini-show que componen mis proyectos personales, unos posts en un blog que pareciera tener alguna fijación con los insectos, y otros delirios afines, donde ustedes, lectores y usuarios, son los preciados espectadores que busco cautivar, PSeInt se roba todos los flashes. Mientras que a mis últimos 7 posts les llevó unos 10 días llegar a la (para nada envidiable) cantidad de 50 visitas a cada uno, la nueva versión de PSeInt tuvo más 200 descargas en sus primeras 10 horas de vida y eso que esas 10 horas fueron entre las 10 de la noche y las 8 de la mañana, lo que implica que la mayoría de los usuarios estaba cenando, durmiendo, mirando tele, o haciendo cualquier otra cosa, pero no creo que trabajando o estudiando tanto (aunque pensandolo bien yo suelo hacer mis tareas de mantenimiento, lo que incluye actualizaciones, durante la noche). Para el final de su primer día, había llegado a nada menos que 900 descargas.

Los post más leídos del sitio son los relacionados a PSeInt, y el que más visitas tiene es, con mucha diferencia, el que está enlazado en la portada del sitio de PSeInt (sitio que obviamente es la mayor fuente de tráfico según las estadísticas de Blogger). Como prueba definitiva, si leen esto antes del 15/10, pueden entrar a sourceforge y ver que PSeInt es (por segunda vez en este año) uno de los 8 proyectos destacados de la semana (por su crecimiento creo), y por ello aparece directamente en la portada.

Hacía rato que no actualizaba PSeInt, y esta versión (después de varias noches largas) incluye finalmente, como novedad a destacar, la muy solicitada posibilidad de definir funciones (que llamo SubProcesos) en pseudocódigo. Esa característica fue para mi una espina durante los últimos dos años al menos, algo que quería hacer para poder seguir tranquilo y sin apuro. Esto abre el abanico de posibilidades y (espero) permitirá que PSeInt se utilice cada vez en más escenarios. Todavía hay muchísimas cosas por hacer, tengo ideas por implementar, errores por corregir, documentación que actualizar, y seguramente algún usuario sugerirá algo en lo que no había pensado, pero esas son tareas de mantenimiento, o funcionalidades relativamente menores, que no modifican el ámbito de aplicación del programa.


Como tareas pendientes están eliminar definitivamente el viejo graficador de diagramas de flujo (que actualmente se utiliza para exportar las imágenes a archivos), configurar mi entorno de desarrollo para poder compilar el nuevo editor de diagramas en la versión para Mac OS, actualizar el módulo que exporta a C++, mejorar la ayuda y eventualmente agregar un conjunto básico de tutoriales, actualizar la descripción del lenguaje y los ejemplos en el sitio web, etc.

Como cosas nuevas estoy pensando, por ejemplo, en una versión "explicada" de la ejecución paso a paso, donde el intérprete además de mostrar qué lineas ejecuta, indique en cada instrucción qué está haciendo. Por ejemplo, en una expresión que involucra funciones, que explicite las llamadas, cómo hace el pasaje de argumentos; o en una estructura de control que muestre la expresión a evaluar, el resultado y la decisión que implica, o que avise cuando se crean las variables, etc. Como si fuera el subtitulo con "comentarios" del director mientras la ejecución paso a paso avanza. Mi intención es que el alumno vea cómo se interpreta el código para que con el tiempo sea capaz de reproducir ese proceso él mismo mentalmente. Con lo que tengo ahora eso es algo bastante simple de implementar, y recuerden que soy un convencido de que en el aprendizaje de la programación,  la depuración puede ser primero una herramienta didáctica para entender ejemplos correctos, antes que una herramienta práctica para encontrar errores. Pero son sólo ideas por ahora.

El punto es que este tipo de ideas pueden implicar un trabajo importante, pero no van a cambiar el hecho de que un profesor pueda o no utilizar PSeInt en sus clases, como sí lo cambia el hecho de que el profesor quiera dar conceptos como funciones, recursividad, pasaje de parámetros, y el intérprete no le permita hacer práctica, obligándolo a pasar a un lenguaje real, tal vez antes de lo previsto. Por eso, aunque 2012 ya es por lejos el año más productivo en la historia del  proyecto, lo que sigue llevará más tiempo, y el ritmo de desarrollo será más lento. Volveré la atención a ZinjaI, que también hace mucho que no actualizo oficialmente, y tengo muchos cambios a mitad camino que quiero completar, como un manejo más simple de la configuración de bibliotecas en un proyecto, algunas mejoras en las plantillas, lo de los toolchains alternativos, y una buena tanda de pequeños detalles mayormente de usabilidad que he ido mejorando.

No hay comentarios:

Publicar un comentario