Live data from Hacker News

The Cognitive Style of Unix (2010)

blog.vivekhaldar.com

1–10 of 18 posts

Re: The Cognitive Style of Unix (2010)

#2
For the sorts of things I do, a (hierarchical and potentially even non-DAG) symbolic formula* is both much smaller and more easily reproduced than a (necessarily linear) sequence of physical actions. Therefore I tend to write myself CLI tools, with the occasional output via a graphical window or a browser.

Maybe this is why I don't have any voluntarily-installed apps on my phones? The phone form factor is suitable for entertainment, tolerable for consuming information, but horribly tedious for manipulating or generating it.

* it is a commonly held belief that "avoiding syntax errors", an activity most typically found only at the start of the learning curve, is worth spending person-decades on. Who (since Englebart, Iverson, et.al in the 1960s?) is attempting to tackle "avoiding semantic errors"? We have billions of USD spent on making more approachable vuvuzelas; where are the violins? (or better yet, pianos: both initially more approachable and ultimately more powerful than any of the strings)

Re: The Cognitive Style of Unix (2010)

#3

For the sorts of things I do, a (hierarchical and potentially even non-DAG) symbolic formula* is both much smaller and more easily reproduced than a (necessarily linear) sequence of physical actions. Therefore I tend to write myself CLI tools, with the occasional output via a graphical window or a browser. Maybe this is why I don't have any voluntarily-installed apps on my phones? The phone form factor is suitable fo…

This got me to thinking, I would totally learn APL on a phone app. If the custom keyboard could accommodate all the symbols, the "symbolic compression" vastly lowers resistance.

They don't have to be large programs, either. Just enough to describe basic constructs, and maybe include some "programming pearls," puzzles, or poetry.

The app could have ASCII symbols pop up, toast-like, as input is entered. Over time, the mind may associate "/\" with the corresponding single key.

A cursory glance for "apl programming" doesn't turn up much, but appropriate artistry and game mechanics could turn a new generation to a form of programming where symbols--not just alphanumerics--are both arcane and wondrous (yet also pragmatic).

Re: The Cognitive Style of Unix (2010)

#4

For the sorts of things I do, a (hierarchical and potentially even non-DAG) symbolic formula* is both much smaller and more easily reproduced than a (necessarily linear) sequence of physical actions. Therefore I tend to write myself CLI tools, with the occasional output via a graphical window or a browser. Maybe this is why I don't have any voluntarily-installed apps on my phones? The phone form factor is suitable fo…

This got me to thinking, I would totally learn APL on a phone app. If the custom keyboard could accommodate all the symbols, the "symbolic compression" vastly lowers resistance. They don't have to be large programs, either. Just enough to describe basic constructs, and maybe include some "programming pearls," puzzles, or poetry. The app could have ASCII symbols pop up, toast-like, as input is entered. Over time, the…

Replit's mobile app has a decent virtual trackpoint-like cursor widget. If you added an APL keyboard as you suggested, it might be a nice combination if you leave out their AI autocomplete.

If you want to get extreme about input method minimalism, you might be able to remap Applejak[1]'s WASD / E input approach to swipe and tap gestures.

1. https://internet-janitor.itch.io/applejak (previously discussed here https://news.ycombinator.com/item?id=26188165)

Re: The Cognitive Style of Unix (2010)

#5

For the sorts of things I do, a (hierarchical and potentially even non-DAG) symbolic formula* is both much smaller and more easily reproduced than a (necessarily linear) sequence of physical actions. Therefore I tend to write myself CLI tools, with the occasional output via a graphical window or a browser. Maybe this is why I don't have any voluntarily-installed apps on my phones? The phone form factor is suitable fo…

This got me to thinking, I would totally learn APL on a phone app. If the custom keyboard could accommodate all the symbols, the "symbolic compression" vastly lowers resistance. They don't have to be large programs, either. Just enough to describe basic constructs, and maybe include some "programming pearls," puzzles, or poetry. The app could have ASCII symbols pop up, toast-like, as input is entered. Over time, the…

Haven't used it myself, but: https://news.ycombinator.com/item?id=38421095

Re: The Cognitive Style of Unix (2010)

#6

For the sorts of things I do, a (hierarchical and potentially even non-DAG) symbolic formula* is both much smaller and more easily reproduced than a (necessarily linear) sequence of physical actions. Therefore I tend to write myself CLI tools, with the occasional output via a graphical window or a browser. Maybe this is why I don't have any voluntarily-installed apps on my phones? The phone form factor is suitable fo…

