Spyke
lemmy.world

Good GUI are hard to make while a good cli is rather easy.

Nothing wrong with a GUI that does what it needs without fluff.

192
toebertreply
piefed.social

The cli has one other benefit which I think is rarely recognised: it's pretty easy to tell someone you need to run "xyz -a -b -c" (bringing the safety risk with it to be fair), but it gets a lot harder to be like "so in the top left there is a cog button that opens a panel on the right where you're looking for the 2nd tab and there'll be a checkbox".

The things I appreciate even more than a good gui are programs with a good gui and a cli.

146
macnielreply
feddit.org

A well documented CLI is easy to generate a GUI from.

39

Well can even make a little Custom Floating HTML Prompt in Keyboard Maestro to push commands to a CLI - just one way

1
lemmy.dbzer0.com

It is very easy to tell someone type this and shut up. I've never seen an explanation of why -a -b and -c are necessary or what they do. Although I recognise that a lot of people just want magic, and running "xyz -a -b -c" is the next best thing.

I would love to see what cli commands the gui uses, they would be much easier and faster to learn.

16

That's one of the things I like about yt-dlp-nis on android. You can select all the options you want through the UI and grab the resulting yt-dlp cli command.

12

alternatively try tldr, which lists the most common options and explains them. It's a livesaver for noobs.

Edit: oh i see it was already recommended lol

2
Cethinreply
lemmy.zip

As the other comment says, use TLDR. it doesn't tell you everything, but it does usually explain the most common uses. If you need something more advanced than you need to do more research anyway.

3

While it is an improvement, it's aimed at people that already knows the commands.

For example:

  • Extract a (compressed) archive file into the current directory verbosely:
    tar xvf path/to/source.tar[.gz|.bz2|.xz]

What is that [.gz|.bz2|.xz] at the end? to someone that knows the tool it's too obvious to even think about, to anyone else, it's just there to mess with you because there's zero reference to it and some examples include it and others don't.

4

Good UX is the best, whether that's CLI or GUI. UX is under-appreciated.

7

And dude has changed icon set, so its not a cog, its a wrench and screw driver

3
lemmy.dbzer0.com

Tbh a lot of things are just easier to show/explain with images and icons in addition to text.

And in many cases mouse control is just super handy and fast

And while a terminal can show all these things… its just not comparable, IMO.

I wouldt want to write my job application in the terminal, or design a product, or whatever else requires just a smidge of graphics

35

I'm just a faster typer and when I have to go back to the mouse controls I feel sluggish. Of course, the right tool for the right job, I will never find myself with a tui to manipulate 3D objects or editing images but I will go to vim for editing documents using latex

9
BCsvenreply
lemmy.ca

LaTeX and Typst enter the job application chat

7
qqqreply
lemmy.world

Yea that made me laugh; I just updated my resume from LaTeX to typst a few months ago actually

6

I've had my resumé in JSON for years, and in XML for years before þat. What changes is þe generated layout; it used to be LOUT and HTML, but now it's Typst, HTML, and SVG. SVG is web-embeddable while preserving þe formatting.

I'm sad jsonresume.org never really caught on, because most companies require uploading a document and you still end up reentering an entire resume in web forms, a process which I loath.

0

So true. I mostly live in the embedded world but have had to write GUIs from time to time, mostly to connect and send commands to some sort of embedded device.

I always start with a cli version for testing and then write the GUI. A quick wrapper around the comms library and I’m done.

But there are so many annoying fiddly little details in the GUI to deal with that it usually takes as long just to write the GUI as it does the entire rest of the code. Layout, menus, tooltips, icon choices, dealing with screen sizes, DPI, resizing windows, responsive data, etc.

Edit: A simple example that I’ve dealt with many times is reading and writing config data. For the CLI version it’s typically two commands:

‘tool read_cfg’ reads from the device and prints the config to stout

‘tool write_cfg’ reads a config from stdin and sends to the device.

Add a ‘-f’ option to use a file instead of stout for people that don’t remember how to use redirects. Add a couple of documentation sentences to the help command. If there are any issues, print them to stderr and bail. If the user wants to edit the config they can use whatever $EDITOR they prefer.

The same functionality in a GUI means that you have to first implement an editor for values. In my case that was generally a bunch of nested key/value pairs so I could probably find a widget that would work. And then understand how it handles being resized, gets styled, uses tooltips, etc. Of course there would need to be some code to get the data into and out of that widget which would probably need massaging. Then I need to let the user know if there are local edits. And then there is the fact that the data is now in three places, on a local disc, on the device, and in the editor and I need to communicate with the user that there is a difference between loading and saving from disc vs the device. Do I give a warning that loading from once place will overwrite anything they’ve changed in the editor? How do I make the four load/save buttons have obvious icons? And how to handle errors? An annoying pop up? Partially load the data? Something else? So many little things that have to be designed, implemented, and tested.

