Saltar al contenido principal

GUI vs CLI: una batalla silenciosa

· 13 min de lectura
Oscar Adrian Ortiz Bustos

Introducción

En la constante evolución del mundo tecnológico, la eterna disputa entre la Interfaz Gráfica de Usuario (GUI) y la Interfaz de Línea de Comandos (CLI) es una de las más antiguas y menos conocidas. En este artículo, intentaré explicar mi punto de vista sobre esta batalla y por qué creo que la CLI es superior a la GUI. Intentaré ser lo más objetivo posible, pero no prometo nada. Cada enfoque tiene sus defensores apasionados, argumentando fervientemente sobre las ventajas de su método preferido.

A lo largo de mi experiencia en el mundo de la tecnología, he observado como la mayoría de las personas se sienten atraídas por las interfaces gráficas coloridas y amigables que dominan nuestros dispositivos. Sin embargo, mientras que las GUI pueden ser una opción cómoda para la mayoría de las personas debido a la facilidad que ofrecen para la realización de tareas simples, la CLI es una herramienta poderosa para los usuarios avanzados que necesitan realizar tareas complejas de forma rápida y eficiente, ya que nos ofrece el control absoluto sobre los sistemas y una velocidad que puede marcar la diferencia en proyectos tecnológicos complejos.

Acompáñame en este viaje a través de la batalla silenciosa entre la GUI y la CLI, y descubre por qué creo que la segunda es superior. Aunque en La Cueva del NeanderTech no discriminamos a nadie, y creemos que ambos enfoques son válidos, y que cada uno tiene su lugar en el mundo de la tecnología.

GUI

Una GUI o Graphic User Interface por sus siglas en inglés es una manera visual de interactuar con una computadora o alguna aplicación de software. Las GUI se basan en el paradigma de WIMP (Windows, Icons, Menus, Pointer), que se refiere a la forma en que los usuarios interactúan con las interfaces gráficas. El usuario interactúa con la GUI usando un puntero, generalmente un mouse, para hacer clic en íconos, botones y menús, y mover ventanas.

Las interfaces de usuario gráficas se han vuelto omnipresentes en la informática moderna, y se pueden encontrar en casi todas partes, desde teléfonos móviles hasta reproductores de MP3, desde sistemas operativos hasta aplicaciones de software. Son tan comunes que a menudo se dan por sentadas, pero son una parte integral de la experiencia informática moderna, y son consideradas por muchos como la forma más fácil de interactuar con una computadora.

Historia de la GUI

No quiero aburrirte con la historia de la GUI, ya que si quisieras la historia te irías a Wikipedia. Pero si me gustaría contarte un poco sobre su origen y como ha evolucionado hasta nuestros días.

  • Primeros conceptos (1940 - 1960): El concepto de interfaz gráfica se remonta a las décadas de 1940 y 1950, cuando los investigadores empezaron a explorar formas de hacer más accesibles los ordenadores. Sin embargo, estos primeros intentos se vieron limitados por la tecnología de la época.
  • Sketchpad (1963): El primer sistema de interfaz gráfica de usuario fue Sketchpad, desarrollado por Ivan Sutherland en 1963. Sketchpad permitía a los usuarios dibujar en una pantalla usando un lápiz óptico. El sistema también permitía a los usuarios manipular objetos en la pantalla, como cambiar el tamaño de un objeto o moverlo a una nueva ubicación.
  • Xerox PARC (años 70): El Centro de Investigación de Palo Alto (PARC) de Xerox desempeñó un papel fundamental en el desarrollo de las interfaces gráficas de usuario. Los investigadores del PARC, entre los que se encontraba Alan Kay, desarrollaron el concepto de un ordenador personal, y crearon el primer ordenador personal con interfaz gráfica de usuario, el Alto. El Alto fue el primer ordenador personal con interfaz gráfica de usuario, y se considera un precursor de los ordenadores personales modernos.
  • Apple Lisa (1983): El Apple Lisa fue el primer ordenador personal con interfaz gráfica de usuario comercialmente disponible. El Lisa fue un fracaso comercial, pero sentó las bases de la interfaz gráfica de usuario de Apple, que se utilizó en el Macintosh.
  • Windows 95 (1995): Windows 95 fue el primer sistema operativo de Microsoft en utilizar una interfaz gráfica de usuario. Windows 95 fue un gran éxito comercial, y sentó las bases de la interfaz gráfica de usuario de Windows, que se utiliza en todas las versiones posteriores de Windows. A partir de aquí la historia de la GUI es muy conocida, y no creo que necesite explicarla.

Ventajas

