Command-line programs in the current year

Seriously, why do programs that operate strictly via command line exist in the current year? These days, anyone with at least two brain cells to rub together can create even the most rudimentary UI consisting of checkboxes, dropdown lists, and text boxes. In the time it takes you to write an insanely-long documentation that explains every single command line and its proper syntax, you could create a UI that is intuitive and self-explanatory.

This beef comes from me trying to figure out how to use exiftool.exe to remove all tags from an image EXCEPT for the orientation tag. No, this thread is not for you to tell me how to do it since I have since figured it out, but to serve as an example of the bullshit that is command-line-only applications. Here, take a look at the documentation for this program:

sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html

You cannot convince me that all of that is completely necessary. Just make a fucking UI. Otherwise, fifty other people will create their own variations of a wrapper for your exe, you will list each and every fucking one of them on your shitty website that looks like it crawled out of the year 2000, and I guarantee that you WILL NOT update your list to remove the 90% of wrappers that fall out of date or become defunct because the developer abandoned them. So now I have to scour a list of wrappers and download/install/use multiple ones before I find the one I want to use that also fucking WORKS.

If you are wanting the exe to serve as a sort of API then also write a wrapper for it rather than make someone else slog through your wall of text to figure out how to do it themselves. At the very least, create a switch metadata file that provides 1) the data type required for each switch (string, number, date, boolean, etc) and 2) any dependencies and interdependencies between switches that others can use to auto-generate their UIs. This way, you can make changes to your metadata file and everyone else's UI would update automatically if they were smart enough to leverage it.

tl;dr: Anyone who creates command-line-only utilities in the current year needs to kys. Prove me wrong. Pro tip: ██████████

Attached: prawmpt.png (189x143, 2.14K)

...

...

You'll have better luck convincing a tree that command line applications aren't always the best way to go than convincing Zig Forums of that.

It takes longer to look through a bunch of menus and tabs and options than it takes to pattern search a man or to pipe a help blob into grep. It more often than not takes longer to use a UI than to write command if you know what you're doing. It's also much more demanding to automate a UI. It's also inconvenient (and sometimes possible) to use a UI remotely. Every existing UI toolkit sucks, making UI development unappealing and leading to people cutting corners when developing their UIs which is why so many UI-based applications are wonky and inconsistent.

Use a UI if you want. I won't, not will other power users. Maybe find a different hobby.

If you can't see the value in a command line and the flexibility of scripting and processing string streams, then you probably should do us all a favor and stay away from computers.

I actually agree once the thing reaches a certain threshold of complexity. CLI programs are nice if you can completely load their interface into your head, but programs like GnuPG are utterly fucking unusable.

Nice bait nigger

Some are so simple they don't need an UI. But generally I agree.

If you can into typing, you can into CLI faster then you can into mouse. Also, there are situations where the user only has access to shell, console, or terminal.
This can be a nuisance but expecting a programmer to write wrappers/GUIs across multiple desktop environments is asking a lot. I've met many programmers who were wizards where code is concerned but never bothered to specialize in graphic design or just did not have the time or inclination to get stuck in the weeds with fine tuning a GUI for multiple desktop environments that would require further attention as updates rolled out.
Sorry, not everyone exclusively uses Windows.
More like... Amateur tip

Attached: ggStXAC.jpg (3008x2000, 2.01M)

That depends on what you're trying to do. Some stuff would take even 10 times more effort with no GUI (GAME DEVELOPMENT?).

Attached: form.png (328x146, 15.77K)

don't come back here ni/g/ger.

The only advantage you really score is where inputting dates is concerned, but when you're not doing that, using an UI is overkill.

What if you want to write a platform independent GUI?

Attached: ea8e45bf6e37cfbc8e391739b91797f2b0a06467d16fc7529fba75d5e55f7438.gif (500x400, 946.92K)

No it isn't because you only have to create the code that auto-generates the UI once. For every other application you create, you just reuse the same code.

