You see this shit SO much more often than you would think. And the infuriating thing is, it seems to be most common among programs that are INCREDIBLY complex and sophisticated.
It’ll be like this:
“What does my program do? Glad you asked. It simulates stress patterns in glass and ceramics, after they come out of a kiln. You can specify any melting temperature, adjust the composition of elements in the glass, and the ambient temperature of the cooling and tempering stages.”
“Wow, can you show me how it works?”
“Sure! <opens a command line and starts typing commands>”
“O-oh. Do you have any plans to add a graphical user interface?”
“HAHAHAHAHHA, no. That’s never happening. And here I thought you were serious about using advanced software, and being an intelligent person.”
Obviously, that last part is just kinda implied. But sometimes, when users request a GUI, the goddamn developer will kinda get in their face, like that.
They always fall back on the position of “well, I developed this shit for free, for your ungrateful ass. So you can build your own fucking GUI.”
But the thing about that is…no. And fuck you. I shouldn’t have to be two-thirds of a fucking developer, in order to use the fucking software.
If you can figure out how to simulate molecules, or draw 3D stereograms, or translate hieroglyphics, or any other RIDICULOUSLY COMPLICATED SHIT, making a graphical user interface should be nothing to you. You should be able to do it in a fucking afternoon.
IT DEFINITELY SHOULD BE THE EASY PART, FOR YOU.
All the rest of us, who aren’t programmers? We envy programmers, and their ability to really connect with computers, on that deep logic level.
If we could do that shit, we would. But a lot of us have tried, and we realize it’s not a good use of our time. We can do cool stuff with software, but it’s just not ever going to be worthwhile for us to struggle through the act of creating software.
Also, I hasten to add that I have put in my time, using command line interfaces. I used DOS, I used BBS systems, I have used modern command-line-only programs. I know how to do it, but I DON’T WANT TO.
I don’t want to have to memorize commands. I don’t consider a GUI workflow to be some kind of weird luxury. It has been a basic part of modern software, for around 40 years at this point. Literally get with the program, guys.
If you’re serious about making software, get your shit together and implement a fucking GUI from the very first release. Nobody ought to be taking you seriously, if you refuse.
Like I said to someone else, I actually did make some GUI apps, with Visual Basic, back in the day.
It was, like, ludicrously easy. If the current frameworks that are meant for GUI development have regressed, and it’s incredibly hard to make GUIs now, that is something that needs to be solved.
Also, as I said to that person: as an end-user, especially when I’m using free software, I do not need the UI to be pretty, at all.
It can be as ugly as sin on toast, but I just need to have a window with buttons on it, or else I cannot use the damn thing to do real work. My brain just doesn’t operate that way. I’ll be checking back and forth between the screen and a cheat-sheet of commands that I printed out, and I’ll be angry the whole time I’m doing it.
A lot has changed in the 20 years since VB was used for GUI application development, especially on the OS side. It’s not that GUI development had regressed, it’s that everything else has gotten more complicated. It’s not about being pretty, it’s about complying with all the new security and testing requirements to make a functional application.
If you think that GUI application development should be simple, you could try creating a GUI wrapper around these CLI tools. I’m sure lots of people would be willing to test it for you.
To be fair, Visual Studio is as easy to use as it’s ever been. If you want a Windows Forms application, it’s pretty easy to make those god awful UIs that the 90s were known for.
Unfortunately for choosing beggars, most free software development doesn’t happen on Windows, and the free alternatives (Qt Creator, Gnome Builder, etc.) are all more complicated than what Microsoft produced. Gambas comes close, but it’s stuck with some kind of VB6 derived language and a bunch of potential GPL licensing issues.
Even if that’s technically not regression, it’s still a problem. Maybe it’s not a problem that has anyone you can blame, but it certainly needs solutions.
For what it’s worth, rather than developers kicking the burden down the chain to the users and saying “GUIs are hard now,” and then users saying “okay, I guess,” we should all be yelling upward.
I think I’m being perfectly reasonable to yell “hey, I actually do need GUIs for everything, ya know,” and then you’d be reasonable for yelling up at the operating system architects and development environment creators, like “hey, do whatever needs to be done, for us to manage these requirements more easily.”
Some people will hiss and bare their teeth like a vampire at this suggestion, but I actually think maybe modern generative AI systems can really help with this crap.
I think that yelling at developers to make something for you is where the problem lies. You can try asking nicely, but ultimately other priorities have to be dealt with first. Until there are enough people asking for the same thing, this will always be the case. But you can always be the change that you want to see. Even if it’s a ugly shitty GUI, as long as it does what it needs then other people should start using it. And then you can start dealing with all the user requests to add functionality that you never planned on. Or you can just tell them that this is the tool you made, and if they want more than they can create it themselves.
Things become a lot more muddy when you actually get in the dirt to fix things. It’s easy to yell from the sidelines, but actually fixing things isn’t as simple.
Edit: To everyone except OP, downvoting this dude isn’t going to help anything. He’s asking valid questions from a point of view that’s 20 years out of GUI development. A lot has changed that isn’t obvious to someone that hasn’t actually done it for that long. Education should be more important than downvoting someone with an unpopular opinion in a forum for unpopular opinions.
You can look at it as me yelling and being rude. And I was exaggerating, for effect. I realize things are harder than I made it out.
On the other hand, the problem remains, even if nobody is yelling about it, and maybe that’s worse. If a project goes on, for literal years, as a supposedly released thing, but there’s never a GUI, then most users won’t use it.
I will admit that I’m an asshole, in this situation. I almost certainly could really apply myself, and help to add GUIs to some of these apps that I’ve wanted to see GUIs in, over the years. But others absolutely cannot. They just aren’t built for coding, in any way, shape, or form.
So they just won’t use the software in question, even if it is exactly what they need. When developers contribute to free software projects, the hope is that they will be used. I lament the fact that some projects just float around forever, never getting that use, because a GUI isn’t forthcoming.
That just sucks. Even if everyone has a perfectly valid excuse for not fixing it. It still sucks.
EDIT: Your edit is extremely appreciated.
As someone that was in Tier 3 Support for more than a decade, I get it. The squeeky wheel gets the grease. Users need to complain, or things won’t get fixed. But that’s the catch…there needs to be enough people complaining to move that Priority 4 feature request up a few notches. One person complaining isn’t going to move that needle. So you have to look at other options. Doing it yourself is always an option. So is complaining in an open forum to see if other users are complaining about the same thing, and hopefully one of those people try fixing it. Or you can just look for another tool. Yes, it sucks, but when you can’t fix it yourself then what else can you do? The popular application will eventually win. Hopefully it’s the one you want to use so that it gets continuing support.
I’m the exact opposite, I can’t remember what the buttons do. So I look for terminal software, and I write terminal software. Everyone doesn’t think the same way as you do, same with me.
That really is a fascinating thing. I intellectually realized that there are people who truly prefer command-line interfaces, but I just can’t really make myself relate to it.
Not having anything visual in front of me is a burden on my own working memory. When I’m having to remind myself of what the program is doing, what commands are appropriate at this stage, etc, it disrupts any planning and decision-making that I need to do, in order to actually make use of the software.
The idea that someone else would feel exactly the opposite is a real eye-opener.
Part of the reason I like text based better is because it gives me the power of search, literally everywhere. Too many complicated GUIs give me headaches and make me intensely frustrated as I click around seemingly at random, digging into menus or hunting around buttons with labels or icons that I don’t recognize.
On the command line, I can just start searching and jump straight to the thing I’m looking for instead of forgetting what I was doing wandering around in GUI land.
True a UI doesn’t have to be pretty but it has to be usable/provide a good experience. To me at least a bad GUI is much worse than a terminal interface. Which is also a UI, just not graphical. I don’t write desktop apps with GUIs so I’m not sure how complex it is but it probably depends a lot on the language. If the initial project is using C for example I’d expect adding a GUI to be more of a pain than if it was written in Visual Basic.
As a developer, it’s not the coding of the GUI that’s a problem. Making a text box or a button or lining two items up does only take a minute. The issues are (in order of complexity for me):
Honestly, designing a good GUI is the hardest part for me.