En camino desde la línea de comandos a la GUI en la era de MS-DOS: Parte 2

En camino desde la línea de comandos a la GUI en la era de MS-DOS: Parte 2


Imagen generada usando Bing Image Creator


En la parte anterior de este artículo estuvimos hablando sobre las CLI y las dificultades encontradas por los usuarios no especializados en informática a la hora de usarlas para interactuar con una computadora; y también vimos como muchos de esos problemas podían ser eliminados de forma efectiva a través del uso de una GUI, dado por sus características estas pueden facilitar mucho el uso de los sistemas de cómputo.

Pero una GUI suele tener un consumo más grande de recursos escasos en el entorno de una IBM PC de la década de 1980, cuando reinaba MS-DOS, y por eso se hizo necesario encontrar otras soluciones para facilitar la interacción con los usuarios en un entorno como ese.


¿Qué solución se encontró?

En ese escenario descrito antes, la solución con frecuencia fue usar interfaces de usuario basadas en texto, también conocidas como TUI (Text User Interface) por sus siglas en inglés.

Las TUI en sí mismas pueden ser casi tan básicas como una CLI por usar solamente texto simple con o sin colores, o pueden ser más elaborados y estar compuestas por recuadros, colores, y menús, a pesar de todo esto también estar hecho usando solamente caracteres ASCII normales y extendidos.

Por lo general, esas interfaces en modo texto se utilizaron desde antes de las interfaces gráficas de usuario, porque combinaban muchas de las ventajas de las segundas, permitiendo a los usuarios del sistema ver sobre la pantalla las opciones o funcionalidades disponibles (y facilitando así recordarlas), a la vez tenían la ligereza de los más básicos intérpretes de comandos.

Pero es necesario decir que por lo general las TUI no fueron una norma a nivel del sistema operativo sino más bien se implementaron nada más a nivel de cada programa por separado.

En efecto, por esa época existieron muchos programas relevantes basados en esta técnica, y es posible mencionar varios, sin embargo, uno de los más populares fue sin duda el famoso Norton Commander (disponible desde 1986).

La interfaz gráfica basada en texto de Norton Commander con sus característicos paneles.

Norton Commander fue un software importante porque permitió un uso más eficiente de las microcomputadoras basadas en un sistema operativo MS-DOS; y usándolo no era necesario escribir comandos para realizar las tareas comunes de crear, copiar o eliminar archivos o carpetas, entre otras actividades.

El único problema de esta forma de implementar a nivel de cada programa la interacción con los usuarios estaba en la falta de uniformidad, dado como se puede imaginar, así cada software exponía una interfaz propia en lugar de una estándar ofrecida a nivel de sistema operativo, si bien muchos elementos de la interfaz como los menús eran comunes a todas ellas.

El estado de cosas comentado provocó que muchos lenguajes de programación populares en los 80s incluyeran instrucciones dedicadas a implementar las interfaces gráficas en modo texto de una forma más uniforme y a la vez sencilla para los programadores; si bien esto era posible hacerlo con todos los lenguajes puesto como ahora sabemos una interfaz de usuario en modo texto, incluso siendo de las más elaboradas, consiste nada más en escribir en pantalla ciertos caracteres extendidos y usar de forma adecuada los colores.


Las TUI en FoxBASE

En particular en un sistemas xBase como FoxBASE derivado de dBase II, un software de gestión de bases de datos bastante popular en los años 80 para crear sistemas de gestión para las empresas, era relativamente sencillo de implementar una interfaz en modo texto más o menos básica, como podemos ver en las líneas de código FoxBASE expuestas a continuación.

Por medio de este código se presenta un menú en pantalla con un submenú en el menú Listado y se muestran recuadros de mensaje como resultado de la interacción con los menús Alta, Baja, y Salir.


SET STATUS OFF
SET SCOREBOARD OFF
SET TALK OFF
STORE .F. TO ExitFlag
DO WHILE .NOT. ExitFlag
    SET COLOR TO W/B
    CLEAR
    SET COLOR TO W+/BG, N/W, W
    @ 0,0 SAY SPACE(80)
    @ 24,0 SAY SPACE(80)
    SET MESSAGE TO 24 CENTER
    @ 0,1 PROMPT "ALTA " MESSAGE "Alta de usuarios "
    @ 0,6 PROMPT "BAJA " MESSAGE "Baja de usuarios "
    @ 0,11 PROMPT "LISTADO " MESSAGE "Listado DESDE/HASTA"
    @ 0,19 PROMPT "SALIR " MESSAGE "Salir del programa"
    MENU TO Option
    SET PROCEDURE TO MsgUtils
    STORE 0 TO MsgButton
    DO CASE 
        CASE Option = 1
            DO MsgBox WITH "Escogió dar alta", "Aceptar", "Cancelar", "", .F., MsgButton
        CASE Option = 2
    DO MsgBox WITH "Escogió dar baja", "Aceptar", "Cancelar", "", .F., MsgButton
        CASE Option = 3
            @ 2,12 Prompt "Personas " Message "Lista las personas"
            @ 3,12 prompt "Mascotas " message "Lista las mascotas"
            @ 1,11, 4,21 BOX
            MENU TO SubOption
        CASE Option = 4
            DO MsgBox WITH "¿Está seguro de salir del sistema?", "Sí", "No", "", .F., MsgButton
            IF MsgButton = 1
                ExitFlag = .T.
            ENDIF
    ENDCASE
    CLOSE PROCEDURE
ENDDO
SET TALK ON
SET SCOREBOARD ON
SET STATUS ON
SET COLOR TO
CLEAR

Por supuesto, en este caso se trata de algo bastante sencillo a modo de demostración.

En el código también se usa un procedimiento nombrado MsgBox y definido en MsgUtils cuyo código se ha omitido; éste procedimiento es el encargado de conformar y mostrar el mencionado recuadro del mensaje para los usuarios.

En la captura expuesta seguidamente se puede observar el resultado obtenido por medio del código presentado, donde también se puede ver el cuadro de mensaje invocado por el menú Salir para comprobar si un usuario de verdad tiene la intención de terminar el programa.

La interfaz de usuario en modo texto hecha usando FoxBASE.


En resumen, en una época del pasado, cuando reinaba MS-DOS en el entorno PC, las interfaces basadas en texto tuvieron una importancia primordíal para facilitar la interacción de los usuarios no especializados con la computadora sin desperdiciar muchos recursos escasos tales como la memoria o el poder de cálculo de procesadores limitados.

En nuestros días por otro lado es mucho menos común ver programas basados en una TUI dado tanto la memoria como la capacidad de cálculo de los procesadores se han vuelto más disponibles.

Pero simpre es bueno tener presente cómo podemos usar una TUI en entornos limitados o donde no conviene desperdiciar recursos con una GUI.


Tengo unas preguntas para ti

¿Qué más puedes comentar sobre las formas de interactuar con los usuarios en la época de MS-DOS?

¿Qué interfaz de usuario preferías o prefieres para utilizar una computadora?

¿Qué temas parecidos te interesan?