7
lemmy.dbzer0.com

I think people are just too rigid sometimes. Some workflows are better in GUIs, some are better in CLIs. They both have upsides and downsides depending on what you're doing, and it's totally fine to prefer one to the other. Just don't let your preference keep you from learning and using other great tools!

129
DreamButtreply
lemmy.world

personally I think having that all cli all the time phase is really important for a developer. Those that I've worked with who exclusively use gui's just don't have the same understanding of their system. Which is maybe fine at a certain level but not for a senior dev

34
LadyMeowreply
lemmy.blahaj.zone

I usually take the which does it faster route. Most of the time, cli wins, occasionally gui is actually faster

19

Can we add repeatable? CLI is repeatable and self documenting with nothing more than a text editor.

GUI? Good luck with that.

16
lemmy.today

Seriously! I can do shit in the terminal, but I grew up post DOS and it's nice to just click something and have it work.

30
Doomsiderreply
lemmy.world

Meh, I mean you are not wrong.

What is even better though is knowing that whatever you click on is just inputting a command you could do yourself manually into a terminal. Now that is some cool full circle shit that Windows fucked up by hiding the CLI.

17

I remember waaaay back in the server 08-08 R2 days, you could do something in server manager (such as installing a role) and while that process was running, you had the option to see the powershell command it was running in the background. That was pretty cool

10

Good GUIs are awesome. It's just that you often cede control to a bunch of fucking idiots who somehow think if it's not broken absolutely destroy everything that made anyone love it in the first place. 'They'll adapt'

6
lemmy.world

That's totally fine. GUIs let us theme our terminal windows, tile them, jiggle them around, maybe even make them wobbly!!!

40
Reyglereply
lemmy.world

:) Did you know KDE also does wobbly windows?

16
lemmy.ca

No, I've been GNOME peasant since Ubuntu switched to it from Unity. Now also using it on Debian. Some day when very bored, maybe in retirement I'll try Plasma again. 😆

7

I use it too. I don't think we can do wobbly, BUT "burn my windows" is awesome on gnome!

5
danreply
upvote.au

Wow I haven't heard that name for a long time... The last time I used it, I was using the horrible AMD/ATI fglrx drivers, and Compiz had been forked into a project called Beryl. Looks like that was around 2006 or 2007.

6
reddthat.com

Not understanding the fundamentals of the tools you use daily is not a design virtue, it just makes you less effective in using them. This cancerous philosophy leverages ignorance and laziness to support billion dollar industries of greed, slop, and censorship. It enables corrupt morons to justify surveilance and exploit weaker people. And right now, it's running blind and head first into a civilizational death trap.

-1
programming.dev

I don't know what you're raging about, but consider this, do you know the internal workings of every device you own and use? Can you repair your car if it broke down? Can you rewire your house if something goes wrong? Can you fix the plumbing? Do you understand everything about your bike? Do you know the ins and outs of your own body? Do you understand your pets like a trainer would?

You call others lazy, but I guarantee you, there's something they consider basic that you have absolutely no understanding of despite using it all the time.

3

These questions are all beside the point. People seek help in problems they know how to solve all the time, often in the interest of time itself.

But since you asked:

  • I don't own a car, and they're just another example of how we cuck ourselves in much the same regard by creating shitty infrastructure to support a modus operandi and economic status quo, that aren't fit for purpose.
  • I've some experience in home electronics.
  • donlt cycle much these days but i spent many afternoons fixing them as a child; having begged for it in the first place there was no other reliable way to ride them again
  • no. but again, asking for help on such matters doesn't undermine the point because i'm not saying you shouldnlt seek consultation to solve problems you can't manage alone. To the extent there is a point about consultation, it's that you should understand enough of the relevant terminolgy to be able to implement the advvise offered by the consultant (the doctor in this case).
  • having had a trainer (not my choice) for a dog, i can honestly say yes.

Perhaps, but computers are likely far easier to learn about than whatever that is, and infintely less expensive if you already have regular access to one. Think of it like this, if they were so hard, would so many of the dumbest people in public life have started out as "experts" in computers? Would all the moron libertarian crypto enthusiasts have been able to assemble their elaborate blockchain networks that process a whopping 7 transactions per second?

And please note, laziness alone isn't a criticism/problem (it can often motivate efficiency), it's when particular applications of laziness to produces results that require undoing; especially when the costs of undoing excede the cost of doing nothing at all

0

It's not a design virtue because then it would have to be a design but you are talking about a... Customer fallacy...?

2
lemmy.ml

I CAN interact with CLI, but i WANT to interact with good GUI. I don't want to learn CLI commands when I don't have to. Especially in the cases where I use it rarely

22
lemmy.world

