Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can just develop alternative tools and pipe JSON. Text and data in one.

Pipes can transfer arbitrary data, so it's just the tools that you don't like, not the underlying mechanism.



Yeah, but that's the point. Pipes are fine. The tools suck, though. UNIX would be infinitely better if it defaulted to piping structured text instead of making each tool have to implement its own shotgun parser.


...So you're talking about having text-serialized key-value objects (or any other kind of object), with standard deserializers and tools for manipulation?

That's actually a great idea. Better yet, it's actually viable now, unlike many proposals for "fixing" unix.


> ...So you're talking about having text-serialized key-value objects (or any other kind of object), with standard deserializers and tools for manipulation?

Yes, basically. Someone in power should just pick any format - modified JSON (without the integers are really IEEE754 floats stupidity), s-expressions, whatever - and make standard deserializers part of the system library.


Heh heh, "someone in power." Who would that be?

There's no authority to complain to about all this...

Structured text formats come and go: S-expressions, SGML, XML, JSON, "modified JSON", etc etc etc...

Fortunately the Unix tools work the same with any byte stream, pretty much, so they've survived gloriously since the 1970s.

That's kind of the whole deal with "worse is better."


> There's no authority to complain to about all this...

Whoever accepts patches to base UNIX system libraries would be a good start.

> Fortunately the Unix tools work the same with any byte stream, pretty much, so they've survived gloriously since the 1970s.

So would a structured text format, except you wouldn't be discarding and then recreating semantic information at every junction of a pipe.


> Whoever accepts patches to base UNIX system libraries would be a good start.

That can be you! Get to work, or pay someone else to get to work if the skills required aren't in your set.


But then when you put structured data through pipes, why bother with making it text at all (over the wire, at least)?


Modern tools should offer the option to write out JSON (with a proper spec, please). I can definitely see the value of a 'ls' variant that can do this, and I remember people discussing JSON-based shells. But not either/or! For example, the Rust compiler can now be persuaded to write out error messages in JSON.


Modern tools are offering the option to write out JSON. Grepping /usr/share/man and /usr/local/share/man on my macOS system reveals a good dozen or so commands that take JSON as input or generate it as output. (Their man pages generally document the schema, too.) Most of the tools I've written myself also have JSON I/O.


* http://jdebp.eu./Softwares/nosh/guide/service-show.html

Jos Backus asked for the JSON option in 2013.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: