@aturon’s (re)framing was the phrase “reasoning footprint”, which has not caught on as widely as I wish it had, because I think it gets at this nicely! @inthehands@airspeedswift
He points out there, and I think this is key, that we actually mostly want to be explicit about *the things in the domain we actively care about*, and implicit about everything else. The challenge for language design (and API design generally) is that “what domain do I care about?” is very dynamic!
In today’s #ThursdayRTFM, we’ll look at two of my favorite macOS CLI tools, `pbcopy` and `pbpaste`. Why both? Because `man pbcopy` and `man pbpaste` launch the same manual page: together they “provide copying and pasting to the pasteboard (the Clipboard) from command line”.
I use these multiple times every day. It’s a super handy way of getting the contents of a file into my clipboard—if I don’t have the file open already in a text editor, I can `pbcopy < path/to/the-file` and then paste it (a chat, a Gist, a text editor, etc.) with OS shortcuts.
`pbpaste` pops whatever is on the specified pasteboard and puts it on standard output—if and only if the pasteboard has plain text, EPS, or RTF available. Otherwise, it’s “produces no output”.
`pbcopy` takes whatever is on standard input—whether you pipe it there or type it in—and puts it on “the specified pasteboard”, by default the “general” pasteboard. It copies as plain text by default, unless it’s Encapsulated PostScript (EPS) or Rich Text Format (RTF).
Net, there’s no good way from the man page, and no easy way in Apple’s docs, to figure out what the other pasteboards besides `general` are for. Their names (`ruler`, `find`, and `font`) don’t tell me much, unfortunately!
Still, I learned something today, and I hope you did too.
There *are* other docs (e.g. for Core Transferable), which is great, but those old docs had something Apple’s current approach does not—a way to understand not just the APIs but the system, including the operating system and its view of the world, the *why* behind the APIs.
Worse, when you go looking for docs in Apple’s *current* API docs, the result is… mixed. Hey, there’s a `Pasteboard` class! https://developer.apple.com/documentation/applicationservices/pasteboard/ Spoilers: there’s absolutely nothing there. It literally just has the declaration of the class itself. Otherwise: a blank page.
The man page ends with a See Also referencing pages in “ADC Reference Library”: “Cocoa > Interapplication Communication > Copying and Pasting”. In theory it should still be online, just archived: https://developer.apple.com/library/archive/navigation/index.html In practice, this document is nowhere to be found.
@danluu In my experience, most managers (up through VPs, and the more so the higher) do not believe in those productivity differences *or* make choices which undercut them, in large part because they ignore things like https://danluu.com/people-matter/ and attempt to treat engineers as interchangeable. And as far as I can tell, when you ignore competencies, domain expertise, etc., and aim for interchangeability, you *do* dramatically reduce productivity wins.
Software engineer and composer; theologian; writer, runner, and erstwhile podcaster. Previously the tech lead for LinkedIn web, Ember TypeScript & Framework emeritus.Hireable! I can teach you TypeScript or Rust (right now, I am writing a new chapter on async for the official The Rust Programming Language book), tackle the hardest TypeScript problems, and help you see your way to a viable front end web strategy.