En Linux, muchos programas tienen una versión CLI y una interfaz gráfica de usuario. Leí en alguna parte que esto sigue la filosofía de Linux y es una buena práctica. Por supuesto, es cierto desde la perspectiva de los desarrolladores mantener el código GUI separado del programa real.
Dado un programa, que se puede usar felizmente desde la línea de comandos, me gustaría crear una GUI para la versión de la línea de comandos. ¿Cuáles son mis opciones aquí?
Solo puedo pensar en 2 que usaría el desarrollador de GUI.
-
llamando al programa con los parámetros configurados así:
system(“algúnprograma –parámetro1 -p2 -p3”)
-
hacer que la versión CLI pueda ejecutarse en modo servidor con sockets (unix, inet, …) y usar esos sockets para comunicarse con el “servidor”
En mi opinión, la solución más limpia sería la segunda, pero esto no siempre es posible sin alterar la versión de la CLI.
La pregunta real es ¿cuál es la forma correcta de tener una versión cli y una versión GUI construidas por separado?
Respuesta aceptada:
Un enfoque diferente es escribir su funcionalidad como una biblioteca. Entonces tienes una GUI que usa la biblioteca; y una CLI que también utiliza la biblioteca. Dependiendo de la complejidad de su tarea, esa puede ser la mejor solución, ya que ambos programas podrían funcionar de forma independiente sin necesidad de ningún tipo de comunicación entre procesos.