Are you kidding? There's nothing I love more than hand typing a 400 character file path.

19

Yeah and that's totally fair enough, but people who like using a command line and know the tools well rarely if ever have to type out long paths or commands. Tab completion and history suggestion (especially in a modern shell like fish or zsh) is a joy to use, and doesn't just do file paths but command options and arguments. Man pages are very overwhelming at first, but if you're practiced at scanning them, then it's a lot more convenient to get the info right where you are than to navigate to another window. But the learning curve is steep and I get why someone wouldn't want to bother.

4
piefed.world

before I made the switch to Linux I never used a terminal. never. hell on Windows I even used a GUI for Git. I used sublime text as my IDE. if it wasn't a GUI I was lost.

Then I switched to Linux and it forced me to actually sit down and learn the terminal and now...now I have a hard time using GUI's. If something has a CLI or TUI option then I go for that over a GUI. like everything even my music player and video player. my IDE of choice now is DOOM Emacs. my file manager is Yazi. for Git I either use lazygit or just straight up the command line. but for everything else it's just so much faster and in the long run easier to just use the terminal.

All that being said if you like GUI's then hey more power to you and that's fine. that's the beauty of Linux. you run your system how you want to and don't let others tell you otherwise. Hell I know a guy that uses NixOS and doesn't have anything installed other than git and comma. he runs everything via comma. literally everything.

22

Now, for music do mpd and control it ncmpcpp

Anyone can control their music streaming on their phone with an app, only the true Linux users (Arch users, btw) can control their music streaming via ssh.

1
lemmy.ca

I'm undecided with modern GUI because most modern software is just a web page now. And it will offer you a choice between boring light mode and boring dark mode.

I miss the days of GTK2 with hundreds of themes. It was one of the main reason I switched to Linux; the customization. I don't know how many hours I must have spent on gnome-look.org. Now I don't even bother to try new themes and just use Fluent-Dark. My desktop is boring and looks like everyone else that has a dark mode. I really really miss GTK2 and all my favourite themes I can't use anymore. I tried making my own and played around with Oomox but it's not the same.

But one thing that I do prefer to be GUI now is IRC. Now that there are web clients (sigh) that can display images and videos directly in the channels, chatting in text mode only is kind of annoying with all the links we are sharing.

21
lemmy.world

KDE and customization go hand in hand. Hell, hyprland and customization go even harder. It's gnome that has abandonned it

7

I like good GUIs. There are GUIs that are clean, responsive, well designed, and full-featured.

Sadly, that is rare nowadays, regardless if the software is FOSS or not.

It seems like for proprietary software, the corporate approach is to design slow, boring GUIs that lack most/all advanced functionality. It's designed for dumb users who just want to click and swipe.

FOSS on the other hand rarely has full or even part time UI/UX devs due to the cost. So often the GUIs are clunky, messy, and a horrible pain to navigate. The upside is that they usually have extremely deep features, but good luck finding them.

If I have to pick, FOSS all the way, but I wish I didn't have to. There are a few FOSS programs that have very nice UIs, Bitwarden, Protonmail, Musescore, Godot, and many are getting better, but the landscape is still rough out there.

As for CLI, I prefer it for some things, it's just faster depending on the function. I find myself operating with a hybrid setup now days. I have become proficient enough with the command line that I can switch seamlessly between my GUI environments and the CLI-only environments. I don't really think about it much anymore.

21
Zannsoloreply
lemmy.world

It's a user interface. Users are fucking stupid this the interface needs to be fucking stupid. When you have to put that much in to stop stupid the interface suffers.

2

Why stop stupid but not users?

Allow me to illustrate (c, Johny Silverhand):

  • user fucks up
  • starts complaining
  • just plain tell them they got exactly what they told the software to do. End of story. Wants to quit - good luck
1

I can and will terminal things, but the GUI is there so why not?

20
lemmy.world

If you

  • need discoverability, or
  • don't need anything composable

then sure GUIs are great.

17
lemmy.cafe

https://en.wikipedia.org/wiki/Composability

In a CLI I can do ls -a | grep ".png" to find all the png files in the directory. In a GUI I can use the search function if it was implemented and well designed for the purpose I need it for. But I can't infinitely mix and match functions like I can in bash.

15

Yeah, to do so in a GUI, you would require a nodes UI or similar thing, which is pretty heavy in itself and one won't use it unless that's the point of the workflow.

0
lemmy.world

I like GUIs but I also like automation. Give me a nice simple GUI but also give me a way to run from a bash shell so I can automate functions based on complex conditions and/or a schedule.

17
lemmy.world

The thing about CLI is that everything is hidden by default. You come to the application with your own mindset and a goal in mind and you figure out how make it do what you want.
When there's a GUI, you often see everything that's possible from the start and so the application dictates how you use it.

