Siempre me sucede, como a tantos programadores, que al utilizar cierta función de cierto programa me viene a la cabeza la pregunta: ¿Cómo está hecho esto? Mas específicamente, cual es la idea detrás de todo esto. Lo que intento descubrir es como se pensaron cada una de las funciones innovadoras de cada programa mas allá del código; es decir, haciendo foco en la idea, o el algoritmo. Ejemplos que se me ocurren ya mismo: atrás y adelante en el navegador (ese es fácil), capas en los programas de diseño, buscador de coincidencias en el OpenOffice(o MS Word), etc.
El cuatrimestre anterior en la universidad nos plantearon como semi-proyecto desarrollar un programa similar al MSPaint de Windows (o el KolourPaint de KDE. Hay gente que realmente cree que el único programa de dibujo es el paint de windows! ). Fue un gran ejercicio porque, a pesar que solo nos exigieron las funciones mas básicas (dibujo de línea, cambios de colores, y poco más), decidí ir mas allá e investigué algo acerca del resto, no incluidas en el trabajo. Entre ellas, el “aerosol”, el dibujo de cuadrado/circulo, y opciones para determinar el trazo.
A pesar de todo, como todo gran proyecto universitario, se pinchó con la venida del verano y el UPaint 1.0 ( así lo llamé), quedó solo en eso: una pobretona versión 1.0 que incluye algunas funciones, algunas a medias, y otras propuestas pero no implementadas. El que desee puede terminarlo, publicarlo, mejorarlo, preguntarme cualquier cosa o incluso sugerir algo.
Así sin mas les dejo el código para que cada uno haga con él lo que desee y una imagen de como se ve el proyecto cargado en Bluej. (*)
- DESCARGAR el código Java del proyecto.