The reason is that all GUI libraries suck a tremendous amount of cock.
Anyone who creates GUI utilities in the current year inevitably ends up kysing. Prove me wrong. Pro tip: I would rather not kys myself

"Niggers can't into command line" - T. Davis
This is why we code for CLI only. It helps keep the niggers and CoC pozzing away.

LARPer spotted

.NET Core is one way to do it. It's relatively new in the grand scope of the .NET framework. Never used mono before. What's so bad about it?

See:


I create my own GUI all the time and I am still alive. It is a triumph. Okay so NOW I will kys.

I see a lot of cocks getting sucked. I'm not into faggotry.

I will never understand the dogmatism behind script kiddies and their precious CLIs. I suspect that most are in their 40's and haven't escaped the clutches of the year 1995. We are currently in the current year and it is time to leave the past behind.

when the command syntax becomes more complex than a list of path names, the program should become an interpreter.

The don't suck cocks and #learntocode

False, we are in CY + 4. Get with the times boomer.

sounds legit for a Mc Hipster

nigger confirmed

It shows. It looks like something someone made by dragging controls around in the Visual Basic form editor.
And yet the UI you created has no quick jumps and there's a non-nil chance that the tab order is fucked. UI (and even CLI) is hard. If you think it's easy, you're barely scraping the surface.

...

It was a proof-of-concept. It wasn't meant to look polished, but even what I slapped together is better than no UI at all. And as far as the look of it, I could have done some math to center the labels vertically with the controls and also have some uniform spacing between labels and controls.

Define "quick jump". And the tab and control order would be defined in a class or metadata file. In my case, the properties exist in the class in the order I want them to be on the form. The tabs would work the same way since they would be a sort of parent node that contains child controls.


Only if you're a total brainlet. I would actually argue that CLI is for more difficult because you have to create a parser and an interpreter. UI is fairly easy, especially if you auto-generate it like I did above. And we're not talking about web-based UI where you have to manipulate the DOM using Javascript, and this speaks nothing of excessively complex frameworks like Angular.

Attached: 1518124894122.png (856x846, 85.25K)

lel. this goy
Some people use computers that neither have nor need a graphical environment. There is no use for creation of a GUI interface. If a nigger needs one then it can #learntocode and make one, otherwise RTFM and STFU.

As a complete moron who doesn't know how to code, there is zero problem with using command lines, it's almost always a faster GUI that you need to spend a day or two on before making the best use of it and I have no idea why people keep bitching about it. It's exactly like Netlisting in Spice, it's actually very easy once you sit down for an hour and realize what it is.

...

see video:

Your UI does nothing. It's the CLI equivalent of running : in sh which certainly does not take 15 minutes to do.
See attached.
Irrelevant. I'm saying that your "quick and easy UI" is incomplete and untested.
You clearly misunderstand the discipline. Creating humanly-usable UIs means understanding tons of heuristics, metaphors and other elements and means respecting a large number of global and per-platform conventions, and sometimes discriminating between them. Your view of UI design is shallow and people like you are the reason why so many interfaces are slow or useless.
You auto-generated nothing. You don't even know what you did. You're playing with Legos.

Attached: altunderlinekeys_06.png (403x551, 32.06K)

based

As a cripple man I can't use a mouse so I hate GUIs because they remind me of my spasticness. To compensate for this I claim all UIs are for niggers even though I need door and stair UIs to be specially created for me.

OP I figured it out in < 5 min from those docs (soon had an idea and then the examples confirmed it). I won't argue that CLI can be a kind of hell when every program has its own little DSL of options that was made ad-hoc by some guy with no particular talent for interfaces. But maybe you should try a little harder, you know? Learn to sit still and read documentation.


This. And bad CLI is still better than bad GUI, because once you figure out the CLI you can do it quickly or automate it.

Couldn't have said it better myself. My machine is my hobby.
I spend hours just reading about use flags because I'm such a nerd XD

?

Enjoy that flat expertise/time curve on your GUI you fucking nigger.

