this post was submitted on 25 Feb 2024
61 points (100.0% liked)

Unpopular Opinion

7262 readers
52 users here now

Welcome to the Unpopular Opinion community!


How voting works:

Vote the opposite of the norm.


If you agree that the opinion is unpopular give it an arrow up. If it's something that's widely accepted, give it an arrow down.



Guidelines:

Tag your post, if possible (not required)


  • If your post is a "General" unpopular opinion, start the subject with [GENERAL].
  • If it is a Lemmy-specific unpopular opinion, start it with [LEMMY].


Rules:

1. NO POLITICS


Politics is everywhere. Let's make this about [general] and [lemmy] - specific topics, and keep politics out of it.


2. Be civil.


Disagreements happen, but that doesn’t provide the right to personally attack others. No racism/sexism/bigotry. Please also refrain from gatekeeping others' opinions.


3. No bots, spam or self-promotion.


Only approved bots, which follow the guidelines for bots set by the instance, are allowed.


4. Shitposts and memes are allowed but...


Only until they prove to be a problem. They can and will be removed at moderator discretion.


5. No trolling.


This shouldn't need an explanation. If your post or comment is made just to get a rise with no real value, it will be removed. You do this too often, you will get a vacation to touch grass, away from this community for 1 or more days. Repeat offenses will result in a perma-ban.


6. Defend your opinion


This is a bit of a mix of rules 4 and 5 to help foster higher quality posts. You are expected to defend your unpopular opinion in the post body. We don't expect a whole manifesto (please, no manifestos), but you should at least provide some details as to why you hold the position you do.



Instance-wide rules always apply. https://legal.lemmy.world/tos/

founded 2 years ago
MODERATORS
 

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! "

"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.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 31 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah GUI development isn't easy or straightforward. Thats why there are UI/UX engineers whose sole job is to design and create simple and easy to use interfaces. And they get paid big money to do it too.

If those programmers making ultra specialized software were to waste their time making a GUI, they would never finish the project or would require funding of some sort.

[–] ChillDude69 3 points 1 year ago* (last edited 1 year ago) (2 children)

Those ultra-specialists are paid to make GOOD GUIs, for software that is going to cost real money.

I just want a fucking window with fucking buttons on it, so that I don't need to refer to a cheat sheet of fucking text commands. I don't care how ugly the UI is.

That makes a HUGE difference, and you know it. There have been libraries, development environments, fully featured frameworks, and templates for basic GUI structures, for almost as long as there have been GUIs.

I mean, for fuck's sake, does anyone remember Visual Basic? I even developed some shitty software in that language, back in the day.

And, more to the point, there are a bunch of solo developers who do make graphical applications. If this conversation has to come down to me saying "well, this is a skill issue. If you want users, you're gonna have to step up your game and learn to play like the big boys do," then so be it. That's my position, then.

Even if I'm getting the software for free, GUI development being oh-so-difficult is not my problem. If you want to develop software, get your shit together and accept that GUI is kinda here to stay, as a concept.

I mean, not for nothing, but phone apps are all GUI based. There are outreach programs that have volunteers teaching random hobos and 11-year-olds to make phone apps. If they can do it, grown-ass nerds can do it. Fucking facts.

[–] borf 4 points 1 year ago (1 children)

This is a really good and entertaining post and thanks for making it

As a guy who burned out super, super, super, super hard to the point that thinking about code--even though I'm good at it--just makes me feel baaaad, I still can't help but chuckle. Like, in my case, providing what I did to the code world was literally all I could do before I stopped being able to contribute because it hurts inside my brain lol.

But at the same thing the fucking most hilarious part of it is you're right 🤣 People do just not see software as "real" if it involves any reading and typing outside a comment box. Buttons and visualizations are truly everything if one wants to code and be taken seriously by anyone but other hackers. 😭😂 I wonder how much low hanging fruit there is out there of software that people could just make a paid GUI for and make a killing

load more comments (1 replies)
[–] [email protected] 27 points 1 year ago* (last edited 1 year ago) (1 children)
[–] [email protected] 9 points 1 year ago

And fuck you.

[–] [email protected] 23 points 1 year ago* (last edited 1 year ago) (1 children)

People who do things they like for free are called "hobbyists". These hobbyists, unsurprisingly, only do what they want to do. And sometimes they don't want to make a GUI.

The fact that they share the results of their hobby for free at all is just a bonus.