Same here. Im heavy CLI user, even tho im also Windows user. Luicky, we have Cygwin, kudos to developers of it.

Anyway, CLI also greatly fits w/ UNIX philosophy and reusability. Once you are confortable which CLI, learning new CLI is just easy. And the power of pipe, where you can combine several small CLI tools to get interesting results. Now try that w/ GUI ;)

Re: The Cognitive Style of Unix (2010)

#7

For the sorts of things I do, a (hierarchical and potentially even non-DAG) symbolic formula* is both much smaller and more easily reproduced than a (necessarily linear) sequence of physical actions. Therefore I tend to write myself CLI tools, with the occasional output via a graphical window or a browser. Maybe this is why I don't have any voluntarily-installed apps on my phones? The phone form factor is suitable fo…

Does type theory fit into whatever definition of semantics you're using? It is certainly reaching some incredible heights of usability with tools like Lean and closer to the mainstream with functional languages like Haskell or compilers for Rust. Verification as a topic certainly expands beyond that, 'semantic solving' has been around for a long time and produces some fascinating things

Re: The Cognitive Style of Unix (2010)

#8
It's nice to see some more rigorous thinking about what command line interfaces are good at, but the findings in the research paper are limited to certain kinds of tasks. The authors describe these as "problem-solving situations where people need to learn the underlying rules of a system, or make as little mistakes as possible"

In situations where the cost of failure is low, and one wants to quickly explore a problem space in search of the best solution, you often want an interface that encourages "epistemic action". This is action taken using the interface to think about the problem rather than directly solve it. David Kirsh uses the example of Tetris: https://www.sciencedirect.com/science/article/abs/pii/036402... People often rotate pieces when they're falling to see which way they'll fit best, because that's faster than doing the rotation in your head.

So, the fact that users spend more time thinking before they engage with an interface may not be a good thing. It could be that the interface is just hard to use. Think about how you normally solve a jigsaw puzzle... There may be some amount of planning, but there's also a healthy amount of trial an error. The cost of making a mistake is low. Now imagine each piece of the puzzle weighed 50 pounds. In that case, one would make a detailed plan before moving many pieces around.

Re: The Cognitive Style of Unix (2010)

#9

It's nice to see some more rigorous thinking about what command line interfaces are good at, but the findings in the research paper are limited to certain kinds of tasks. The authors describe these as "problem-solving situations where people need to learn the underlying rules of a system, or make as little mistakes as possible" In situations where the cost of failure is low, and one wants to quickly explore a problem…

Personally I find CLI to be great for this kind of "exploratory" work. Case in point: I recently had to plan a software upgrade for an AWS environment with zero documentation, accumulated over years by a defunct team without using IaC tools, or even much in the way of deployment infrastructure -- just a complete mess. My first order of business was to create read-only CLI credentials for myself, and spend time querying things with the usual combination of sed, awk, uniq, jq, etc. I did this "notebook style" in an org-mode file with org-babel. Within a few hours, I had internalized the structure of the setup, and even had the beginnings of documentation on it. I don't think I could have come to such a confident idea of everything clicking around in the AWS web console, and certainly not that quickly.

Re: The Cognitive Style of Unix (2010)

#10

It's nice to see some more rigorous thinking about what command line interfaces are good at, but the findings in the research paper are limited to certain kinds of tasks. The authors describe these as "problem-solving situations where people need to learn the underlying rules of a system, or make as little mistakes as possible" In situations where the cost of failure is low, and one wants to quickly explore a problem…

Personally I find CLI to be great for this kind of "exploratory" work. Case in point: I recently had to plan a software upgrade for an AWS environment with zero documentation, accumulated over years by a defunct team without using IaC tools, or even much in the way of deployment infrastructure -- just a complete mess. My first order of business was to create read-only CLI credentials for myself, and spend time queryi…

What you're saying makes sense, and I think it highlights that these days the line between a CLI and a GUI is less clear than it once was. Specifically, if an interface allows you to organize things spatially on screen in a way that's meaningful to you (eg org-mode) then it's already well on its way to supporting the epistemic action I was referring to. To me, CLI means you enter a series of sequential commands and you receive sequential responses. I'd put emacs somewhere between that and a GUI, as it includes features of both.
Post reply on HN