News for hackers. Stuff that matters.
Re:Terminal escape sequences in Git commit email field by junon on Sunday March 28, 2021 @11:00PM (#26617260)
I maintain chalk and a slew of other TTY related things.

Terminal emulators are, far and away, the most archaic computer technology we still use daily.

Believe me when I say, it's a very hard problem to solve since everyone has subscribed to Unix's philosophy of "everything is text".

As much as I dislike Microsoft's philosophies on software, they had the right idea with Powershell. Its execution is just abysmal.

Expect this stuff to change drastically in the next 5 years.

Re:Terminal escape sequences in Git commit email field by st_goliath on Sunday March 28, 2021 @11:25PM (#26617403)
> Expect this stuff to change drastically in the next 5 years.

Bwahaha... is this your first encounter with backwards compatibility?

Changing this would be very hard, but this has nothing to do with somebody embracing some grand philosophy, but with tons of existing software relying on Unix like systems to, well ... be Unix-like, because that's what the software was written for.

Re:Terminal escape sequences in Git commit email field by Ericson2314 on Monday March 29, 2021 @12:17AM (#26617656)
I've given it a lot of thought, and below is my one "reformist" idea to significantly improve things without breaking back compat so bad

Invert the shell and terminal: every shell command (with unredirected streams) gets it's own pty.

- Like the those repl "notebooks" you can scroll each output separately, without hacks.

- Backgrounded processes won't spew garbage when you are trying to type. They just continue running in their terminal. You can even background something like vim or a game that takes the whole terminal, and it's just fine!

- Rather than hacking scroll back onto processes that might use tty stuff in expected ways, just straight-jacket them by giving them plain pipes instead! The OP exploits are then opt-in impossible.

- Having powershell-esque "post-text" commands that dispense with the bullshit are far easier to manage: also give them regular file descriptors and negotiate protocol or whatever, just like the above, rather than a pty.

- stdin can be a nice form with submit button rather than fixed (usually line) buffering policy.

- shell might even be simpler as there is less careful juggling of shared resources except where the programmer asks for it.

I also use ssh multiplexing instead of tmux for extra shells. When I do need to use tmux, I hate that read only mode prevents scrollback. The above builds nicely upon this:

- The persistent remote shell has as many ptys as needed before for chained commands which might still be running, or separate "sessions"

- The local client can use native UI elements for everything, no TUI jank.

- Scrolling over many (live or saved) terminals, the normal scrollback case, is possible and very side-effect free.

Anyone see any issues? I don't for anything I do daily (git, coretuils, etc.)! I don't think I have time to make this, so please someone else do.

Re:Terminal escape sequences in Git commit email field by darrenf on Monday March 29, 2021 @01:25AM (#26617977)
> You can even background something like vim or a game that takes the whole terminal, and it's just fine!

Focusing on this point, you can background vim just fine right now - I have tons of vim processes backgrounded all the time.

Re:Terminal escape sequences in Git commit email field by nybble41 on Monday March 29, 2021 @04:44PM (#26627909)
You can suspend vim. If you try to run it in the background (e.g. with the bg command) then it just suspends itself again. To actually run it in the background on a shared terminal you need something like screen or tmux… which assigns the process its own pty.

Perhaps for most use cases involving vim it doesn't make that much difference—what would it be doing in the background anyway?—but there are other TUI programs that could be doing useful processing in the background if they didn't need to share the pty with other processes.

Re:Terminal escape sequences in Git commit email field by CGamesPlay on Monday March 29, 2021 @12:40AM (#26617763)
I’ve given this a lot of thought over the years and the biggest conclusion I have is that there’s no real “killer feature” in any of this that makes it spectacular, and maintaining backwards compatibility would be critical to let anybody use it. Still, I like the idea of splitting each command into a separate PTY, I wonder how good a TUI replacement for tmux built around this could be (yes, gotta start with the TUI before you think about a completely new GUI, again for the interop).
Re:Terminal escape sequences in Git commit email field by spijdar on Monday March 29, 2021 @12:39AM (#26617760)
It's not a direct match, but I think you'd be fascinated by aspects of Plan9's model. It certainly comes closer to what you've described than Unix does. Depending on exactly what you mean or you're envisioning, it might be really close.

The problem, of course, is this either breaks existing software or requires new software to be written from scratch to utilize the new frameworks. This was (one of) the reasons plan9 never gained much traction, and the big hurdle for any contender to the TTY/shell throne.

(It's also worth pointing out microsoft themselves reworked their terminal interfaces to be more unix-like for this very reason -- software compatibility)

Re:Terminal escape sequences in Git commit email field by wmanley on Wednesday March 31, 2021 @10:30AM (#26647775)
Yes please. I've often thought the same.

Mentioned this comment here: https://blog.williammanley.net/2021/03/31/seen-on-hn-invert-...

You’d need to implement a new protocol between terminal and shell. Maybe the shell would be in charge - allocating PTYs and multiplexing the output back to the terminal. Or maybe the terminal would be in charge where it would allocate PTYs for children and send them to the shell using FD passing. There are advantages both ways.

Integral to its success though would be getting the support for this new protocol upstream in bash. Bash is the most widely deployed shell and the only way to get to the point where you can log in to a new machine (or over SSH) and expect this to “just work”. Without that it would remain a niche and could join the graveyard of other improved shells/terminals that approximately no-one uses.

As such the protocol would have to be minimal and easily implementable in C. Systemd’s protocols could be an inspiration. I’ve implemented both sides of sd_notify and LISTEN_FDS before, in more than one programming language and it was very straightforward.

Re:Terminal escape sequences in Git commit email field by noahlt on Monday March 29, 2021 @03:57AM (#26618712)
I’m working on exactly this right now. I’d love to chat and show you what I’m up to; if you’re interested, email me at [email protected]
Re:Terminal escape sequences in Git commit email field by junon on Monday March 29, 2021 @07:54PM (#26629791)
No, I'm saying this because there exists mailing lists and chat rooms where all of the terminal emulator developers are discussing these problems to collectively solve this issue.
Re:Terminal escape sequences in Git commit email field by tambourine_man on Sunday March 28, 2021 @11:52PM (#26617541)
We've tried many times and in many ways, but text is still the main interface for programers (and even for a lot of end user tasks as well).

As long as this interface remains undisputed, "everything is text" is a feature, not a bug. Arguably, one of Unix's greatest.

Re:Terminal escape sequences in Git commit email field by rurban on Monday March 29, 2021 @02:09AM (#26618179)
The feature is "everything is text". The bug is the misunderstanding that "every text is identifiable". That names are garbage in, garbage out. Unix names are far worse than non-unix names in this regard.

Terminal sequences, unicode all violate the identifier rules. There is no u8ident library to sanitize this input or output.

Re:Terminal escape sequences in Git commit email field by bmn__ on Monday March 29, 2021 @04:04AM (#26618752)
> unicode all violate the identifier rules […] library to sanitize this input

Unicode standardises identifier rules. The default identifier as per UAX31-R1 can be checked with a regex:

    perl -E'say "my_identifier" =~ /\A \p{XID_Start} \p{XID_Continue}* \z/x'
I guess that's not what you mean, so an explanation with some details is needed here.
Re:Terminal escape sequences in Git commit email field by rurban on Monday March 29, 2021 @06:53AM (#26619851)
Yes, unicode is fine. What is broken is that nobody cares. Not even perl5 cares about non-identifiable identifiers.

Btw your snippet does not work for identifier validation. There is much more needed to pass the identifier security guidelines.

But here we just need a simple terminal escape sequence stripping library. Unicode is a bit harder. Only Java, rust and me did that.

Re:Terminal escape sequences in Git commit email field by enriquto on Monday March 29, 2021 @12:46AM (#26617792)
> it's a very hard problem to solve since everyone has subscribed to Unix's philosophy of "everything is text".

Look at it the other way round. Embrace text. Text is not the problem, non-text is. You'll take text from our cold, dead hands!

Re:Terminal escape sequences in Git commit email field by Scene_Cast2 on Monday March 29, 2021 @01:02AM (#26617869)
When I type "ls", I'm getting a text-serialized list of objects. Why can't I just get the (serializable) list directly? So that I don't have to mess with (implicitly) converting text back to objects, often involving regex and hacks.
Re:Terminal escape sequences in Git commit email field by mysterymath on Monday March 29, 2021 @01:16AM (#26617931)
Because the objects are probably either relatively deeply encoded inside hundreds of plain-C stack and heap locations, or they're not even fully resident in RAM anymore by the time output occurs.

It's not that uncommon for ol' C hackers to directly write those stack and heap locations out to disk and call it a "file format." Trouble is, you're almost entirely at the whims of your platform and compiler as to what the actual layout of that is.

If you're thinking, "well that's dumb, why doesn't C have a standardized representation for those in-memory objects that hides platform differences", it does: printf and scanf.

Text isn't necessarily a great answer to that problem, but it definitely is an answer. Others include packed structs with htonl and friends and low-overhead serialization formats like protobuf, Thrift, and Avro. Inside, say, Google, you have "everything is a protobuf" instead of "everything is text," and it does end up working roughly as well as you might expect. That is to say, reasonably well, but with its own sets of problems that people won't ever stop complaining about.

Re:Terminal escape sequences in Git commit email field by theamk on Monday March 29, 2021 @01:12AM (#26617915)
You are not supposed to parse "ls" (unless this is "ls -1"), because that format is only for humans, and defaults change all the time.

If you are parsing "ls -l" output, you are doing something wrong.

Use your language built-in features, every language has them (for example in bash, use *-expansion and [-commands). If they don't work for some reason, there is "stat -c" and "find .. -printf", which both produce text which is absolutely trivial to parse.

Re:Terminal escape sequences in Git commit email field by eMSF on Monday March 29, 2021 @10:08AM (#26621786)
The reason you're not supposed to parse ls output doesn't have to do with the default formatting; I'm quite sure all widely used implementations of ls have always printed the equivalent of "ls -1" when the output is directed to a non-tty. The actual problem is that UN*X paths can contain all printable characters, including newlines, so if you don't plan to place additional restrictions on the file names you support, you can't at any point parse ls.

Of course, ls does more than just list file names so it can be tempting to utilise its features. coreutils ls has (relatively) recently received an additional output format that can be unambiguously parsed, but that's as far as the portability goes.

Re:Terminal escape sequences in Git commit email field by acka on Monday March 29, 2021 @08:19AM (#26620476)
Like with Git, the usual set of common *nixy tools (coreutils as well as certain shell built-ins) contains tools in both the 'porcelain' (meant mostly for human consumption) and 'plumbing' (meant mostly for scripting and constructing pipelines) categories. Perhaps tutorials and reference documentation should place more emphasis on which is which, and why. Using the right tool for the job leads to better results and less frustration.
Re:Terminal escape sequences in Git commit email field by philsnow on Monday March 29, 2021 @01:01PM (#26624821)
> If you are parsing "ls -l" output, you are doing something wrong.

> Use your language built-in features

The issue is that current shells _don't_ have a built-in structured data type for e.g. a `struct stat`. But why not?

`ls` calls some APIs and gets some in-memory `struct stat`s populated by the kernel. Then it throws away 90% of the data that the kernel copied to user space and then serializes it as text. Why not pass the structs themselves to the next process? We can't currently (except with powershell?), so you have to write actual code.

This is a "bright line" between code and shells that could very well be blurred, but it would take an agreed-upon serialization format for posix-y data structures.

Re:Terminal escape sequences in Git commit email field by theamk on Monday March 29, 2021 @03:57PM (#26627365)
One of the big advantages of shell is exploratory nature -- you write pipelines one step after another, looking at the intermediate result at each step. Any sort of complex serialization will break this.

This is why in shell, if you want programmatic "stat" output, you use "stat" tool, not "ls". "ls" prints all at once. "stat" has a custom output format, which means you print exact fields you want, so your intermediate results are concise and readable. And since every element of the "struct stat" is an integer, a simple space-separated format works very well.

(that said, I would not mind seeing more tools print JSON or JSONlines. I add this functionality to many of the tools I write, and it is pretty powerful in conjunction with jq)

Re:Terminal escape sequences in Git commit email field by Too on Monday March 29, 2021 @03:28PM (#26627021)
If you are in a situation where you are parsing the output of ls you are already writing code, and a shell designed for interactive use is a terrible tool for that job. Use something else. There are many many more better high level programming or scripting languages, which makes it both easier to write parsing code and removes most need to do so in the first place, since the apis usually give you structured data in the first place.
Re:Terminal escape sequences in Git commit email field by JUNGLEISMASSIVE on Monday March 29, 2021 @04:18AM (#26618822)
You're looking for nushell:

https://github.com/nushell/nushell

Re:Terminal escape sequences in Git commit email field by breakingcups on Monday March 29, 2021 @07:43AM (#26620210)
Wow, that's pretty great, I'm going to try that out.
Re:Terminal escape sequences in Git commit email field by enriquto on Monday March 29, 2021 @01:12AM (#26617916)
> When I type "ls", I'm getting a text-serialized list of objects. Why can't I just get the (serializable) list directly?

Because then the output of ls can be used by programs that don't know what a list is, or what a file is; and this is breathtakingly beautiful.

Re:Terminal escape sequences in Git commit email field by Scene_Cast2 on Monday March 29, 2021 @01:13AM (#26617919)
Make it auto-serialize to text if the receiving end doesn't understand lists. Working with text directly doesn't get me any type safety, or any safety at all (unless I'm writing a one-off, where it matters less).
Re:Terminal escape sequences in Git commit email field by enriquto on Monday March 29, 2021 @01:21AM (#26617955)
"type safety" is the "structured programming" of the twenties
Re:Terminal escape sequences in Git commit email field by comex on Monday March 29, 2021 @01:57AM (#26618120)
...As in, it will become so universal that languages without it are utterly unheard of, except for assembly and joke languages?
Re:Terminal escape sequences in Git commit email field by Too on Monday March 29, 2021 @03:34PM (#26627099)
Ok cool I can pipe ls into gz and pipe further into scp. Now what? How do I use it on the receiving end after unzipping it again? You still have to parse it into a structural list of files over there somehow to make use of it? Not everything is a tunnel.

Structural data can still be serialized easily, take json for example which’s spec fit on a napkin.

Re:Terminal escape sequences in Git commit email field by gspr on Monday March 29, 2021 @03:43AM (#26618652)
You can. Use your favorite programming language's interface for listing the content of a directory!

`ls` is for you, the human.

Re:Terminal escape sequences in Git commit email field by enriquto on Monday March 29, 2021 @07:07AM (#26619959)
In C, my favourite language, I would do this:

        system("ls");
Re:Terminal escape sequences in Git commit email field by cyberpunk on Monday March 29, 2021 @10:55AM (#26622636)
Please never do this; do not use system, it executes $SHELL and you can fall victim to various PATH munging attacks. :)
Re:Terminal escape sequences in Git commit email field by gonzus on Monday March 29, 2021 @06:38AM (#26619750)
As I've mentioned in other discussions here, I find jc useful for exactly this purpose -- https://github.com/kellyjonbrazil/jc
Re:Terminal escape sequences in Git commit email field by ChrisSD on Monday March 29, 2021 @01:04AM (#26617876)
Text is fine for humans. The trouble comes when you want the machine to do anything other then simply print out the literal text (and even that's tricky, what with unicode and fixed width columns).

The moment you want to do something else with the text, you have to parse it in some way. At that point it's no longer text, it's a poorly specified serialization format.

Re:Terminal escape sequences in Git commit email field by toast0 on Monday March 29, 2021 @01:31AM (#26618006)
libxo can help with that. Of course, the programs you want to use need to use it, but they'd also need to support whatever else.
Re:Terminal escape sequences in Git commit email field by exikyut on Monday March 29, 2021 @05:14AM (#26619100)
+++ATHokay.
Re:Terminal escape sequences in Git commit email field by silon42 on Monday March 29, 2021 @05:16AM (#26619116)
Actually text is now a problem... The old way of ASCII only stream of bytes was much superior.
Re:Terminal escape sequences in Git commit email field by gugagore on Sunday March 28, 2021 @11:16PM (#26617352)
Why are the next 5 years going to be different than the last 50?
Re:Terminal escape sequences in Git commit email field by stinos on Monday March 29, 2021 @06:10AM (#26619570)
Its execution is just abysmal

It's not really good, but calling it abysmal is just too negative in my opinion :) It does get a lot of things right after all, especially in the "not everything is text" department. Also a lot of things wrong (my main gripes would be a lot of the syntax in general, case insensitive, usually more than a couple of ways to achieve the same thing). So in the end the learning experience/curve for me was the same as for bash (or languages like C++) and just as long/steep probably: feels like suffering until you've learned all the caveats by heart and in the process of doing that also learned how to actually use it, then it becomes ok to use. After that process I'm leaning towards favoring PS over bash though. Now it's possible there are already other shells which get more things right but I really doubt that in my lifetime I'm still going to spend (waste?) time on learning yet another shell. Or it must be convincingly good and provably fast to learn :P

Re:Terminal escape sequences in Git commit email field by spookthesunset on Monday March 29, 2021 @11:10AM (#26622886)
I think one of the biggest peeves of mine with powershell is they dumped you into a god awful console. I dunno if this has changed much but good lord was the console horrible. No resize, nasty font, nasty color scheme, scroll back sucked, command history sucked, pain in the arse copy & paste.

Also the commands were super long. Sure there was the ability to alias them to something shorter but still....

That being said... powershell has a lot of potential.

(Also I’m woefully out of date... I haven’t touched powershell in a decade. I hope somebody tells me it’s all better now)

Re:Terminal escape sequences in Git commit email field by majkinetor on Monday March 29, 2021 @01:58PM (#26625700)
Its better.

Windows Terminal is gr8 and removes all those problems. You have alternatives too like ConEmu.

Long commands are OK, use aliases. Bash has long command arguments too and nobody complains.

Saying Powershell has a lot of potential is kinda lame - its best of them all.

Re:Terminal escape sequences in Git commit email field by spookthesunset on Tuesday March 30, 2021 @11:32AM (#26635790)
Awesome to hear! I was hoping somebody would tell me it got way better.
Re:Terminal escape sequences in Git commit email field by barrkel on Monday March 29, 2021 @12:00AM (#26617592)
And yet the web is text too - and has lots of fun vulnerabilities relating to failure to escape content.

I do not expect text to be significantly replaced any time in the next 5 years. Accessibility - screenreaders, increased text size with text reflow - is one massive reason.

Re:Terminal escape sequences in Git commit email field by themadsens on Monday March 29, 2021 @06:41AM (#26619763)
I'd say, what we need is a --json flag on all pipe producers like like ls, exa, find, grep, ripgrep. Then you'll have the best of both worlds: something that is equally(?) parseable by humans and computers. (jq to the rescue)
Re:Terminal escape sequences in Git commit email field by burntsushi on Monday March 29, 2021 @06:26PM (#26629066)
ripgrep does that already. But I just came up with my own format from whole cloth because there is no standard: https://docs.rs/grep-printer/0.1.5/grep_printer/struct.JSON....

Adding a --json flag is just the start. Ideally, other grep-like programs would need would want to emit the same format. But what happens when some grep-like programs have additional features?

Suggesting a structured representation as an output format isn't a panacea. It's just the start and it's not clear at all to me that it would be better than what we have now.

Re:Terminal escape sequences in Git commit email field by themadsens on Wednesday March 31, 2021 @02:23PM (#26651009)
I agree there is another can of worms waiting to be opened: agreeing on the schema of said json output. Also structured output is probably way more useful downstream from the likes of ls, exa, ps (say) rather than from grep like tools
Re:Terminal escape sequences in Git commit email field by kbrazil on Friday April 02, 2021 @11:34AM (#26672280)
I have created JSON schemas for the output of dozens of commands and file-types with my jc[0] project. I tried to keep them as flat as possible, but there are many other ways it could have been done. Creating the schema many times requires more thought than writing the parser itself.

[0] https://github.com/kellyjonbrazil/jc

Re:Terminal escape sequences in Git commit email field by arthur2e5 on Monday March 29, 2021 @06:51AM (#26619838)
With NUL-sepearated output instead of line output people are doing fine. It's unstructured for sure, but how much structure can you put into something as general as grep?
Re:Terminal escape sequences in Git commit email field by philsnow on Monday March 29, 2021 @01:06PM (#26624906)
grep can emit structured GrepResult records that include things like

  - the pattern that was searched for
    - the search options from the invocation (case, line folding, etc)
  - the text of the matched segment
  - the byte range of the matched segment within the file
  - the line number(s) of the matched segment within the file
  - the file name
  - contents of any (named) capture groups from the search pattern
Re:Terminal escape sequences in Git commit email field by proc0 on Monday March 29, 2021 @01:44AM (#26618062)
I think a huge factor is the dominance of the keyboard as the most used physical interface. Even in the emerging age of VR, keyboards are everywhere, even in software form in phones. I guess once we can solve language recognition, so it maps 1:1 with the input somehow, then we could have a voice-only terminal/shell equivalent. The building blocks for that would look different and not just saying commands out load.
Re:Terminal escape sequences in Git commit email field by mhh__ on Monday March 29, 2021 @04:10AM (#26618781)
I see the appeal, however outside of areas where you completely own the stack (like inside a company) it feels idealistic to imagine any standard being close to text in terms of pervasiveness.

I also worry about a bad standard becoming popular a la most of the web

Re:Terminal escape sequences in Git commit email field by tsujp on Monday March 29, 2021 @12:33AM (#26617736)
I'm unfamiliar, what's the idea of Powershell you mention here?
Re:Terminal escape sequences in Git commit email field by serial_dev on Monday March 29, 2021 @12:44AM (#26617780)
By default, it uses objects (structured data) instead of plain strings.

I'm also not extremely familiar with the concept, so at the moment, I'm reading this document to understand it better https://www.varonis.com/blog/how-to-use-powershell-objects-a...

Re:Terminal escape sequences in Git commit email field by ChrisSD on Monday March 29, 2021 @12:57AM (#26617845)
Nushell has a similar philosophy to powershell. They sum it up as "everything is data". Their book gives more details.

https://www.nushell.sh/

Re:Terminal escape sequences in Git commit email field by na85 on Monday March 29, 2021 @12:10AM (#26617629)
I like the idea of Powershell and how it's object driven as well, but it doesn't get you away from text in the sense of you're still typing commands into a console.

Isn't the real solution to do away with the idea that we need to remain compatible with VT100 video terminals?

Re:Terminal escape sequences in Git commit email field by naikrovek on Monday March 29, 2021 @12:41AM (#26617768)
That's not what they are referring to. Powershell passes typed objects between cmdlets when pipes are used. This DEFINITELY better than plain text.

We've learned a lot since the unix philosophy was created. One of those things is that, if you want software that lasts, software that performs well, you need to be strongly typed.

Plain text is as far from strongly typed as you can get. Passing plain text between programs in 2020 goes against everything we've learned in the last 50 years.

Re:Terminal escape sequences in Git commit email field by ethbr0 on Monday March 29, 2021 @01:05AM (#26617881)
Ad-hoc duck typing vs strong typing is a pragmatist vs theorist argument.

In theoretical terms, strong typing every, always is preferred. In practical terms, this devolves into a Java-esque nightmare of what's-the-type-for-the-parent-type-of-the-thing's-type absurdity. Where people stop using your system because they don't want a second job learning its Borges-esque comprehensive type encyclopedia.

In practical terms, bare minimum typing that prevents 80% of errors, but doesn't require gyrations to cover the remaining 20% works. And given a choice between the two, more software is going to be built in systems that function this way.

Does it break all the damn time? Yes. Does it still get more done? Yes.

Re:Terminal escape sequences in Git commit email field by bigbizisverywyz on Monday March 29, 2021 @07:19AM (#26620040)
>Passing plain text between programs in 2020 goes against everything we've learned in the last 50 years.

I would have to say the opposite is true.

It's text based interfaces that have stood the test of time, and now even flourish in HTTP. We have more widely used text based interfaces than ever before where REST,HTML, XML and JSON seem to rule most machine-machine communication.

Strongly typed binary RPC such as DCOM and CORBA however are now nearly gone.

Re:Terminal escape sequences in Git commit email field by Dissley on Monday March 29, 2021 @07:33AM (#26620129)
I agree with your comment, but also want to point out that binary RPC seems to have a comeback with gRPC.
Re:Terminal escape sequences in Git commit email field by bregma on Monday March 29, 2021 @09:20AM (#26621097)
> We've learned a lot since the unix philosophy was created. One of those things is that, if you want software that lasts, software that performs well, you need to be strongly typed.

Unix itself, for example, won't last even 10 years. Look for it to be gone by the mid-late 1970s as it gets replaced by strongly-typed objects passed directly between applications to control our fusion-powered flying cars.

Re:Terminal escape sequences in Git commit email field by naikrovek on Monday March 29, 2021 @12:07PM (#26623913)
If you think the presence of Unix today is proof of anything good, you do not have an active imagination.

What will computing look like in 500 years? Do we really believe that we reached the pinnacle of OS development in the 1970s?

Re:Terminal escape sequences in Git commit email field by spookthesunset on Monday March 29, 2021 @11:19AM (#26623029)
Doesn’t even need to be strongly typed. Just having the ability to pass around JSON would fill about 80% of the imaginable use cases.
Re:Terminal escape sequences in Git commit email field by na85 on Monday March 29, 2021 @01:08AM (#26617896)
>Powershell passes typed objects between cmdlets when pipes are used. This DEFINITELY better than plain text.

I know but my point is that the interface itself is still text.

Re:Terminal escape sequences in Git commit email field by vanviegen on Monday March 29, 2021 @02:01AM (#26618142)
Would you prefer dragging a pipeline together? Or is there some other way?
Re:Terminal escape sequences in Git commit email field by naikrovek on Monday March 29, 2021 @04:10AM (#26618780)
Until humans can type in binary or read binary unaided, the human interface portion will always be textual.