Though, you can do either with CLI and GUI as well. That's the sweet spot I think is the best. I love it when a CLI app guides the user through a process and gives options. And a good GUI should disable OK buttons and show validation errors if not everything is entered correctly.

In a perfect world, every app has a CLI mode, interactive and non interactive and a GUI mode with full validation and responsive UI changes. But realistically, good UX is what we need, either GUI or CLI.

16

Also CLI interfaces are a lot like having to know a language with the right keywords and vocabulary. Sometimes the manual doesn't always list out all the commands so it takes some trial and error to figure out. You can easily change something you didn't want to as you do.

4
sh.itjust.works

This is one of the reasons why I can't migrate from visual studio to VS code for work. Everything is hidden beyond the weird palette search bar thingy. Just give me drop down menus and toolbars please. I'm sick of having to remember shortcuts for things I don't do often enough to warrant it taking space up in my very limited pool of memory

3

Heh same here. I'm missing so many toolbars I regularly use in VS. I do use VScode at home but I'm always at a loss on how to do something.

2
programming.dev

In the same way some GUIs are trash, lord have mercy some CLIs are trash. Things like adding two verbose flags makes it extra verbose. Things like the parameter order mattering. Yeesh. It can be rough. It really varies tool by tool.

15

two verbose flags makes it extra verbose

tcpdump intensifies

But what tool did you have in mind?

2
prolereply
lemmy.blahaj.zone

Things like the parameter order mattering.

I imagine this is unavoidable in many cases.

1
JackbyDevreply
programming.dev

Yeah, I guess that's true. I suppose given more time to think about it I wouldn't really complain about that. It's mostly things like script in out that are sort of annoying versus something like script --in foo --out bar.

2

I believe API (CLI or programmatic) should never have 2 arguments of the same type but different roles next to each other without visual cues.

No fn("in.txt", "out.txt") and no script in out

1

I still do updates and most package installs through my terminal, but anything else I look for a GUI solution. I'm lazy.

15
_donnadie_reply
feddit.cl

Call me a hater, but TUIs are just filler for the modern wm ricer. I see new ones pop up everyday lol

4
hoppolitoreply
mander.xyz

hater!

(but for real, I love a well-done TUI. Scriptability of CLIs is nice but sometimes the in-between of a good interface while remaining embedded in the shell works so well. Something like vifm allows me to zoom around with fzf, select things by regex or rename with vidir, move and package with rsync or tar, all without ever leaving my terminal context)

3

hater!

Can't say I didn't ask for it lol

I get their usability too. It's understandable if you have to access a server remotely and you want some sort of interface for some software without loading the server with a lot of packages like gtk, qt or stuff like that. I said it mostly to jokingly dunk on the newer arch/omarchy users with their fancy hyperland setups :P

3
tetris11reply
feddit.uk

Your torrent box should not need a WM to download torrents, and given the dynamic nature of a torrent download (speed/peers/pieces), a one-shot cli wont cut it either.

A TUI is a perfect use-case for torrents, though I havent seen it done well in either transmission or aria2

3

You're totally right, that's the best usecase for a TUI. I was joking :)

3

"just"? When my aesthetics are perfect I work 20% faster it feels like! And ... Well i'm fabulous

2

If we want the year of the Linux desktop to actually happen we need to have good GUI tools for almost everything. The second you say "command line" most people's eyes glaze over and they say they'll stick with Windows. Believe it or not guys, most people just want something that functions out of the box and they don't want to mess with it.

13

I like GUIs if they aren't web browsers pretending to be a desktop applications.

13
discuss.tchncs.de

They are good for discoverability, but suck when you have to do the same thing 5 times.

-- signed, a guy currently having to use a GUI to update the firmware on 5 headsets, and put our standard settings on them

11
Jyekreply
sh.itjust.works

The best compromise is to have a right click menu option that copies the cli command for the function you are trying to perform.

4
Digitreply
lemmy.wtf

I shall endeavour to include this feature in the tui program I'm writing, and soon to implement menus in.

1

Being using computers since 1992. I learned with DOS and SCO Unix.

I prefer GUIs, thank you very much.

Even when the only available option for me was Windows 3.1, I still preferred it over the CMD.

10
retrolemmy.com

It's pretty cool how both GUI lovers and terminal enthusiasts can have a great time using Linux

8

exactly my feeling. I used to use GUI's in linux way more, but over time, realized, I kind of like not having to use my mouse.

2

A well designed GUI should give you fast access to what you need and allow you to get things done easily. 

Nothing wrong with that at all. 

8
lemmy.world

I like GUI's, but I prefer them simple and customizable, so I eventually want to switch away from KDE Plasma to just some window manager.

8

I've been at risk for carpal tunnel before, which is why I primarily use a keyboard.

...on a GUI.