En La Cueva del NeanderTech no somos fanáticos de las GUI, pero eso no significa que no tengan sus ventajas. A continuación, te presento algunas de las ventajas que ofrecen:

  1. Amigable para el usuario: Es fácil de usar y no requiere ningún conocimiento técnico. Cualquiera puede usar una interfaz gráfica de usuario, incluso si no tiene conocimientos técnicos. Aunque es importante conocer también la UX (User Experience) para poder crear interfaces gráficas de usuario que sean fáciles de usar. Quizá en un futuro escriba un artículo sobre UX, si te interesa déjamelo saber en los comentarios.
  2. Representación visual: Utiliza imágenes y símbolos para representar la información. Esto hace que sea más fácil de entender para los usuarios, ya que no tienen que leer texto para entender la información. Esto también hace que sea más fácil para los usuarios encontrar la información que están buscando.
  3. WYSIWYG: (What You See Is What You Get). Esto significa que lo que ves en la pantalla es lo que obtienes. Esto hace que sea más fácil para los usuarios crear documentos, ya que pueden ver cómo se verá el documento antes de imprimirlo. Word o Libreoffice es un claro ejemplo de esto.
  4. Curva de aprendizaje baja: Es fácil de aprender. Los usuarios pueden aprender a utilizar una interfaz gráfica de usuario en poco tiempo. Esto hace que sea más fácil para los usuarios, ya que no tienen que pasar mucho tiempo aprendiendo a utilizarla.
  5. Accesibilidad: Es accesible para los usuarios con discapacidad. Los usuarios con discapacidad pueden utilizar una interfaz gráfica de usuario con un lector de pantalla o un teclado en pantalla. Esto hace que sea más fácil para los usuarios con discapacidad utilizar una computadora o una aplicación de software.

Desventajas

Pero no todo es color de rosa en el mundo de las GUI, y es que también tienen sus desventajas. A continuación, te presento algunas:

  1. Requiere más recursos: Requieren más recursos que la interfaz de línea de comandos. Esto hace que sea más difícil para los usuarios con computadoras de baja potencia utilizar una interfaz gráfica de usuario.
  2. Automatización: No es tan fácil de automatizar como la interfaz de línea de comandos. Esto hace que sea más difícil para los usuarios automatizar tareas repetitivas.
  3. Menos control: No proporciona tanto control como la interfaz de línea de comandos. Esto hace que sea más difícil para los usuarios realizar tareas avanzadas.

CLI

Llegamos a la parte que más me gusta, aquí si me voy a extender y es que la CLI es mi favorita. La CLI o Command Line Interface por sus siglas en inglés es una interfaz de usuario que permite a los usuarios interactuar con un ordenador utilizando comandos de texto. Los usuarios pueden utilizar la interfaz de línea de comandos para ejecutar programas, administrar archivos y realizar otras tareas. La CLI suele ser la más elegida entre los desarrolladores o administradores de sistemas, ya que es más rápida y eficiente.

Historia de la CLI

Nos remontamos a las décadas de 1960 y 1970, las computadoras se estaban convirtiendo en algo más que simples calculadores. Podrían guardan archivos en el disco y tener múltiples aplicaciones en ejecución con múltiples usuarios. Pero estas cosas eran difíciles de controlar y fáciles de romper. Afortunadamente, hubo una idea muy inteligente de cubrir todas estas partes internas en una carcasa agradable y utilizable.

Esta carcasa se llamaba "Shell". La primera de ellas, conocida como "Thompson Shell", fue creada por Ken Thompson en 1971 para ejecutarse en PDP-7, marcando así el inicio de las operaciones en el sistema operativo Unix. Esta pionera shell estableció un hito al ser la primera de su tipo en ejecutarse en el mencionado sistema operativo. Su contribución fue crucial para el desarrollo de Unix y la evolución de las interfaces de línea de comandos en el mundo de la informática.

Fue seguida por BASH una abreviatura que proviene de "Bourne Again SHell"" (Shell Renacida de Bourne, haciendo referencia a la shell Bourne original). Fue creada por Brian Fox en 1989 para el proyecto GNU y es la shell por defecto en la mayoría de las distribuciones de Linux y macOS.

MORALEJA

Nunca dejes que un Ingeniero de Software elija el nombre de tu proyecto. Ya que nos gusta hacer juegos de palabras con el nombre de las cosas.

La historia de los shells es rica y se remonta a los inicios de las "Interfaces de estilo Unix" que se originaron con el shell del Sistema Unix 1 en 1969. Sin embargo, incluso estos shells iniciales fueron influenciados por programas más antiguos, como el "RUNCOM." Quizá eso no te diga nada, pero si usas algún equipo con Linux te habrás dato cuenta que los dotfiles se llaman así por el archivo .rc que se usaba para configurar el RUNCOM.

¿Por qué seguimos usando la CLI?

La respuesta radica en que, en esencia, los shells de línea de comandos no han cambiado drásticamente desde entonces. A diferencia de las GUI, que han evolucionado enormemente con el tiempo. La estabilidad de la CLI es crucial para los que creamos secuencias de comandos o los que administran sistemas, ya que cualquier cambio en la interfaz podría romper sus secuencias de comandos.