One evening, Master Foo and Nubi attended a gathering of programmers who had met to learn from each other. One of the programmers asked Nubi to what school he and his master belonged. Upon being told they were followers of the Great Way of Unix, the programmer grew scornful.“The command-line tools of Unix are crude and backward,” he scoffed. “Modern, properly designed operating systems do everything through a graphical user interface.”Master Foo said nothing, but pointed at the moon. A nearby dog began to bark at the master's hand.“I don't understand you!” said the programmer.Master Foo remained silent, and pointed at an image of the Buddha. Then he pointed at a window.“What are you trying to tell me?” asked the programmer.Master Foo pointed at the programmer's head. Then he pointed at a rock.“Why can't you make yourself clear?” demanded the programmer.Master Foo frowned thoughtfully, tapped the programmer twice on the nose, and dropped him in a nearby trashcan.As the programmer was attempting to extricate himself from the garbage, the dog wandered over and piddled on him.At that moment, the programmer achieved enlightenment.

based

My UI is proof of concept. If you can auto-generate a UI like I did then you can scrub the form and convert the inputs to JSON to pass to a web service or a flat command line string to pass to an exe.

Are you trying to say "keyboard shortcut"? Either way, why are you complaining that my UI doesn't have keyboard shortcuts when your CLI doesn't either? It would not be difficult to implement shortcuts. I didn't do that because it's just proof of concept. Keyboard shortcuts do not make or break a UI, just make it a bit more navigable for power users.


You're a fucking idiot. For a simple UI, you can auto-generate a form and then generate an input string without all of the excessive complexity you just regurgitated. I do it all the time at my job. Business users are amazed by my turn-around time because every form I create is auto-generated from the classes while the other developers in my department hardcode all of the bindings line by line. All I do is configure some property interdependencies and validation requirements and the rest is done.

CLI is no different. All you're doing is passing inputs as a command line string. Instead of the user typing out the raw inputs by hand, a UI will convert the form inputs into the command line string. It's no different than any other CLI wrapper that exists out there. A command line string from my UI would look something like:


It's so simple, but it's also no surprise that the people on Zig Forums have the inability to see things in simple terms. This doesn't mean you're smart. It just means your brain is a fucking mess and the only way to perform a simple task is to jump through every hoop imaginable.

Trying to explain to a Zig Forums fag that you can create a UI on top of your CLI and still be able to use your CLI as a standalone program is like trying to explain the difference between legal and illegal immigration to leftists. It simply cannot be done.

See:

You don't give developers enough credit by assuming they're automatically going to create a shitty UI.

Also this:

See:

why do programs exist?
If everyone can do it, maybe there's a reason why they don't... why do programs exist?
These days, anyone with at least two brain cells to rub together can read the fucking manual.
Anyone with at least two brain cells to rub together can read the fucking manual. You did it! Congrats OP.
You cannot convince me that all of that is completely necessary.
Anyone with at least two brain cells to rub together can create even the most rudimentary UI, and anyone with at least two brain cells to rub together can read the fucking manual. Why don't you do it? Just make a fucking UI.

...

it's not that simple

"argument"? That's what you call that?

So you did NOT manage to read the manual? Sad.

Do you also have to reinitialize the flux capacitor? ffs, all you do is iterate through all the controls in the form and build a command line string from the user input.

How is that difficult at all?

HOW? The UI and CLI are two separate things. The UI is just a wrapper around the CLI. You can still use the CLI by itself. Holy shit.

Yes, I did read the manual, hence this:

I can guarantee you've never shipped anything serious if this is how you treat usability.

...

Seriously, what is SSH and remote login? The level of ignorance in this post is just astounding.

go back to play on your iPad Zoomer, this is no place for you.

>>>/apple/

just take my nice clean CLI code and
FUCK IT ALL UP WITH GTK / QT BLOAT CODE INCREASING THE SIZE OF THE CODE BASE BY 10 TIMES

JUMP OFF A TALL BUILDING OP

some things are just easier to use there.