[–] ChillDude69 4 points 1 year ago (2 children)

I honestly do get that. And I realize I am overstating my case, in a way that basically makes me an asshole.

I think the problem is often rooted in how projects advertise themselves. The small dev team is like "WE'RE PASSIONATE ABOUT GETTING ________ INTO THE HANDS OF USERS, BECAUSE WE KNOW THE ONLY OTHER SOFTWARE THAT DOES _______ IS A 27-YEAR-OLD APP THAT ONLY WORKS ON A SPECIFIC REVISION OF WINDOWS 95."

But then the damned app is command-line only, and it just feels like it was all a tease.

[–] [email protected] 9 points 1 year ago (2 children)

But if you're this passionate about the stress levels of ceramic whatever, presumably you've trudged through countless dense works of academia. After that how big of a step is it to learn to type a few keywords into a command line? You're not required to learn a whole programming language.

[–] [email protected] 4 points 1 year ago

I've dealt with that kind of software that was a paid for product.

Part of the issue is that the software is that it is very specialized, so there isn't a big demand for the software. At that point, it is usually cheaper to train the users instead of making the program easier to run.

You also run into problems where a GUI can cause a false sense of confidence in the work. People end up trusting the program completely instead of using it as a tool that could cause problems.

[–] ChillDude69 2 points 1 year ago* (last edited 1 year ago)

That's a hard argument to rebut. The only thing I can really refer to is VisiCalc. The OG spreadsheet program. The original "killer app."

The whole thing about a spreadsheet is that it's a realtime pseudo-GUI. It's not a command-line-interface thing, and that's VITAL TO ITS FUNCTION, AT THE END-USER LEVEL.

Of course, the computer can do any of the spreadsheet calculations by means of querying a CLI. But the thing about a spreadsheet is that you just change one element on the screen, and all the other elements auto-update, in response to the altered field.

That functionality was a major-ass deal for doing some summing and dividing, so you don't fuck up your payroll and your expense reports. It increased productivity. It reduced clerical errors.

But you're over here, like "well, can't you just use the command line to enter the new parameters for your molecular glass simulation?"

My argument: isn't that shit just a little more complex than a spreadsheet with some basic monetary figures on it? If a GUI is a game-changer for juggling a few dollar-figures in a monthly budget document, it's EVEN MORE CRITICAL in any application where both the data and the calculations are more complicated.

The GUI paradigm isn't a frivolous luxury, which is only made for those of us who are just too lazy to get savvy with the CLI game. GUI has real and exclusive benefits. The more complex the data entry, the sillier it becomes to just say "you don't really NEED that GUI, you just want it for convenience."

[–] [email protected] 6 points 1 year ago

This raises a point though. A command line tool from '95 will likely recompile and run just fine with maybe a warning or two, while the GUI app is no longer supported because GUI frameworks are notoriously fickle things that go obsolete all the time.

[–] [email protected] 19 points 1 year ago (1 children)

counterpoint: making guis is way more of a pain in the ass than you are giving it credit for, and there are plenty of use cases for software that don't need a gui.

[–] ChillDude69 2 points 1 year ago (1 children)

making guis is way more of a pain in the ass than you are giving it credit for

So I'm being told.

there are plenty of use cases for software that don’t need a gui

Maybe so. But forgive me if I'm skeptical, whenever that list of use cases is being drawn up by the people trying to weasel out of developing any GUIs.

I think you have to admit that's a fair point.

[–] [email protected] 4 points 1 year ago

Who are these so called people? The command line is the default, a GUI requires extra effort.

If it’s someone’s hobby project then there are no requirements.

If it’s commercial software, then yes if there’s customer demand a GUI is often provided.

[–] [email protected] 18 points 1 year ago

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.

This took it from being "unpopular opinion" to "I'm just a fucking asshole and my opinion doesn't matter."

Or in other words, fuck you, you ungrateful cunt.

The dev making the ceramic stress testing whatchamawhatsit probably has zero skills in making a GUI. The next thing you'd be complaining about is that there's some bug in the GUI, because you're a complete moron and keep doing something stupid. Something the dev didn't ever think someone would do, because they're not a moron, and don't think like one.

They're making the tool because they have a passion for whatever it is they have a passion for. Not because theyre trying to appease your moronic simple mind.

If you're so passionate about GUIs, learn to make a fucking GUI for a command line tool. You fucking tool.