La buena noticia es que tanto las líneas de comandos como las interfaces gráficas son, en esencia, carcasas relacionadas con la misma funcionalidad, lo que permite a los usuarios utilizarlos de manera intercambiable.

Ventajas

Va a ser difícil para mí ser imparcial en esta sección, pero voy a intentarlo. A continuación, te presento algunas de las ventajas que ofrecen las CLI:

  1. Eficiencia: Es más eficiente que la interfaz gráfica de usuario. Esto hace que sea más fácil para los usuarios realizar tareas repetitivas debido a la capacidad de poder automatizarlas.
  2. Control total: Proporciona un control total sobre el sistema, lo que permite al usuario ajustar la configuración y desempeño del sistema con una gran precisión.
  3. Pocos recursos: Consumen menos recursos que la interfaz gráfica de usuario. Esto hace que sea más fácil para los usuarios con computadoras de baja potencia utilizar una interfaz de línea de comandos y realizar exactamente las mismas tareas que con una interfaz gráfica de usuario.
  4. Scripting: Son completamente scripteables (ojo con el anglicismo), lo que permite a los usuario automatizar flujos de trabajo complejos y realizar tareas repetitivas con facilidad.
  5. Acceso remoto: Permite a los usuarios acceder a los sistemas de forma remota. Esto hace que sea más fácil para los usuarios acceder a los sistemas desde cualquier lugar y en cualquier momento, lo que es especialmente útil para los administradores de sistemas.
  6. Portabilidad: Es más portátil que la interfaz gráfica de usuario. Esto hace que sea más fácil para los usuarios utilizar una interfaz de línea de comandos en diferentes sistemas operativos.

Desventajas

No hay. Bueno, en realidad si hay, y varias, a continuación te pongo algunas de las más importantes:

  1. Curva de aprendizaje: La CLI tiene una curva de aprendizaje más pronunciada que la interfaz gráfica de usuario. Esto hace que sea más difícil para los usuarios aprender a utilizar una interfaz de línea de comandos. Y en algunos casos puede llegar a ser intimidante.
  2. Descubrimiento limitado: No proporciona una forma fácil de descubrir nuevas características. Esto hace que sea más difícil para los usuarios descubrir nuevas características sin la documentación adecuada o conocimientos previos.
  3. Propensa a errores: Los errores tipográficos o los comandos incorrectos pueden tener consecuencias imprevistas, como la pérdida de datos o directamente la destrucción del sistema. Esto hace que sea más difícil para los usuarios utilizar una interfaz de línea de comandos sin conocimientos previos. Aunque así se aprende, a base de errores. (No me preguntes como lo sé, y por favor ten cuidado con el comando rm).
  4. Falta de retroalimentación visual: No proporciona retroalimentación visual. Esto hace que sea más difícil saber si un comando se ha ejecutado correctamente o no. Aunque esto se puede solucionar con un poco de imaginación y el uso de colores, aunque se puede ver el resultado de la ejecución de un comando con el comando echo $?. Si el resultado es 0, todo ha ido bien, si es 1, algo ha fallado. (Esto es un poco más avanzado, pero es muy útil 😉)
  5. No es ideal para todas las tareas: Aunque si permite la ejecución de comandos complejos, para algunas tareas específicas es más fácil utilizar una interfaz gráfica de usuario. Como editar imágenes, por ejemplo. Existe Pillow para Python, pero no es lo mismo.

Conclusión

En esta reflexión sobre la eterna disputa entre la Interfaz Gráfica de Usuario (GUI) y la Interfaz de Línea de Comandos (CLI), he intentado ofrecer una visión equilibrada, aunque subjetiva, de estas dos opciones. Mi preferencia personal se inclina claramente hacia la CLI, debido a su eficiencia, control y capacidad de automatización. Aunque las GUI también tienen su lugar en el mundo de la informática, y son ideales para ciertas tareas, como la edición de imágenes, por ejemplo.

Si bien reconozco que la CLI puede resultar intimidante (al principio lo fue para mi también) debido a su curva de aprendizaje, creo que es una habilidad que vale la pena aprender. Y aunque no es necesario ser un experto en la materia, creo que es una habilidad que todos los usuarios deberían tener. Y no solo los usuarios de Linux, sino también los usuarios de Windows y macOS, ya que todos estos sistemas operativos tienen su propia CLI.

Por último, en La Cueva del NeanderTech, respetamos ambas opciones y creemos que la elección depende de las necesidades y preferencias personales. La evolución tecnológica continuará, y la batalla entre estas interfaces seguirá siendo un tema apasionante y enriquecedor para la comunidad. ¿Tú que opinas? ¿Eres más de CLI o de GUI? La elección es tuya, y es precisamente esa libertad de elección la que hace que la tecnología sea tan apasionante.

Los desarrolladores tienen la capacidad de atención de criaturas del bosque ligeramente taradas.

— Torvalds, Linus. (2006).