¿Cuáles son los beneficios de usar la línea de comandos para el desarrollo de software? [cerrado]

7

¿Qué beneficios se obtienen al usar la línea de comandos para el desarrollo de software en lugar de usar una GUI alternativa? ¿Es la línea de comandos más rápida para ciertas tareas? ¿Algunas herramientas solo están disponibles a través de la línea de comandos?

    
pregunta br3w5 30.09.2012 - 15:57

3 respuestas

27

Las ventajas de la línea de comandos sobre las aplicaciones GUI incluyen:

  1. Si está escribiendo estas herramientas en lugar de usarlas, la línea de comandos es fácil de desarrollar para. Aceptar argumentos en la línea de comandos es trivial y la salida a un flujo de texto es igualmente fácil.
  2. Las aplicaciones de línea de comandos se pueden usar fácilmente en archivos por lotes o scripts, lo cual es ideal para pruebas o compilaciones automatizadas. La mayoría de las herramientas de compilación, como make, ant y msbuild, brindan un buen soporte para llamar a las herramientas de línea de comandos.
  3. Las secuencias de entrada, salida y error se pueden redirigir fácilmente, lo que permite enviar o recibir información desde archivos u otras aplicaciones. Esto puede significar que los datos de prueba se pueden suministrar fácilmente o que se pueden capturar la salida.
  4. Existe un mecanismo de devolución de errores simple pero estándar (código de retorno y la secuencia de error). La detección de un error en una GUI puede requerir la automatización de la interfaz de usuario.
  5. El uso a través de shell remoto o conexiones similares hace que sea mucho más fácil realizar tareas de forma remota, como cuando un desarrollador se conecta desde casa o en la carretera. Las conexiones de escritorio remoto son más frecuentes en estos días pero requieren más ancho de banda y una conexión de menor latencia.
  6. Hay estándares definidos para la ayuda (como el comando unix man o el paso -? como argumento). Si alguien no conoce una característica, puede ver fácilmente lo que proporciona la herramienta. De manera similar, hay estándares de sintaxis de comodines definidos para especificar múltiples archivos, basándose en el conocimiento de desarrolladores probablemente existentes.

Sin embargo, las aplicaciones de línea de comandos tienen estas desventajas en comparación con las aplicaciones GUI:

  1. Las aplicaciones de la línea de comandos son más difíciles de aprender a usar, especialmente para aquellos que no están acostumbrados a ellas. Por lo general, esto no es un problema para el desarrollo de software porque los desarrolladores a menudo se utilizan para ordenar herramientas de línea, pero podrían ser problemáticos para personas menos técnicas involucradas en el desarrollo, como control de calidad junior, localización y escritores técnicos.
  2. Las aplicaciones de línea de comandos requieren un teclado y, por lo tanto, no son prácticas para algunos dispositivos como teléfonos o tabletas.
respondido por el akton 30.09.2012 - 16:02
8

Supongo que te refieres a usar un compilador de línea de comandos en lugar de un IDE. Deje un comentario si no, y eliminaré mi respuesta.

Aprendizaje. Aprender cómo se compilan, enlazan o mapean unidades de código en su idioma. Normalmente, debe indicar explícitamente al compilador qué archivos compilar y vincular. Así que obtienes una mejor comprensión de cómo funciona. Un IDE hará magia para hacer tu vida más fácil, pero te mantendrá ignorante.

Luego, avanza un paso más y aprende a crear tu propio archivo de marca. Esta es una habilidad valiosa. Su make-file hace que el enfoque del ciclo de construcción sea la conveniencia de la "magia IDE", a la vez que se mantiene la comprensión y el aprendizaje completos.

Además, su proceso de compilación es fácil de poner en control de código fuente. Y es fácil portar el proceso de compilación para trabajar con una variedad de compiladores. A veces solo es cuestión de cambiar 1 línea en el archivo de creación para el nombre del compilador.

Desarrollas habilidades que te permiten trabajar en muchas plataformas. Los editores de texto y los compiladores de línea de comando son muy similares de todos los proveedores y en todas las plataformas. Estas herramientas básicas le dan un pase para desarrollar en cualquier sistema, en cualquier momento y en cualquier lugar, las 24 horas, los 7 días de la semana. Si ha estado viviendo en Visual Studio toda su vida, será una transición mucho más difícil para trabajar fuera de ella.

Si recorres este camino, es posible que desees aprender un editor de texto avanzado como VIM. Complementa la capacidad de trabajar en cualquier plataforma, ya que es compatible en casi todas partes. Tiene una gran curva de aprendizaje, pero la recompensa es la capacidad de editar texto sin esfuerzo a alta velocidad sin mover las manos hacia el mouse.

Por cierto, no estoy en contra de los IDEs.

    
respondido por el Lord Tydus 30.09.2012 - 16:37
3

Las GUI tienen la ventaja de poder utilizar visualizaciones avanzadas. Esto puede ser extremadamente útil para que los datos complejos sean significativos.

Las líneas de comando, por otro lado, a menudo son más potentes (por ejemplo, totalmente compatibles con scripts) y, por lo general, más rápidas. Las otras respuestas se han expandido en eso. Aquí solo quiero mencionar que las GUI no ofrecen una ventaja para algunas tareas:

En el desarrollo, muchas tareas no necesitan ninguna visualización que no se pueda realizar mediante una línea de comandos / interfaz de texto. Tome compilación: los buenos editores de texto (Vim, Emacs) admiten fácilmente el análisis de mensajes de error y saltarán directamente al error en el código. Los IDEs gráficos no ofrecen más. En pocas palabras, para tales tareas no hay necesidad de una interfaz gráfica, y perdería la flexibilidad y la eficiencia de una interfaz de línea de comandos.

Por otro lado, una visualización interactiva puede ser muy útil si estás tratando con una interacción de datos compleja. El software de control de versiones que puede mostrar gráficos de sucursales a menudo supera las interfaces de texto aquí. Por ejemplo, esta es una instantánea de uno de mis repositorios:

Estoesmuchomásconvenientequelainterfazdetexto,apesardequenisiquieraesunavisualizaciónparticularmentepoderosa.Pero,unavezmás,tengaencuentaque,enrealidad,manipularelrepositorioesmásrápidousandolalíneadecomandos(almenosparamí).UtilizolaGUIsoloparamostrarlasramas.

Tambiéntengaencuentacómo Github ha agregado recientemente una interfaz de línea de comandos en reconocimiento del hecho de que muchas tareas se pueden realizar más rápido al escribir una comando que haciendo clic a través de una página web.

    
respondido por el Konrad Rudolph 01.10.2012 - 08:50

Lea otras preguntas en las etiquetas