Linux is great for a lot of things but so many open-source apps are terrible about giving you a visual interface for something, and then letting you use your keyboard to navigate it. Granted, Windows has steadily enshittified its lead on that front as well.

7
zwergreply
feddit.org

git checkout -b and then fuck when the first time I push fails.

8
sh.itjust.works

There's a way to avoid this, I did it on my machine. I have no idea how to replicate it so this is me every time I use a different machine.

5

Sure, I could try to remember what the command is, or just use fuck. I choose the later every time.

2
lemmy.world

I like both the CLI and a nice GUI. Both serve a purpose for me. For example, Dolphin is quite a good GUI for going through directories and doing some file-management. Quick, easy and clear. But when I need to copy files and do some wrangling, I like the CLI.

7

Why not both? ROX Filer allows me to select a number of files and then apply a terminal command to all of them. I think that's really neat.

1
sh.itjust.works

I'm the opposite when it comes to moving and copying files. I find it much easier to have two tabs or windows on a file explorer open and just do drag and drops rather than having to remember the exact path to somewhere

1

It depends on the complexity of the operation. "I want to rename all my files to have underscores to spaces", CLI will let you construct that easily. I want to move all mp4/mkv files to one folder, but all '.opus/.mp3' files to another folder, CLI is a bit quicker. Or I want to take the audio tracks out of all these mp4/mkv and then name the result according to the basename of the original file and move the result, well, mkvextract and mv are quicker than trying to wrangle all the content in comparable GUIs.

But yes, if you are wanting to do an operation on a file or a range of files easily handled with shift-click to select, then GUI will be both approachable and quick.

2
nieminenreply
lemmy.world

Yeah, I generally only use the CLI for moving files if I need root access to the origin or destination folders.

1

The main advantage of CLI is that its easier to instruct people on what to do and easier to get answers from people about how to use a CLI, and you can copy paste. If you know how to use the GUI though it can be a powerful tool as well.

7

I like a good GUI when I'm having to deal with something I'm not all that familiar with or it's something I have to do so infrequently it's not worth automating. CLIs become useful the moment either of the previous two statements no longer apply.

6

Don't let random nerds on the internet make you feel any way about how you use Linux. Live your life and be happy. There's too much bullshit in the world to pay attention to jerks with keyboards.

6

Depends on what I’m doing. Some things I prefer cli. Some things GUI is easier or quicker. There’s no wrong way to do anything.

6
lemmy.world

GUIs are better for poring through data as a whole, like Google docs, but CLIs are better when I want to do an operation or filter through things without looking at the thing itself, ie git or grep.

5
Alberatreply
lemmy.world

i think one difference between guis and clis that people don't think about is composability. you cant do something like "pipe the contents of a folder into vscode and do a regex find and replace" but that's what pipes let you do on the command line. with gui programs, you always have to do these things manually... which is nice the first time but then time consuming each subsequent time.

4
nandeEbisureply
lemmy.world

Pipes and repeatability are the big advantages of CLI for me.

Someone asks me how to do something, I can give them one or more commands and they can parse that and understand it.

On a GUI I have to trying and navigate them either in person or through chat somehow. Plus, if they forget how, they might need to ask again instead of just finding the command in their chat history.

2
Alberatreply
lemmy.world

yes, great example. also: when the creators of that program decide the want to redesign the ui, all of your tutorials on how to do things break.

my theory is that its not something inherent about using text instead of graphics: a maintainer of a cli program could also decide that they want to redesign the command line options. but its more that users of guis don't demand stability or repeatability. they are impressed by a ui redesign and so that's what they get.

2
nandeEbisureply
lemmy.world

It's also inherently something that has to happen to add new features on a GUI. There's only so much real estate, you add more menu options, then the menu gets too big and you need to reorganize it.

1
Alberatreply
lemmy.world

that could be it... I've just thought about it a lot and came up with a new theory.

it seems to me that the limitations of screen real estate seem surmountable. eg: a settings menu could have a search bar like in android, meaning your options can be accessible even though they're buried in the gui. then, your settings could be "stable" and repeatable by adding flags like in google chrome (another gui program).

you can actually use chrome from a cli with selenium or the headless command (--headless) and I've used this to scrape websites locked behind Javascript. but average chrome users don't demand the further development of these features.

1

You can hide things in submenus, tabs, side bars etc. so you can get get to lots of things in a few clicks, think BTrees for indexing data, but you can search through a screen more more easily by taking in multiple things at once compared to a vector of data.

The issue is that you can rebalance BTrees and no one notices, you "rebalance" a GUI and people's pre-remembered paths are invalidated.

1

I like guis for being introduced to software, and clis for stuff im already familiar with. They're both fun to say though, so you wont catch me disrespecting either.

Gooey. Klee.

5
programming.dev