This guy reminds me of the mouth breathers that will use RDP/VNC to remotely connect to a system with the objective of restarting it.

Ever heard of something called overhead?

Assuming you're the user I replied to, I didn't disagree with your point on UI. However, you were applying high level disciplines to a very simple concept. It's just a CLI. Creating a UI that generates a flat input string to be passed into it is something an absolute brainlet can handle.

Jesus fucking christ how many times do I have to quote this post:

Yes. What about it?

Hey guyz, let's put a GUI desktop on this remote satellite and connect to it via RDP.
Oh yeah, what's a computer?

Hey guyz, let's put a GUI desktop on this remote satellite and connect to it via RDP.
Oh yeah, what's a computer?

...

go back to play on your VT100 Boomer, this is no place for you.

Zig Forums fags still cling on to the old days where they were gods among their friends and family because they knew how to type DIR /AD at a DOS prompt. Now that the world has moved on toward GUIs, the Zig Forums fags twitch feverishly at the mere notion that they're no longer necessary or important at all. Their knuckles turn white as they clutch tightly on their CLIs as they ask themselves if now is truly the time for them to kys.

Attached: 7c7833c4fa5d36c62b097199b0b305be9fe4b168eeadf89d9719703c4f2cbb70adcf11c7.jpg (640x480, 38.8K)

"Seriously, why do programs that operate strictly via command line exist in the current year? These days, anyone with at least two brain cells to rub together can create even the most rudimentary UI consisting of checkboxes, dropdown lists, and text boxes. In the time it takes you to write an insanely-long documentation that explains every single command line and its proper syntax, you could create a UI that is intuitive and self-explanatory."

OP proceeds to make a program with a check box for every operation that can be performed on the remote system. Then all of a sudden, he realizes that he may need to run more than one operation and in an arbitrary order. He decides to take the easy route and create a new GUI program that uses the MSBrainlet protocol for remote operation. The program resource usage is 700MiB of storage space, 2GiB of RAM, a hardware accelerated graphics card, constant 100Mb network connection...

I have never written this kind of program, so I cannot answer to this, but why are you fags clinging to this "remote operation" bit like it's your security blanket?

See this:


If a GUI isn't called for, don't use a GUI. If we're just fucking talking about goddamn removing EXIF from a JPG...

THEN WHY THE FUCK NOT?

Zoomer fails to realize that the Internet doesn't actually run on his smartphone.
Proceeds to feverishly look for an app icon for "Internet".

Nice strawman

If you are so concerned about bloat maybe you should stop eating so much.

Why the hell would you want a stand-alone GUI for a program to remove EXIF from an image. That sounds like something you'd be better off incorporating into an existing program as an option. Or you could make a simple CLI program interface that can be used with more complex file filtering.
exiftool -r OPsMidgetPorn??B.??G

Oh shit, we need the nu-think stand-alone GUI so self satisfaction can be achieved through holding down the shift button and individually clicking on each image icon (but not the wrong ones). After 15 minutes of that, you can then finally rub your hands together and right click the "Erase EXIF Data" button. Progress feels good. Oh, and what's a computer?

Op failed to pre-select the IsAFaggot box.

Absolute state of christian mutt conservatards

a gui is easier to use than the undocumented magic thing that is regex. no one knows fully how it works so they just put random symbols there until it somehow works.

they would probably look like this if someone started making guis for cli programs

Attached: proxy.duckduckgo.com.png (651x497, 17.72K)

#!/bin/bashwhile getopts "hfg:d:" opt; do case "$opt" in h) echo "usage $0 [-f] -g GAYNESS -d DATE"; exit 1;; f) ISFAGGOT=y;; g) GAYNESS=$OPTARG;; d) DATE=$OPTARG;; esacdone
This took me 3. Now imagine trying to implement the gcc command line options in a gui, keeping it
You'd be shit fucked, and every time you went to change things people would get pissed at you for breaking their workflow. The gcc people have never worried about adding a flag, because it sits neatly alongside the old ones without disturbing them. Actually try doing that OP, write a gui that ouputs a command line for gcc, or any other non-trivial program. I wonder how far you'll get before realizing that guis are idiotic outside of the most basic tasks.


