Not everything actually requires a GUI, obviously. But anything that requires configuration, especially for controlling a hardware device, should have a fully functional GUI. I know Linux is all about being in control, and users should not be afraid to use the command line, but if you have to learn another bespoke command syntax and the location and structure of the related configuration files just to get something basic to work then the developer has frankly half arsed it. Developers need to provide GUI's so that their software can be used by as many people as possible. GUI's use a common language that everyone understands (is something on or off, what numeric values are allowed, what do the options mean).
Every 12 to 18 months I make an effort to switch to Linux. Right now I'm using Archlinux, and it has been a successful trip so far, except my audio is screwed, I can't use my capture card at all, I had issues with my dual displays at the start, and the is no easy way to configure my AMD graphics card for over clocking or well anything basic at all.
I'm not looking for a windows clone, I love that I can choose different desktop environments and theme many of them to death. I even like the fact there are so many distros. Choice is a big part of linux, but there is clearly a desire to get more people moving away from Windows and until that path is 95% seamless most people just won't. Right now I think Linux is 75% to 85% seamless depending on the use case and distro but adding more GUI front ends would, imho, push that well into the 90% zone.
GUI is not a dirty word, it is what makes using a new OS possible for more people.
EDIT: Good conversation all. This is genuinely not intended to be a troll post, I just feel it is good to share experiences especially on the frustations that arise from move between OSes.
Frontend and backend are different kinds of development. It's like me expecting you to write a whole lot of unrelated code just because you want something else. Just because you don't understand software architecture doesnt mean you can make wild claims with no basis in reality.
Simple one off configs are the easy ones to create GUIs for. The complex ones are a nightmare. That's when you get very bad UX. Creating a good UX is a lot different for GUI and there are entire companies dedicated to only writing those and here you are claiming small time developers are under an obligation to give you what you want.
GUI seems easier to you because you learned it first. That does not mean it's better.