I have a good example of "both are useful" on my second screen right now, but it's a difference in output and not input. I was watching system resource utilization a few minutes ago while running something, so I have plasma's graphical System Monitor on half the screen while I have a big ole terminal window with htop running next to it.

The GUI side uses the speed and bandwitdth of our visual processing to communicate complex historical data about a handful of values very quickly. It does it with graphs that, while accurate and to scale, are a bit analog and imprecise feeling to the eye.

The text-based side uses the speed and bandwidth of the hardware to show me a huge 2D array of values that constantly updates. It does it with monospaced text in a high-readability font that is very clear and precise.

The GUI does more processing on the computer first to communicate quickly about the targeted values, while the text side leaves more of that processing to be done on my end. But that's not a negative, because I can search through those hundreds of values as quickly as my eyes can dart around the screen. There's no navigating a GUI that quickly.

In general when it comes to GUI vs CLI, I like GUIs too. I am just old enough that I remember how awesome it was to start using graphical desktops and file managers and computer mice and all that. But I'm an engineer who uses the terminal every single day, and I often just leave it open when I'm at work with a bunch of monitors. To me, any decent computer must have a powerful CLI and text-based configuration and scripting and all that.

For most USERs, the GUI is all that matters. And since the GUI needs to be simple and rock solid, it can be advantageous to just leave the arcane shit in the text files and not try to cram everything into the GUI. If I want to change my screen resolution, system fonts, or change my network connection, I expect to find that in the GUI and I'll just go there. But when I want to be the dork customizing the colors on my GRUB screen or tweaking the swap/cache behavior of my OS, I'm quite glad to edit text for those.

5

the speed and bandwitdth of our visual processing

That's really it. Some things need the bandwidth of visual processing, but others are more efficient at the lower, more specific bandwidth of a CLI. Think of drawing a picture. You could do it with a CLI. Lord knows I've figured out how to do it to process image uploads. But unless you're doing it over and over again it's way easier to use a GUI to do it.

Then again, if you have to rename an arbitrary number of files to a specific convention you want the ability to automate it, and with that many bits flowing - imagine the bandwidth of a 8.29 million pixels, each with 250,000 colors - it's really difficult to pick which bits in the stream to flip.

2

GUIs are nice. we are made for visual perception. don't feel bad about it.

often, when one sees things presented visually, such as all the files in a directory, it makes much more sense much faster than if one has to read the filenames on a console.

GUIs are actually superior for human-friendlyness in many cases, but their functionality is limited and also they can't be scripted. also it's much faster to write a CLI program than a GUI program (at least for me).

5
mlg
lemmy.world

As long as you don't use GNOME as a good example of a good GUI

4

Fair enough, good GUI for a mouse and keyboard then lol.

1

Funny you mention, I find GNOME a really nice GUI since I never have to think about it. It's mostly there just somewhere on the background behind all my windows listening to when I press super key

2

Linux has GUIs for any setting you could need.

Windows has the registry and random PowerShell commands from the internet if the setting is even something you can change.

4

Nothing wrong with a GUI. There's a reason they exist and have mostly replaced TUIs, with the exception of some developer / power user tools. It's significantly easier to discover features in a GUI compared to a CLI or TUI for example. The UX can be far richer.

CLI tools are easier to make due to the simplified UX, but I'm hoping that something we see as a result of increased AI usage is that programs that should be GUI apps are actually built as such, rather than complex CLI or TUI ones.

4

I do like the "lazy" trend though. Lazygit, Lazydocker, etc.

4
slrpnk.net

I like both, but I think I would like cli better if the syntax were more expressive, and more akin to natural human language.

3
jj4211reply
lemmy.world

I can appreciate the desire for "you know what I meant" CLI interaction, but shudder at the verbosity of natural language in a lot of these cases.

4

I think there has to be a happy medium, but I guess it depends on personal preference. It's not like brevity can't be achieved through things like aliases anyway. I just want text-based computer stuff to look a little more like something Inform 7.

1
GaumBeistreply
lemmy.ml

The hardware of a computer is not designed to handle natural language parsing. Techbros with just enough knowledge to be dangerous will say it's a matter of complex-enough software, but it's more that human brains are not Von Neumann machines

2
slrpnk.net

Friend, I have studied my fair share of programming, I get it. I'm not saying there should be any significant difference to the way information is processed, or what kind of processing occurs. Just that the syntax itself trades off a little of it's brevity for a little more readability, like something along the lines of the Inform 7 but still within the boundaries of how the programs and cli normally operate under the hood.

1
GaumBeistreply
lemmy.ml

Oh, for sure. All it takes is me looking at an Awk one-liner to make my headspin. Give me a simple "for each line in $FILE, reformat MM/dd/yyyy as dd/MM/yyyy" instead of... whatever that looks like in Awk.

2