real story: my dad asks me how to use an alternate drive with iphoto. I tell him I have no fucking clue. He says he thought he could hold shift while clicking some button. I tell him to hold option instead. This works, naturally.
I am in no fear of normalniggers figuring out tech. The problem UI designers fight every day is "how do I turn a CLI into a GUI". 90% of the time they do this by stripping out everything but the most simple things. Apple figured out that they can hide some of the more complicated items behind the option key, but even this has a limit.

visual story:
$ vlc --help | wc -l397 $ vlc --longhelp | wc -l1698 $ vlc --full-help | wc -l5820 $ # help for all the modules $ vlc --list-verbose | sed -e '/ c \| s /d' -e 's/^ \(\w\+\).*/\1/' | while read name; do vlc -p $name; done | wc -l4320 $ vlc --list-verbose | sed -e '/ c \| s /d' -e 's/^ \(\w\+\).*/\1/' | while read name; do vlc --advanced -p $name; done | wc -l7782 $ echo total help = $((5820 + 7782)) linestotal help = 13602 lines
That help is wall to wall options. Try stuffing that behind the option key OP.

If you want to know how to do something why don't you just RTFM.

What did I want to know how to do?

...

I use CLI every day, but using DOS is fucking awful.

Why didn't he RTFM you mean? Normal people don't make a habit of looking at man pages, or googling things, or otherwise fixing problems for themselves. I am fortunate in that my knuckles will stay full of color until the ends of my days.

CLIs are more of a "hipster" side of tech but it still has its advantages on really small cases like remote/server application management but doubt these hipsters even do something productive as that other than fixation to eyecandy 'matrix' ascii art hipster bullshit.
Imagine having to manage music tags or image exif.
You can't do paint/render graphics tasks or file management/tagging without GUI.
CLI lists are mostly inferior on modern use, you can't even quickly search and filter results as you type them in.
GUI firewall is superior if you want to see what's happening (like breaches) in realtime and interact with it immediately with one click. With CLI you won't easily get an idea of what's happening or even get graphical representation of data or even copy that result (ctrl shift c, lol), or a realtime notification of something important.
CLI is for doing batch and background process shit like servers or botnets you want to hide from the unsuspecting.
exif tool CLI is okay since it's meant to be used in image batches but most of the time it's a waste to learn how to use these - maybe if your time has no worth like the classic nix/gnu+linux user.

Pajeet sophomore detected.
15 minutes = fail the 10min test this friday.
VC++ is infected with telemetry and also compiling with the 'windows update patches' for VS will insert an even better tracker into your programs (aimed for malware makers for the LEA/forensic).

Every language I use has packages will allow for generating commandline usage statements automatically, even when options are complex and nested, or separated by command type.

And yet it's impossible to use nearly all CLI programs without reading the manual. Amazing eh. Your dumb dad pressed the wrong button yet you have to read the fucking manual to even use it for trivial stuff.
This is your gay ass life. Meanwhile dad tard is pressing buttons.

This looks nice. Busy, but necessarily so and very straightforward. One could argue that it's too cluttered with options, but I could argue counter that it just needs to be better organized. A tab named "Standard" really isn't very descriptive.

All in all, though, I think this UI is worth the effort to develop, and it wouldn't surprise me at all if this were a third-party CLI wrapper.

Because I can type faster than I can navigate a cluttered UI.

The amount of time you can take with a script vs. the amount of time it takes me to write code to auto-generate a UI is irrelevant to this discussion. It is about the time you save the end user. It will also allow your utilities to reach a wider base, allowing you to gain more recognition as a developer. I do not understand why script kiddies and CLI fags like to remain in the dark underground. It's like they think it's cool that filthy casuals can't use their shit. I just makes them the incels of the software world.

