Mostrando entradas con la etiqueta tcl. Mostrar todas las entradas
Mostrando entradas con la etiqueta tcl. Mostrar todas las entradas

sábado, 22 de diciembre de 2007

¡Ha salido Tcl/Tk 8.5!

En anteriores entradas despotricaba contra Tcl/Tk, y una de mis "quejas" era que el aspecto de los "widgets" era horroroso, sobre todo en sistemas X-Window (Linux y otros UNIX).

Bien, parece que en esta nueva versión se ha añadido una extensión llamada Tile que permite el uso de "themes" en las aplicaciones Tcl/Tk. Los pantallazos que se muestran tienen buena pinta.

A lo mejor le doy una segunda oportunidad a Tcl/Tk como lenguaje para desarrollar programas "de ventanitas". Veamos como queda uno de mis programillas (Pitch & Tunning Studio) con la nueva versión de Tcl/Tk.

Tcl/Tk 8.4 en MacOSX
Tk 8.4 en Mac OSX

Tcl/Tk 8.5 en MacOSX
Tk 8.5 en Mac OSX

Tcl/Tk 8.4 en Linux
Tk 8.4 en Linux

Tcl/Tk 8.5 en Linux
Tk 8.5 en Linux

Tcl/Tk 8.5 en Windows XP
Tk 8.5 en Windows XP

No he adjuntado un pantallazo de Tk 8.4 en Windows porque prácticamente no ha cambiado nada. La mejora en Linux es increíble: fuentes alisadas, los "radio buttons" redondos y muchos más detalles. También la versión para Mac ha mejorado bastante (observen el "spinbox" rotulado como "Note duration").

Definitivamente, ya no puedo mantener que Tk es un "toolkit" feo ;-)

Por cierto, la distribución de Tcl/Tk más conocida, la de Active State, ya no incluye el paquete Snack por defecto (aunque se puede instalar).
¡Grrrr!

viernes, 11 de mayo de 2007

(Re)Descubriendo Tcl/Tk

En esto tiempos aciagos para los/as programadores/as, en los que cada dos días sale un lenguaje o herramienta nuevos, en los que para montar una sencilla web hay que lidiar con los omnipresentes patrones de diseño, montones de capas de abstracción y demás, se agradece la simplicidad y sencillez de los viejos tiempos.
Tcl significa "Tool Command Language" y Tk "ToolKit". Es un lenguaje de "script", con una sintaxis muy similar a la de cualquier "shell" (como Bash).

Hacía mucho que no hacía nada con Tcl/Tk, y el otro día recordé que existe todavía la estupenda librería Snack. Es una librería de tratamiento y generación de sonido en tiempo real.

Así que, provisto del tutorial de Snack y la documentación de Tcl/Tk pertinente, me hice un pequeño afinador (cutre: sólo da notas de referencia, no "lee" las notas del instrumento):

Captura pantalla

(Captura de pantalla en Windows)

En 65 líneas de código simple tenemos casi un programa completo:

Código (renombrar a tuner.tcl)

Lo que más atención me llama es que a cada "widget" se le puede asociar una variable (global) de tal forma que, al cambiar la variable, se actualiza el elemento convenientemente. Por ejemplo, el "message" y el "spinbox" tienen asociados dos variables, newfreq y octave, respectivamente.

Desde el procedimiento beep modificamos newfreq y el texto de la etiqueta cambia.
Ocultamiento de información y encapsulamiento: ninguno. ¿Acaso es necesario siempre? ;-)

Recursos

  • Todavía hay en la red un tutorial en castellano (de lo poquito que he podido encontrar) de la Universidad de Oviedo. Data de 1998 (!) y está bastante bien. Lo bueno del mundillo Tcl/Tk es que las cosas no se quedan obsoletas tan pronto.

  • Visual Tcl es un IDE para Tcl/Tk. Permite desarrollar las aplicaciones Tcl/Tk de forma "visual": pinchando y dibujando los "widgets". Funciona perfectamente y su última actualización fue en 2006.