Si un programador hace una solicitud para su uso personal, ¿prefiere construir ese programa en forma de GUI o CLI?

Esta pregunta es bastante vaga y está abierta a una considerable cantidad de debate. Un programador talentoso considerará las ventajas de ambas formas. Considere estos tres factores:

En términos generales, una GUI hace que las cosas sean más fáciles de usar más adelante, pero implica un mayor compromiso en el ciclo de desarrollo inicial, ya que la interfaz de usuario también debe realizarse y depurarse.

También depende del entorno de uso. Si se trata de una aplicación del lado del servidor, por ejemplo, una GUI no es práctica y probablemente sea imposible. En general, los usuarios de Windows prefieren usar una GUI debido a la naturaleza poco intuitiva de las herramientas de línea de comandos de Windows, pero muchos usuarios de * nix preferirán la CLI, ya que generalmente se traduce en un tiempo de desarrollo más rápido.

Por último, también depende de la aplicación. Por ejemplo, algunas cosas son naturalmente más adecuadas para una forma u otra. En términos generales, los programas que se escriben con el propósito de una operación repetitiva (o lote) se escriben en la CLI, ya que no requieren la intervención humana. Sin embargo, si la aplicación tiene que lidiar con mucha interacción humana en cada aplicación, una GUI podría ser más adecuada.

Depende de dónde necesite ejecutar el programa.

Por ejemplo, si sé que usaré máquinas que tienen derechos limitados para la CLI, como cuentas que no son de administrador en Windows, seguiré adelante y haré una GUI simple.

Si solo se ejecutará en un servidor remoto o en mi máquina doméstica, todo es preferencia personal. Algunas personas adoran las CLI y algunas personas simplemente no pueden aceptarlas (o resultan ser demasiado perezosas / minimalistas).

Personalmente, creo una GUI para muchos de mis proyectos porque son más fáciles de presentar con capturas de pantalla o es más probable que las usen (correctamente) las personas que pueden probar mis programas.

Personalmente, si estoy probando algo que no está relacionado con la GUI, simplemente conectaré el código en una prueba JUnit y lo ejecutaré como un caso de prueba desde el IDE. El IDE me da todo lo que necesito para mirar la salida.

Por otra parte, no estoy haciendo una utilidad para mí. Solo estoy probando algunas cosas nuevas

¡Lo que te haga feliz! 😀

Depende de las preferencias del programador. La mayoría de las aplicaciones que escribo no tienen GUI, pero eso es porque he estado escribiendo software desde fines de la década de 1970, mucho antes de que las GUI estuvieran ampliamente disponibles. Me siento cómodo con las interfaces de línea de comandos, de hecho las prefiero en muchos casos. Pero hay momentos en que una GUI es lo que se necesita, y en esos casos también escribiré la GUI.

Un programador que se sienta menos cómodo con las interfaces de línea de comandos podría tener más probabilidades de usar una GUI. Mis comentarios son opiniones de un solo programador y pueden no reflejar tendencias generales.

Si solo voy a procesar archivos con un par de opciones, haré CLI.

Eso casi no requiere trabajo (un par de líneas de código para recoger los argumentos de la línea de comandos) en comparación con una gran cantidad de trabajo para hacer lo mismo que una GUI. No voy a escribir un programa que no tenga más que un menú Archivo con las opciones Cargar y Guardar y un gran “¡Hazlo!” botón.

OTOH, si es algo en lo que el usuario necesita interactuar con los datos, estaré más inclinado hacia una GUI … depende mucho del tipo de cosas que sea. No tengo ningún kit de herramientas de GUI al alcance de la mano, por lo que la opción preferida es escribirlo como una página HTML con la GUI en javascript / coffeescript.