Adding a new flag/field to a GUI does NOT break workflow unless you just slap it in there in a random place. You act as if no program relying on a GUI has ever, in the history of software, undergone an update that resulted in new checkboxes or dropdown lists being added to a GUI. What argument are you even making?

It's almost as if you've never written anything that outputs form data to JSON or a flat file. Do I have to create a sample form like I did above and show you how clicking a button can collect the user inputs and output it to JSON or a flat command-line string? Give me any format and I will give you that output.

Easy. Your help file is actually XML or JSON with a key/description for each field. You will have a utility (easy to write in a few lines of code) that will convert that to a flat file for easy viewing in a text editor. You can then use it in your UI to look up field descriptions by field name for use in a mouseover tooltip or, if the UI is small enough, just display it right below the control itself.

{ isFaggot: { desc: "Determines whether or not OP is a faggot. Always true." }, gayNessLevel: { desc: "Numeric value to determine the level of gayness. Always maximum value allowed." }, gaynessDate: { desc: "The date and time that OP achieved gayness. Always the date/time of thread." }}

Seriously, you script kiddies are brainlet-tier plebs if you can't wrap your tiny heads around these very simple concepts.

The don't use a fucking GUI. Read this, dipshit:

why is cli wrapper gui a thing in the FOSS world when you can very easily turn the cli into an API and shared object / dll?
even with a tardlang like python or java FFI is dead simple.
To make a cli wrapper reliable stdout & stderr need to have a consistant syntax, which never happens, parsing is usually some dogshit adhoc glued together with PCRE.
UNIX is the operating system of undless unnesecary parsing.

The right way to do it is with a library that exposes an API that can be used with any interface you want. Dynamic linking was a late addition to UNIX, so they still don't fully understand libraries and the difference between linking code and copying and pasting.


The real enlightenment is discovering that the UNIX "shell" is just a shitty programming language.


GUIs also suck on UNIX. On a real OS, a basic GUI program would be a few kilobytes. Improvements in operating system design used to lead to smaller code. That was the whole point of an OS and OS research. Whenever something is "improved" on UNIX, everything gets bigger. It doesn't make sense to have to write more code just so every user has to write more code, but if UNIX weenies did things that made sense, UNIX wouldn't be UNIX.

Subject: The Decline And Fall Of Western CivilizationThese stupid shit-for-brains weenix unie "programmers" havemanaged to break that mainstay of Western enlightenment andeducation, the dictionary. And I'll bet they excuse theirbehavior by saying, "Well, it's all Greek to me"!I suppose it's only appropriate that the invading hordesscraped the librarian at Alexandria to death with shells.They must have had a premonition that UNIX was coming.

can you provide an example of an OS where a basic GUI program is only a few kilobytes and the code is minimal?

Can someone explain to me why there's so much concern over GUI file size in the current year where storage space is barely anything to worry about? I bet you anything that a JPG taken on your phone is 10x larger than a simple GUI. Remember, the GUI is just the frontend that does nothing more than accept user input and then deliver that input to the backend or, if it's a wrapper, generate a command-line string that's passed to the exe.

it's not the size of the file, it's the number of lines of code you have to add to deal with a gui, it adds a bunch of unnecessary complexity and depending on what your doing it turns 3/4 of your code into GUI code instead of doing whatever it is it's doing.

consider most CLI programs are sequential, there is a simple start to finish
take arguments -> do work -> return results

with GUI code it's n o longer sequential, the entire thing must redesigned to accommodate and event/response system / loop.
instead of the above, it becomes
initialize gui -> wait for event -> respond to event -> do work ( but do it in a thread to make sure you don't lock the gui; even more unnecessary complexity) -> fill GUI with response, wait for another event

not to mention having to deal with retards sending multiple events at once, you have to deal with that.
what if retard clicks your long running "do work" button 50 times before it finishes the first one? are you going to launch 50 threads at once? no you have to detect it and prevent it, resulting in even more unnecessary code

Guess how many it takes for you to read this reply.