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.
I agree there are times a GUI is just not needed, like for one off configurations that are straight forward and never touched again. I'm not a professional developer but I do write some code, and often the bit that does the work is a few lines and the inferface is a many more lines, just error correction / prevention adds more lines of code.
I have spent the last few days tackling an audio issue that is looking more like it will need me to start building my own kernel. I always do my own investigations and it is that process, the many years of taking the "lets try linux" trip, to realise the basics are what make the OS accessible. Things are so much better now than even 2 years ago, but Linux (all distros) is still missing some basics. Rather than relying on 3rd parties to make GUI's the original developers should take the responsibility to provide a solid user interface.
The original developers are volunteers that made a tool they needed and shared it with the others of their own volition. They may or they may not make the effort to add anything extra on top of it. Demanding it from them is just unreasonable. If you don't like their gift to the community, you can provide your own, with blackjack and GUIs.
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.