CLI & GUI
I'm having a bit of a discussion at the moment about the advantages of CLI over GUI and why it would be better in a particular scenario. At the moment GUI is proving more favourable but I'm wondering if anyone else can think of any advantages of CLI over GUI in general.
Fewer overheads on the server means that you can devote more of the hardware to actually running the services and not running a GUI that most of the time no one will be using.
That's the main one anyway.
The 2 reasons for me.
As Joedetic says, less overhead = more power to use for the actual purpose of serving.
The ability to script things easily. Now, I know you can do this with a GUI but, for example, in some Linux distro's (SuSE for example) the GUI tooks interfere with some things, removing the ability to script things properly. But remember that the CLI has to have all the tools you'd need for scripting. (ie. compare scripting in Windows to scripting in Bash on Linux, the latter is much more flexible).
In my opinion it depends on the task you're trying to accomplish.
For general configuration, maintenance etc. of a server I would vote for CLI providing that it is powerful enough and provides enough features and access to applications (eg. Linux, BSD). CLI on Windows is next to useless.
Advantages of average Linux/BSD CLI:
- Easy to script
- Less overhead when GUI can be disabled
- Can be accessed remotely more efficiently and securely than VNC/RDP
- No requirement for mouse
- Multi-platform clients
- Easy to give instructions for
Cli is much easier to automate. If you can do some with cli your often only one step from people able to repeat what you've done on as many computers as you want. The same can't be said for GUI.
If you're looking to output something, I'd vote out GUI... much easier to look at data that way...
CLI is good for scripted and where necessary... I'm lazy and prefer GUI's though :)
CLI is easier to document (posting a text file which is more accurate and faster than a screenshot). CLI is faster for more complicated tasks (no nested tabs to negotiate).
GUI is better if you don't already know what your program can do, hovering over a checkbox that can give instructions is faster than reading a manual page.