logoalt Hacker News

gavmoryesterday at 4:10 PM1 replyview on HN

The terminal is keystroke-driven. It's character-selectable. It's reliable in a way that the GUI is not. When I drop frames, I can still enter the commands to rescue myself with some assurance they'll be interpreted, eventually.

I agree, a REPL isn't Unixy in the streams of text kind of way... or is it?


Replies

mr-wendelyesterday at 4:47 PM

Let me add more! PIPES.

It's a bit more abstract and useful than "character-selectable" when viewed at the byte-level abstraction.

The ability to chain together utilities with no complicated data structures is extremely flexible. One of my favorite current use-cases is using FFmpeg to process RTSP streams that send output (e.g. high quality stream for recording, low quality low FPS for processing, max quality low FPS for stills, etc) to separate file descriptors. FFmpeg doesn't care whats on the other end (e.g. redirect to file, read via Python, etc) due to these lovely abstractions.

Reliability translates directly to scriptability. Yes, you can create monsters, but through the use of sub-shells and pipes I think it's the fastest, cheapest, most concise way to pull off some really cool multiprocessing tricks.