Interfaz. Notas introductorias.
Cierto es que hasta ahora hemos empleado el modo consola y que aun tendremos que emplearlo para trabajar tanto con OOo Basic como con Python, ya que resulta conveniente para seguir con el aprendizaje de ambos lenguajes, pero también lo es que para crear ejemplos de cierta complejidad y propuestas de trabajo que resulten útiles para la práctica, el modo consola resulta poco amigable y escasamente estético, ya que estamos acostumbrados a los modos gráficos, basados en ventanas y sistemas que facilitan la interacción entre el usuario o usuaria y el "programa". Así que me ha parecido que ya iba siendo hora de aprender a usar los modos gráficos (GUI) en la implementación de interfaces para empezar a construir propuestas de trabajo.
Empezaremos por algunas nociones básicas sobre lo que son las interfaces gráficas y seguiremos por la interface de propósito general de OOo Basic. La idea es crear un ejemplo de docap que hace uso de un cuadro de diálogo sencillo. Es una forma de empezar a familiarizarnos con la creación y uso de componentes hoy por hoy fundamentales en todo recurso digital.
El mundo de las interfaces gráficas es tan complejo que se está produciendo una división del trabajo dentro de los programadores en la que se diferencian aquellos o aquellas que orientan su trabajo a la generación de algoritmos (código oculto) y aquellas o aquellos que están especializado en generar las formas en las que estos programas se muestran e interactúan con los usuarios y usuarias.
Las interfaces de texto, como es la consola, ofrece formas de interacción muy simples, a veces poco amigables. Por eso, aunque son modos de implementar los programas muy eficaces, paulatinamente han sido sustituidas por interfaces gráficas. Una etapa intermedia es aquella en la que determinados programas funcionaban a base de comandos; como ejemplo el procesador de textos WordPerfect que aprendimos a manejar los que nos iniciamos en los programas informáticos cuando se empezaban a popularizar los ordenadores tipo Amstrad y similares. Los anteriores eran meras unidades centrales sin periféricos (había que añadirlos) como pantallas y teclados, que incorporaban sistemas básicos de almacenamiento (cintas de cassette, por ejemplo) trabajaban directamente en modo consola.
Las interfaces gráficas de usuario (GUI, como son llamadas en el mundillo de la programación) ofrecen ventanas, cuadros de diálogo, barras de herramientas, botones, listas desplegables y muchos otros elementos (objetos) con los que estamos tan acostumbrados a tratar que si un programa no cuenta con ellas, instintivamente lo consideramos "arcaico" y "complejo. Y eso que las interfaces de consola son tan eficientes (o más que las gráficas), además de más sencillas y más económicas de crear y de mantener. Y que ciertos lenguajes actuales siguen trabajando básicamente en ese modo (R es un ejemplo, aunque ya cuenta con un programa más "amigable": R-Studio)
De Shmuel Csaba Otto Traian, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=29272838
Este gráfico resume la complejidad que subyace al planteamiento de GUI potentes como aquellas con las que interactuamos a diario en nuestros dispositivos electrónicos. Afortunadamente no es este el nivel mínimo de complejidad al que tenemos que enfrentarnos para implementar una GUI en nuestros programas.
Afortunadamente también para implementar las más simples no necesitamos nada especial. Sírvanos de ejemplo las ventanitas emergentes que hemos creado en OOo Basic (MsgBox, Print, InputBox).
Hasta ahora en OOo Basic nos hemos limitado a utilizar las formas más elementales de interfaces gráficas, pero más bien llevados por la necesidad que deriva del tipo de lenguaje y las posibilidades que ofrece, que por un uso consciente y específico de las mismas. Esto implica que aun en su sencillez, aun tenemos pendientes descubrir algunos de sus secretos.
Y en cuanto a Python, aun nos falta para iniciarnos en la implementación de las formas más básicas de GUI, aunque trataré de acortar el camino pendiente de recorrer para que este proyecto personal de aprendizaje no se descompense demasiado en el ritmo de avance en cada uno de los lenguajes trabajados.
Por ello en este blog emplearemos una conceptualización simplificada del esquema anterior, que podemos representar de este modo,...
Basada en Shmuel Csaba Otto Traian
- La GUI sustituye en ella las posiciones/funciones básicas de entrada/salida (input-output), bien ambas, bien únicamente la entrada, como tendremos ocasión de ver en OOo Basic.
- Esa interface gráfica se conecta con el código de base (el que procesa los datos y genera resultados) mediante una capa intermedia de código específico que debemos conocer para que lo "dibujado en pantalla" sea algo más que una ventana más o menos amigable.
- El "programa" oculto devuelve a la interface los resultados de su procesamiento
- y se una nueva interface gráfica nos muestra el resultado.
En este último punto es donde OOo Basic presenta las características específicas que implica ser un lenguaje de script: esa devolución de información se presenta generalmente en una GUI que no es más que el servicio con el que estamos trabajando. Pero esto, que no tiene por qué ser necesariamente así, ya lo veremos cuando tratemos sobre las GUI en OOo Basic, que queda para una nueva entrada.
De momento me voy a adelantar de nuevo en OOo Basic (es una nueva demostración de la utilidad inmediata que tiene este lenguaje de script para los SEO y para los y las docentes en general) y voy a tatar en esta entrada sobre uno de los recursos GUI menos empleados en LibreOffice y posiblemente también en otros lenguajes de similar propósito: los cuadros de diálogo.
OOo Basic permite trabajar con tres formatos de GUI: las ventanas emergentes, los formularios y los cuadros de diálogo. Aunque trataremos (de hecho ya lo hemos hecho, aunque indirectamente) sobre ventanas emergentes y formularios, considero conveniente empezar por el aprendizaje de los cuadros de diálogo por similitud con otros lenguajes de programación (como Python) y para facilitar la implementación sistemática de este tipo de GUIs (que son de propósito general en OOo Basic) en los ejemplos y los proyectos basados en OOo Basic que desarrollemos a partir de este momento.
No hay comentarios:
Publicar un comentario
Comenta esta entrada