Línea de comandos
La terminal, la consola, la línea de comandos o como quieran llamarla. Como usuario intensivo, siempre escucho tanto elogios como críticas que generalmente demuestran poco conocimiento de causa, y no puedo no dejar mi opinión al respecto. Creo firmemente que usar una línea de comandos:
Facilita el single tasking: El avance de la tecnología y de la sociedad en general nos inculcan que debemos hacer muchas cosas al mismo tiempo, pero la realidad es que las personas sólo podemos hacer una cosa a la vez (el que mucho abarca, poco aprieta…). En una consola se puede hacer una sola cosa a la vez, y te obliga a pensar qué es lo que realmente querés hacer.
Permite concentrarse más en el qué y no en el cómo. Para mí en una gran mayoría de los casos usar una interfaz gráfica es conocer detalles de implementación. Después cambian la interfaz, y todo el mundo se queja (ejemplos sobran: Windows, Office, GMail, Facebook…). ¿Por qué? Porque en la mayoría de los casos se hacía foco en cómo hacer las cosas (por ejemplo, en qué lugar específico de la pantalla hacer clic), y no en qué se estaba haciendo efectivamente.
Impulsa un aprendizaje más uniforme: Las herramientas que proveen interfaz de línea de comandos suelen ser más estándar que las gráficas, que tienden a ser completamente distintas entre sí. Por ejemplo, el pasaje de parámetros y el uso de
manes un común denominador de muchísimas aplicaciones. La curva de aprendizaje puede ser más dura al inicio (conocer las utilidades básicas Unix, por ejemplo), pero después no hay mucho más, no hay que aprender nada nuevo sino combinar lo que ya se conoce.Favorece la abstracción de tareas repetitivas: Es mucho más intuitivo descubrir lo repetitiva que es una tarea cuando se tipean los comandos que, por ejemplo, cuando se usa el mouse. Y también es más fácil de automatizar, de correr en background, de que sea más portable, entre otras ventajas.
Algunos de los contra argumentos que he escuchado:
Para usar la consola hay que ser un experto/gurú/tener memoria para acordarse todos los comandos: Nada, pero nada de eso. La consola no está pensada para tipear comandos complejos. Y si hay que hacerlos, hacerlos una sola vez. Los aliases y los scripts son tus mejores amigos. Mi memoria desastrosa puede dar fe de ello :P
Las herramientas gráficas son en general mejores: ¡Depende para qué! ¡Y depende de cada uno y de cómo se da la interacción con cada aplicación! Me pasa muy seguido que puedo estar 15 minutos buscando una opción, navegando por un mar interminable de menús en un programa de ofimática para hacer algo muy sencillo. Eso es un síntoma de que algo falta. Una línea de comandos para decir exactamente qué queremos.
La consola es poco cómoda, no se puede resaltar lo importante: Hay un montón de comodidades como los colores y el autocompletado que agregan mucho al uso de una línea de comandos.
Bien… ¿entonces tenemos que usar todas herramientas con línea de comandos? No, simplemente hay que detenerse a pensar qué es lo que usamos de cada programa y cómo lo hacemos, para buscar lo más óptimo que funcione con nuestra forma de interactuar. En mi caso, por ejemplo, nunca usaría un cliente de correo de línea de comandos. O un chat. O un editor de imágenes. Pero depende de cada uno.
Conclusión
Lo ideal es que el potencial de la línea de comandos y los recursos más gráficos avancen de la mano hasta convertirse en una sola cosa (y consistente a través de diferentes aplicaciones). Pero hay cosas que están por demás demostradas (por ejemplo, escribir qué se quiere hacer en lugar de mover y apretar un mouse, y también que en una pantalla negra con sólo letras verdes no se distingue qué es importante y qué no). Entonces, nada de fanatismos sobre una cosa u otra. El único fanatismo sano es el de cuestionarse absolutamente todas las cosas, para pensar mejores soluciones.