GUI or CLI

There's a debate over on Scott Hanselman's blog about the GUI v CLI in the comments for his Azure CLI post. It's a blend of people complaining about one or the other, mixed with a few (I think) rational people that recognize the GUI and CLI are both valuable. In fact, there's one person that mentions SQL Server and the SSMS GUI that can generate scripts for later use.

I like the command line, but sometimes it's hard. I don't remember the syntax for a variety of commands, especially PowerShell where I use tab completion constantly. I don't even remember options for many T-SQL functions, because I don't use them very often. I may find myself depending on Google or BOL for a quick refresher, but often I'll just use use SSMS if I can to pick some items in the GUI, click Script, and then examine the code before executing it.

I really don't mind someone wanting to use the GUI the vast majority of the time they're working, but someone should be comfortable with a CLI interface. If there is a task that need repeating multiple times, then I really want everyone using the CLI. It doesn't matter how you've written the code, executing something from a CLI is much more reliable than having to click around a GUI, trying to be consistent and quick, over and over. The CLI just works better.

I'd like to think that most computer professionals these days are able to use a CLI, even if they aren't too comfortable. The growth of PoSh as a wrapper around so many features and functions in the MS stack certainly contributes to this, as well as fact we seee so much code as code, not as images from a GUI. Github and collaboration, as well as lots of code samples in articles should mean that many people are comfortable working with code and executing it from some CLI.

I'm sure there are plenty of exceptions. Someone that works mostly with SQL Server might be happy running code in a query window and use SSMS for everything else. They might not even be aware that they can build things like SQL Agent Jobs from a CLI. I get it, the GUI is quick and easy. I use it for jobs, for Extended Events, and various other tasks where the code is complex and cumbersome. However, if something is easier from a command line, I like using it. Perhaps that's why my console of choice, ConEmu, is always just a CTRL+~ away.