4 ms·
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
by Vogtinator 10y ago
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.
- TeMPOraL 10y agoYeah, 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.
- qwertyuiop924 10y ago...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.
- TeMPOraL 10y ago> ...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.
- mbrock 10y agoHeh 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."
- TeMPOraL 10y ago> 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.
- module0000 10y ago> 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.
- pwdisswordfish 10y agoBut then when you put structured data through pipes, why bother with making it text at all (over the wire, at least)?
- stevedonovan 10y agoModern 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.
- jslabovitz 10y agoModern 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.
- JdeBP 10y ago* http://jdebp.eu./Softwares/nosh/guide/service-show.html http://jdebp.eu./Softwares/nosh/guide/service-show.html Jos Backus asked for the JSON option in 2013.