La terminal es poderosa, la terminal tiene poder

Los últimos días ha habido eso que ahora llaman «salseo» en las redes libres de GNU Social. Discutían sobre una tema que abrió Adrián Perales en su blog personal y que luego siguió hablando Eugenio en su gran blog llamado /etc/cron.d. Luego yo escribí esta entrada pero no la publiqué, y apareció el post de Fanta de ElBinario, y aproveché para hacer unas modificaciones y acabar de publicarlo. Me he decidido escribir esta post porque me gustaría añadir un par de cosas y posicionarme un poco en contra en sus tres opiniones (si, voy fuerte). Lo he simplificado en los siguientes puntos que en realidad algunos se relacionan mucho.

No es amor, es confianza ========================

Se ha discutido infinitamente por ese «amor por la terminal» que algunos tenemos. Incluso hay quienes dicen que hay muchas cosas en GNU/Linux que solo se pueden hacer por Terminal. Pienso que no es así, la gran mayoría de cosas importantes se pueden hacer de manera gráfica. El problema es cuando un usuario poco experimentado intenta hacer algo, la caga e intenta buscar solución. Pues esta solución, seguramente será mediante una terminal. Pero si usas cualquier distribución moderna actual no vas a tener que usar la terminal para absolutamente nada. Y tenemos que diferenciar dos tipos de usuarios: aquellos que en un día en este blog nombre como «usuarios que no quieren nada más que mirar el correo y mirar películas» y los usuarios «somos expertos«. De los primeros, si no tocan nada que no tienen que tocar, el Terminal ni lo van ni a oler, si por el caso contrario tocan algo o quieren hacer algo que «no saben» o «no tienen el conocimiento adecuado para hacerlo» es probable que el sistema diga «Ouch, necesito un arreglo por terminal«. Y tengo un ejemplo claro. Mi madre con 68 años usa Elementary OS y ella no tiene que usar la Terminal. Mira su correo, mira películas, escribe, incluso instala programas que necesita. Ah, y además actualiza el sistema ella sola. ¿Cuando necesita que su querido hijo use la terminal? Cuando una actualización la fastidia de mala manera, cuando tiene que mirar si tiene conexión a Internet… pero eso lo hago yo, porque soy parte del grupo de usuarios que dicen «somos expertos».

¿Y que implica lo anterior? Una buena educación al nuevo usuario. Si yo, cuando le instalé a mi madre eOS le hubiera dicho «Mamá, para actualizar, abres una terminal, te pones en modo sudo, y ejecutas apt-get update && apt-get -y upgrade» lo más probable es que mi madre me tirara el ordenador por la cabeza. Le dí nociones básicas de informática (bueno, hizo un cursito anteriormente con Windows, pero le dije que era lo mismo :P) le expliqué donde estaban las aplicaciones, le preparé el sistema para ella, con letra grande y con un tema con algo de contraste. Le expliqué que a veces sale un icono en la barra que «salta» y que significa que es una especie de notificación. Que si ve un icono con una flecha verde, significa que tiene actualizaciones y que es muy importante que estén al día. Que solo tenía que hacer clic en «Actualizar» y poner su contraseña (la misma que al iniciar sesión) y esperar a que acabara. Lo aprendió, si, le tuve que repetir cosas más de mil veces, pero ahora mismo le pongo un Windows delante y no sabe usarlo. En cambio le pongo un GNU/Linux (eOS) y se siente como en casa.

Por lo tanto, un usuario no tiene porque tocar una terminal. Si quiero saber la IP del ordenador de mi madre, ella va al Network Manager y me dice «esos números raros». Porque mi madre, y ojo!, TODOS LOS USUARIOS, no tienen porque ser técnicos y aprenderse mil comandos. No tienen la necesidad, a menos que quieran investigar y quieran aprenderlos.

Esto es como si viene un técnico a arreglarte la lavadora y te dice «Señor, le voy a explicar los principios básicos de una lavadora para que usted mismo pueda arreglarla la próxima vez que se estropee. El tambor sirve para…». Un usuario, o en definitiva, una persona, no tiene porque aprender ciertas cosas en la vida, cada uno se especializa en un tema y un abogado que tiene sus conocimientos no tiene porque saber que con ifconfig puede ver la IP de su máquina (pero si por lo contrario tiene que saber que en Network Manager puede ver información de su red).

Mentalidad informática ======================

Esto lo he pensado siempre y creo que muchos informáticos estaréis de acuerdo conmigo: Los informáticos vemos el mundo de manera MUY distinta al resto. Yo he llegado ha pensar en muchas ocasiones «Uhm, este problema se soluciona con un if…else…». Y justo después pensar «Pero esto es la vida real y no puedo hacer eso». Por lo tanto, no podemos tachar a los usuarios de tontos, pero tampoco podemos pretender que aprendan cosas técnicas. Los usuarios quieren tocar, hacer clic, enter y que el programa haga el resto. Los usuarios, la gente que no es informática, no podemos pretender que tengan la misma mentalidad que tenemos nosotros. Y eso es un error muy grande que solemos cometer (me incluyo a esto).