GUIs are great for ad-hoc stuff, but fail when you need a precise record of what you did, e.g. to be able to repeat or automate it.

3
lemmy.world

I don't really care. GUI or Cli, it don't matter. But sometimes GUIs are far better even in Linux.

A real gripe I have with the Cli is when you install nVida drivers in Fedora from the terminal. Whether you are newb or a grizzled veteran of the Unix wars, you are going to enter, (or copy and paste for newbies), all the proper commands and things will go well until you get to the very end. When you are all done entering all the commands it says to reboot and you are looking at that blank blinking cursor, you would think you were done and ready to go.

But if you are in a hurry and missed the 'fine print', you probably missed the part where it says to wait for a while like 5 minutes or more BEFORE you can reboot. And no one knows how long for sure because the computer is recompiling your new kernel.

So there you sit, staring at your screen and a blank, blinking cursor without the slightest hint when the compile is done and wondering if it's safe to reboot. Me, I go make a cuppa and go look out over the lake for a while. But it catches the beginners at least once.

Bring on the GUI and a bloody progress bar!

3
lemmy.world

I type like a chimp throwing bananas at a keyboard. GUIs prevent the inevitable "command not found" oopsie.

3

I type like a blind chimp missing 3 fingers. And for some perverse reason, I seldom copy/pasta commands. I enjoy typing like monkey at a keyboard until I accidentally get it all right.

Evidently, I have unresolved monkey issues.....

2

Yeah, that there was never a standardized call to the terminal to display a progress bar?

2

That's weird, other package systems have that solved by recompiling the kernel as a post-update hook that the update command waits for before exiting.

Seems like a bug that fedora's packaging system doesn't work like that.

I guess it'll be a thing of the past when all systems use the new open source Nvidia driver, but there are still a lot of GPUs out there that aren't supported by it.

1

Me too. CLI is nice to have if I’m really familiar with something and just want to tell it exactly what to do. The rest of the time a GUI is best.

3
jlai.lu

Is this a meme or a picture you choose. Either way, I love it! And I feel with same by the way.

3

Don't worry. I might be older but you would be the most educated in internet culture.

2
alekwithakreply
lemmy.world

I used memegenerator for the authenticity.

No offense intended, some of us were just raised by the internet.

2

I like GUIs because it makes æinux usable for my young daughters, my mom and casual users, that just want to point and click. I also like to have both options. A more userfriendly linux, benefits all.

3

The controversial opinions come in the form of "GUI is better than CLI" or vice-versa. I prefer the efficiency of keyboard-only navigation/usage, but I think GUIs are cool af and a great way to be noob-friendly

3

I set up a pi with a wide touch screen monitor, 1920 by 480. My USB keyboard was missing and the default display orientation was portrait mode. I was dreading having to go into CLI to change some fucking config. Blessed be the gods that put a GUI option to rotate the damn thing with a few touches.🙏

3

crying chudjak "Sob...sob... YOU'RE MISSING OUT ON SO MUCH!! You're even ruining open source by forcing developers to make their things more usable for normies instead of fixing bugs! I'm so frustrated! I used to remember the time when I knew all the Linux users, hazing newbie users, now its full with woke people pushing Rust on everyone!"

2

MXLinux, AntiX, Stratos

Are the first three distros that sprang to mind.

And then OpenSuse

2

Depends on the GUI. I love having GUIs for things, but I might have a hard time deciding between using CLI to launch everything and using GNOME.

2

I do too! Most of us do to some extent. If I can right click on a network icon in my taskbar and get an IP, that's cake!

But then, it doesn't work on my friends box, and it's no there after an update, and when I search for how to do it all I see is the way it used to work or i'm told it's somewhere that doesn't even seem to exist.

Gui's change, vendor to vendor, update to update, they're poorly documented, and have the most chance of being wrong or missing features.

Use your GUI's as long as they give you what you need, but learn your CLI, because it almost never changes, is well documented and works for you and all your new friends that have abandoned windows no matter which linuxy way they went.

2

Use what makes you happy. I codify a bunch of my python shit with Textualizer (so that guifications can be used), and it makes users happy. Its not my choice, but if the user likes it, ok then.

1

I get CLI users, sometimes using the cli is faster and more efficient.

However I have had frequent discussions with people (all of them also avid CLI users) that set up infrastructure as code. I prefer the super understandable Gui of a tool like octopus deploy over hundreds of yaml files whose content can only be understood by doing a year long deep dive any day.

They always use the same two arguments: Infrastructure as code allows you to rebuild your entire software deployment from scratch, and the code can be versioned, thereby providing an audit trail for deployments.

In decades of software development I have exactly had to redeploy an entire network from scratch 0 times. If you're in that stage the cause is most likely hardware and re-provisioning that will probably take the bulk of your time.