[–] [email protected] 18 points 1 year ago

Upvote for solid unpopular opinion post. Also a fairly entertaining rant.

[–] [email protected] 13 points 1 year ago

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.

In a word, no. Being able to build an engine doesn't mean you know the first thing about how to design a car. It's a totally different skill set.

I work with PhDs who code all sort of amazing physics engines and then I design the GUI apps around them. That's a full-time job right there (I'm living proof of it), and I wouldn't expect them to understand it any more than they would expect me to understand all the physics.

When you write some sort of procedural tool, you are in complete control of the program flow from start to finish. In a GUI app, the user is in control most of the time. That's awesome if you're the user, but it means a lot more what-if scenarios you have to account for, since users are notoriously unpredictable. And if the task your command line was performing takes an appreciable length of time, you need to spawn it off into separate threads or subprocesses and worry about all the synchronization logic you must get right. This is a programming minefield for anyone who has done it, especially when you need said threads to interact with the GUI, as GUI frameworks are notoriously not thread-safe.

Anyway, what I'm trying to say is designing and implementing GUIs is non-trivial, unless maybe you just want something like an installer wizard that runs you through 10 dialogs to gather info for a command line and then runs it.

[–] [email protected] 11 points 1 year ago* (last edited 1 year ago)

Conversely, I think that every program should have a way to operate it from the command line and the GUI can just needlessly get in the way a lot of the time `¯_(ツ)_/¯
You write a command once and you can do whatever you want with it, repeatably, forever. It's fantastic! You can then pipe the results into a completely different program all without needing to do much of anything! Want to run it on a schedule? Easy! Want to send the exact parameters you used to someone else? Easy! Want to copy and paste the exact output? Easy! Want to get a daily email with the results? Easy!
Some things are better with a GUI, but, plenty don't need it.
With all that said, I understand why a dev who didn't build their program with CLI in mind wouldn't want to go in afterwards and add it in, especially if they don't use/like CLI interfaces.

I've seen similar arguments to yours that every program should have be packaged as an exe, because fuck those fucking programmers thinking I should need to install python to make their shitty programs work. The devs are like "I don't use Windows and wouldn't even know how to package it as an exe and even then, I wouldn't even be able to test that it works, python just works for everyone" and then the guy just continues to go off on a similar rant to yours about how ridiculous this is.

Besides, even if it had a GUI, the complaint would be "why don't they make their software do the things that people want it to do‽‽‽" and then going off about how easy this {insanely complicated thing} would be to add in and EVERYONE {nope, just you} needs this function in order for this software to be useful and the dev is just a POS for not adding it.

Like, I get your point if you're paying for software that doesn't make it clear it doesn't have a GUI, but if you're just on github using someone elses software that they made for themselves and thought other people might like, why are you bitching? Just move on to another piece of software that can do what you want and has a GUI (I'm going to guess you can't/won't because those cost money and you wouldn't be able to belittle and harass the actual software creators and that's half the fun for you).

[–] [email protected] 10 points 1 year ago (7 children)

Congrats on the true unpopular opinion lol.

I'll add one thing that I don't think has been said, adding gui adds a lot to the dependencies and complexity of maintaining a program. Keeping it in the cli keeps the size of the program down, and ensures it will work longer and on more devices since it's dependent on less libraries that could change.

Because of that, if a cli program gets a gui it's usually a separate project, like how yt-dlp has front-ends like this.

load more comments (7 replies)
[–] [email protected] 10 points 1 year ago (8 children)

GUIs are way more complicated than you imagine, and require a completely different set of skills than developing the sort of program you mentioned.
If you want a nice, easy to use and well supported software, then pay for it and hold whoever you're paying accountable for making it user-friendly. If whatever you are using is free open source software, then that's literally !choosingbeggars

If you really think it's something that can be built in an afternoon, feel free to commission a freelancer to make the GUI for you or see if the repository owner is accepting any sort of bounties/commissions. How expensive could an afternoon's worth of work be?

[–] [email protected] 2 points 1 year ago

Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn't work well for people on different instances. Try fixing it like this: [email protected]

load more comments (7 replies)
[–] [email protected] 10 points 1 year ago (12 children)

I upvoted this because it's the point of the sub. Some people like terminal apps, most open source programs are initially created for personal use and then shared to others. GUI can be the hardest, buggiest part of an application and rarely teaches the programmer anything. I think you should try to make one ;)

load more comments (12 replies)
[–] [email protected] 10 points 1 year ago (1 children)

What if the GUI was just another terminal emulator?

[–] ChillDude69 5 points 1 year ago* (last edited 1 year ago)

I'd...ummm...feel like I was being trolled?

EDIT: But, like, expertly trolled, obviously.

[–] [email protected] 8 points 1 year ago (1 children)

I actually kinda agree with this.

Even if a commandline tool has more power, utility and flexibility than a gui tool, guis let you drill down into the core workflow of what your software is meant to do. At a minimum, it lets you segment what your regular users are expected to do from what your power users could use your software to do.

Additionally, if you intend for your software to be used by non-software adjacent users, a commandline interface is just asking for people to get lost/confused.

At work, we use ROS on some of our systems and while the commandline tools are simple to someone who works in the ecosystem, knowing what to look at when things go wrong is tricky.

Even a simple gui in tkinter that shows statuses or shows a list of topics and lets you print them out is leagues above the commandline when it comes to how much I need to be involved in other peoples' problems.

It is a luxury to be knowledgeable in software concepts and I think software devs/power users forget that often.

load more comments (1 replies)
[–] [email protected] 8 points 1 year ago

By all means, provide a GUI.

But being able to do it all from the command line means you can pipe the output of another program directly into your program, and then take that output and feed it into yet another.

The program you describe could be slotted into the control systems of the kiln, cooling, and tempering ovens.

GUIs break that connection. As soon as you start using a GUI, the ability to automatically pipe outputs to inputs is broken. The user is now the link between the programs, manually transferring data between them that could be performed automatically.

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.

A good GUI will leave the command line visible, and interact able, so that the user can see the program's input and output syntax, and gain that sense of "connection". A good GUI will teach the command line, so that by merely using two programs, the user learns what they need to connect them together.

[–] [email protected] 7 points 1 year ago

This software is not for you. It's for the author. It's in furtherance of their research, or their career, or their interests. It is only incidentally available to you.

That's it, that's the whole story. You get a GUI if the authors wanted there to be a GUI.

If you join a community around the product - which would require being nice, willing to engage, understand, not make demands - you might be able to give feedback and occasionally help steer the direction of the product.

[–] [email protected] 4 points 1 year ago

Nope, don't agree. I definitely write software, but the UI for the end user is (usually) exactly one button. What would I need an GUI for?

[–] [email protected] 4 points 1 year ago (2 children)

I know. Its like these foundation guys. Learn to build the whole fucking house if your serious about being in construction!!!

load more comments (2 replies)
[–] [email protected] 3 points 1 year ago (1 children)

I'm a senior software dev and have built a shitload of tools and scripts that are command line only. I've been told that I'm a really great developer, and I have a knack for figuring things out, even when there's no documentation.

For the life of me, I absolutely cannot wrap my head around frontend shit. Like, I can do markdown just fine. HTML? CSS? Any of the popular frontend UI frameworks? I just seem to have some sort of conceptual and motivational block that prevents me from figuring out how to make those accursed fucking frontends.

It's such a different form of software development. I wish I could wrap my head around it, but I've accept that I'm not ever going to be a frontend dev. I just write server side stuff and scripts. I apologize if you ever have to use my software :(

load more comments (1 replies)
[–] [email protected] 3 points 1 year ago

Not all end-users are the same though. Clearly, you are not in the target user group for this software. If a GUI was that sought after, someone could create that as a standalone project. Upvoted for the genuine unpopular opinion

[–] [email protected] 3 points 1 year ago

GUI components aren't (usually) interoperable, with other programs, they aren't flexible, and they aren't scriptable at scale. They are good for new people and laypeople, but they are hard to write (lots of requirements for input validation) and you have to prescribe a specific workflow. I would argue after being on both ends of the discussion that the one guy you DEFINITELY don't want to write a UI for a complex scientific program is the guy who wrote the program: it means to use it he expects you to think like him.

I would suggest the other perspective: any academic or research tool that DOESNT have CLI parity available alongside a GUI (if it has one) shouldn't be taken seriously.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago)

I don't have experience to add to the discussion, but it seems like this is a genuinely unpopular opinion from the comments, so it gets my upvote

[–] [email protected] 2 points 1 year ago

Idk man. Neofetch is pretty good and that doesn't use a GUI.

load more comments
view more: next ›