Siento ponerme duro ===================

Lo que también quiero explicar, es que el mito este de «todo se tiene que hacer con terminal» en parte tenemos la culpa los usuarios experimentados. Porque a la mínima intentamos resolver las cosas con Terminal y, eso no está mal, pero hay mil cosas que se pueden hacer de modo gráfico, como por ejemplo cambiar permisos a ficheros y directorios, consultar la IP, modificar la IP, cambiar el DNS… Por lo tanto, no tiene lógica que un usuario experimentado le enseñe a un usuario poco experimentado a usar la Terminal. Pero eso no significa que la terminal no sea de las mejores herramientas que tenemos hoy en día en los sistemas UNIX y que sea mil veces mejor resolver los problemas desde allí. La terminal es poderosa, la terminal tiene poder.

Pero, entiendo la posición de los anteriores blogs. Hay cosas especificas que se tienen que usar Terminal SI o SI. Y aquí quiero hacer un especial hincapié a una cosa. Porque seamos realistas, cuando tienes que usar la Terminal SI o SI, es porque el entorno gráfico (o cierto software) no te permite hacer una cosa por la razón que sea. Aquí entra un actor muy importante: el entorno gráfico. Si el entorno gráfico falla y no carga bien los iconos o no muestra alguna parte importante del escritorio, pues seguramente tengamos que usar Terminal para solucionarlo (si no, siempre se puede reiniciar :P). Y aquí, ¿Quien tiene el problema? ¿El usuario o el entorno gráfico? Mientras algunos entornos gráficos se dedican a quitar opciones gráficas a sus usuarios en vez de añadir opciones, como Gnome o Unity, otros entornos se preocupan para ser estables y poder hacer prácticamente TODO de modo gráfico. En mi ordenador de sobremesa utilizo Kubuntu y apenas he tenido que sacar una Terminal.

Seamos sinceros y precisos ==========================

Dicho esto, entiendo que esto que voy a decir ahora, no pueda contentar a mucha gente y que será muy egoísta por mi parte y que me hará ser muy poco empático, pero, si encuentras que en algún software falta alguna opción gráfica importantísima: menos discutir y más desarrollar. ¿No eres programador? Explica tu problema a la comunidad, seguro que encontrarás algún desarrollador que trabaje en ello. Y digo esto de esta manera, porque he visto mucha queja en muchos blogs y pocos correos en listas explicando el problema para que se solucione. Discutir, hablar y conversar sobre lo que nos preocupa es genial y muy saludable, pero no hará que aparezca un maldito botón que solucione tu dolor de cabeza y seguramente el de muchos. Y nunca voy a decir que no opinemos sobre ciertos temas, yo mismo soy el primero en quejarme de Gnome, pero si tuviera la oportunidad lo haría.

¿Un sistema operativo sin terminal? No, gracias. ================================================

En uno de los blogs se comentaba de tener una distribución «moderna» sin terminal. Totalmente en contra. Un sistema, por mucho que solo lo vaya a usar un usuario poco experimentado, siempre lo va a tener que arreglar un usuario experimentado. La Terminal es más que necesaria. Además, ¿A caso no hay terminal en otros sistemas como Windows o Mac OS X? Yo he configurado la red en un Mac, incluso he copiado ficheros (por cierto, cuando el entorno gráfico fallaba). El problema no se soluciona cortando por donde no nos gusta, el problema se soluciona desde abajo, solucionando los problemas y educando como tiene que ser, sin que un usuario experimentado le diga jamás a uno poco experimentado «Abre una terminal y…».

Vamos acabando… ===============

Como anécdota y para acabar, estaba esta tarde haciendo una actividad sobre GIT en clase y he estado 20 minutos explicando en mi practica como se tiene que hacer un «add» y un «commit» de manera gráfica. Entre explicaciones e imágenes la explicación me ha ocupado 2 paginas. Luego, yo, que soy un alumno algo especial (y usuario experimentado de los que dicen «somos experimentados») he añadido a esa respuesta «Si queremos hacerlo de manera más sencilla y fácil, podemos hacerlo mediante comandos en una Terminal». Y aquí me he quedado parado pensando en todo el salseo, las dos entradas y en todo lo que había pensado para esta. Realmente, 3 comandos para hacer lo que dicen dos paginas llenas de imágenes e indicaciones. Sé que he dicho que es recomendable explicar al usuario el modo gráfico, pero a veces piensas «Joder, es más fácil esos tres putos comandos.«.

Este artículo es antiguo y formaba parte de _voidNull. Tras unos cambios en el blog, decidí eliminar la categoría de “Opinión” y para no eliminar los artíclos he decidido subirlos en WriteFreely.