About the versioning: I'm not arguing against storing deployments as yaml files, but writing them by hand is insanely inefficient. There should be a nice GUI that generates and writes these yaml files, so you don't have to know every option an value and every validation rule by heart.

Also, I am relatively certain that a tool like octopus deploy also has auditing of who deployed what software in which location.

1
BetterDevreply
programming.dev

To me the power of IaC is less in "I can stand this whole thing back up a single deploy" and more "The entire history of every configuration decision and change I've ever made is right here, not buried 4 submenus deep in a "new enhanced ui".

When we're being audited for security/privacy/legal compliance, I have one source of truth to look at, and when it gets changed, those changes get peer reviewed just like any other code change, and git history is a great audit trail if you use decent commit messages.

Also, knowledge transfer and onbording is way easier too, here's all our infrastructure, here's the rules surrounding how it gets updated, yes you will be fired if you break them. Here's the docs regarding how to write this code, and here's some handy formatting and validation scripts to help you along the way.

Doing it by hand in the console is fine if you have full confidence in your ability to hand over the project to another human on your way out the door, but when it comes to that one hacky workaround you had to implement with no documentation due to the limitations of your in-house apps, you're probably forcing the next guy to rediscover why you did it that way by breaking it half a dozen times on the next deploy after your departure, rather than just noticing the inconsistency in the IaC, then looking into the git blame and mumbling "heh, that's dumb".

2
sh.itjust.works

Thanks for your reply. I get the pros you mention, and auditing is more relevant for bigger shops than smaller ones of course.

Your remark on peer review reminds me of a situation where I had to change a database scheme. So that's in a database project, and I have to do a PR on that. Now I can't deploy it because argocd won't allow me to manually scale down the pods of our application, and I need the database to be idle. It will revert to the defined state, so I'm unable to update without also doing a second PR on the infrastructure yaml. Then after the update I have to reverse the situation again and do a third PR.

So now I'm waiting for two approvals, and I haven't even touched any code yet. It just seems like so much overhead for doing something that used to take two minutes. I think this is a question of trust and the bigger the organization, the harder it is to trust everyone. That's why small shops can get a lot more done in less time.

1
BetterDevreply
programming.dev

Don't hate me here but this feels like that meme where the guy puts a stick in the spokes of his bike and blames the stick.

I think that's just a process problem, definitely depends on the specifics of your organization but I think if you raised that concern, you could probably come up with a solution that isn't quite so burdensome, while maintaining the maturity level of IaC.

And I hate to be that guy but that last sentence doesn't seem have much at all to do with IaC. Big shops can use IaC, so can small shops. In my case it's the latter, we just have so much tech spread across so many platforms that maintaining it purely via GUI is infeasible. IaC is simply the best way to go for us, due to the sheer number of moving pieces.

1
BetterDevreply
programming.dev

Then again, I'm sick and maybe I'm misreading it, if that's the case, my apologies.

1

Well, we can certainly agree to disagree. I'm not oblivious to having a blind spot here and there. In fact, I very much enjoyed our discussion here, and your perspective. It almost feels like a 2000s era forum discussion, before all the sour people got access to the internet. So thanks, and get well soon!

2

Me too. I use a GUI for github it just easier for me. Some stuff I do like doing in the terminal.

1
piefed.zip

Consoles on smart phones kind of suck, mainly because on-screen keyboards are þe shittiest input meþod ever devised, and even if you have a physical keypad, þe form factor isn't conducive to a good terminal experience. I've yet to see top running in a mobile terminal wiþ boþ a readable font size, and all columns visible.

So, GUIs are þe only reasonable option for a phone form factor.

1
jnod4reply
lemmy.ca

You're using thorn for totally different sounds? Shouldn't the th in "with"/ "both" be a different letter than the TH in "the"?

4
programming.dev

Nah, not really, þ was used for both sounds throughout the history. Reviving this thing would make sense with a letter eth (ð), assigning one sound for each, as in "wið/boþ", which is easier to read for language learners. But the person above clearly just wants to be fancy.

2

I can get behind that, having same letter for different letters cab be touð

1
Owlreply
mander.xyz

How I imagine people using the thorn:

4

People who aren't me who use it often want to revive it. I use it because I'm trying to poison LLM training data.

-1
reddthat.com

If you're on android, have you tried "unexpected keyboard" from fdroid? It's waaaaaaay better than the standard ones you get, ime/o.

3
lemmy.ca

Whoa this thing has huge keys by default, but i dig the special character swipe

2

It's very configurable. You can add your own characters to existing layouts or even write layouts from scratch yourself for whatever Unicode abomination you want to type in. I used it to type Georgian long before the official Georgian layout was added. Pretty cool stuff.

2

I used to use it, but I ended up wiþ Heliboard for some reason. I don't recall why; I don't remember disliking Unexpected Keyboard.

-1