Live data from Hacker News

The Rule of Silence (2006)

linfo.org

171–180 of 318 posts

Re: The Rule of Silence (2006)

#171

Earlier quoted context omitted.

...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."

Re: The Rule of Silence (2006)

#172
post #26
post #5

Note that the "rule of silence" (combined with the habit of writing documentation like longform essays) is also one factor that makes unix-like systems newbie-unfriendly. (Famous example: trying to exit vi) I think the rule makes sense within the specific constraints *nix programs are usually expected to work in (two output channels with no structure except the one informally defined by the program and the convention…

> Famous example: trying to exit vi To be fair, this has been fixed a long time ago. At least Vim (which is the Vi installed on most systems) shows the following message on startup: ~ VIM - Vi IMproved ~ ~ version 7.4.1829 ~ by Bram Moolenaar et al. ~ [...] ~ Vim is open source and freely distributable ~ ~ Help poor children in Uganda! ~ type :help iccf for information ~ ~ type :q to exit ~ type :help or for on-line…

Actually I found the colon 'syntax' at the beginning of the command to be quite confusing - I wasn't aware that youre supposed to literally type shift + semicolon. That's completely unintuitive compared to 'regular' shortcuts you see in nano like ctrl + c.

Re: The Rule of Silence (2006)

#173
post #87

Earlier quoted context omitted.

Surely you can reconcile structured representations and something like the Unix command line. Imagine if the default wasn't bash, but something like Ruby + pipes (or some other terse language). What is the argument for shell scripts not working on typed objects? How much time has been lost, how many bugs have been created because every single interaction between shell scripts has to include its own parser. How many v…

The problem is that now simply providing user-friendly output is not enough. For every program or script you throw together you need to provide the text output for the user, and then the type object stream for piping. And then, the user would need to read documentation to see how to access each piece of data, what data type it is, what data type the other command takes, and maybe consider how to convert one to the ot…

> The problem is that now simply providing user-friendly output is not enough. For every program or script you throw together you need to provide the text output for the user, and then the type object stream for piping.

In PowerShell if the result of a command is just an object the object is pretty-printed to the console in practice ends up looking pretty much like what a Unix command would have given you.

Re: The Rule of Silence (2006)

#174

I wish I could find that old thing about ordering a burger at the Unix restaurant, where the clerk keeps giving you cryptic responses when you order wrong and then, when you do successfully order, says nothing, leaving you wondering whether your order has been accepted or not.

Probably this:

http://xahlee.info/UnixResource_dir/_fastfood_dir/fastfood.h...

I hadn't heard of it until now. Thanks for the good read!

Re: The Rule of Silence (2006)

#175
post #85
post #74

To play devil's advocate, part of the reason things like The Rule of Silence are talked about is because of the messy unix philosophy of treating everything like plain text. If structured data was embraced we would have developed appropriate tooling to interact with it in the way that we prefer. This runs very deep in unix and a lot of people are too "brainwashed" to think of other ways. Instead they develop other ex…

I can see your argument for consistent structure--I definitely don't love vimscript or nginx's custom configuration language. But that doesn't require we jump out of text--JSON and XML are viable, provided they remain geared toward hand editing. It may be that given proper tooling for database-driven configuration it could be visible and accessible, but the fact is, I haven't seen timing that pulled that off.

JSON and XML are both horrible in their own ways, especially for use as configuration languages.

Re: The Rule of Silence (2006)

#177

Earlier quoted context omitted.

That's more an occasional annoyance than a real problem though. The only commands that don't prompt when waiting for input are commands that are written specifically for stream processing from stdin. In which case the user should already be aware of it's behaviour because they're either already familiar with the command or have have consulted it's man page (or similar reference) before executing it. So the unprompted…

I was more thinking of a situation where you have misunderstood the syntax of a command or forgot to type an argument.

I did cover that point. :)

Re: The Rule of Silence (2006)

#178

Earlier quoted context omitted.

In 1993, someone made exactly your argument a in Redmond board room, and so many people agreed that what you describe could be adequately called "The Windows Philosophy". All settings in a database and not text files (the registry); a command-line that pipes data, not text (PowerShell). Tailored UIs to change settings, not magic invocations and obsure text file syntaxes. I guess most developers on HN are also aware o…

What you get from text + availability of source code = a set of practical documentation that shipped right where you needed it. Microsoft forgot (and still forget) the documentation for Windows - if you want a nice A-Z reference for the bootloader, or kernel, or shell or IIS's configuration file or half the command-line tools, you're usually out of luck. The official place is often an inaccessible, badly-written know…

This perspective sounds a bit out-of-date when you consider how heavily they're pushing to get PowerShell into sysadmins' workflow. The online MSDN docs are also often pretty good.

Re: The Rule of Silence (2006)

#179
post #74

To play devil's advocate, part of the reason things like The Rule of Silence are talked about is because of the messy unix philosophy of treating everything like plain text. If structured data was embraced we would have developed appropriate tooling to interact with it in the way that we prefer. This runs very deep in unix and a lot of people are too "brainwashed" to think of other ways. Instead they develop other ex…

The text-oriented nature of Unix may be a mistake, but the Rule of Silence is not concerned with it. It is about not overwhelming the user with information they are not interested in. GUIs can follow or violate the Rule of Silence just as well.

"GUIs can follow or violate the Rule of Silence just as well."

It would have been nice if this was permitted to be violated only by GUIs. Ask about the first-time *nix experiences before the GUI-embracing era and one of the few things they were noticing was the continuous text-spitting. For instance, that was happening on boot and OS loading sequence (and still happens, now only being hidden by default with splash-screens), a lot of reporting about all the things that were performed successfully. It's funny in this regard seeing Unix' Rule of Silence being respected more... outside Unix, where is just common sense, with no need to be formulated as rule.

Re: The Rule of Silence (2006)

#180
post #164
post #133

Earlier quoted context omitted.

What database has? To clarify: The registry is a database for OS or application stuff (caches, settings, etc.). It's not meant to be user-editable and outside arcane trouble-shooting stuff you're unlikely to ever have to venture in there.

> It's not meant to be user-editable I think that's kind of a stretch since regedit has been a part of windows as long as I can remember.

I'd say regedit is not really the preferred method for anyone to interact with the registry though.
Post reply on HN