5 ms·
I'm confused as to what exactly is wrong with the notion of _jobs_ and _files_? Scheduling is hard, but modern operating systems are definitely setup to do it.
by nixpulvis 4y ago
I'm confused as to what exactly is wrong with the notion of _jobs_ and _files_? Scheduling is hard, but modern operating systems are definitely setup to do it. I think we could probably do a better job of using realtime features and maintaining update latency benchmarks, but so many of the cycles on my PCs/mobiles are wasted doing god damned animations and updating the screen without interaction that I don't think this is really the main issue.
Programming is basically always just a matter of loading data, transforming data, and then putting it somewhere. The simplest record keeping systems do that, and the fanciest search algorithms do that. Decode/encode/repeat.
EDIT: The beauty of UNIX to me is the interoperability of the text stream. Small components working together. Darwinesque survival of the fittest command.
- nine_k 4y agoPlan 9 enhances all of these good Unix traits. Even the universal text stream: it adds support for arrays / lists, that is, streams with elements larger that one byte.
- shiftoutbox 4y agoGnn once told me , about how he had to work on plan9 . It’s an interesting topic . It’s good to see how other people think about this cs topic and see if you can borrow some ideas .
- cvccvroomvroom 4y agoMaybe it was written as a parody and we just don't get the joke? (Not POSIX, the article. POSIX survives fine outside of UNIX in embedded systems and somewhat on Mac OS and Windows.)
- olliej 4y agomacOS at least is definitely posix compliant - not just somewhat. It was a big part of what was needed for xserves to be competitive (alas being shiny and aluminium was not :) ). While xserves have died, macOS remains entirely posix compliant - complete with the horrific %n format specifier (although an environment variable is needed for it to be respected in non read only format strings iirc)
- deleted 4y ago[deleted]
- kevin_thibedeau 4y ago%n isn't from POSIX. It has always been taken from the ANSI draft.
- amiga386 4y agoIt's arguable that macOS is actually POSIX compliant. I was frustrated that poll() simply refused to work on terminal devices in Mac OS X 10.1 and I had to use select() instead. And it's still not supported in macOS 13! Can you claim POSIX compliance while actually not complying, by saying "BUG: currently doesn't comply" for more than 20 years? https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/poll.2.html https://developer.apple.com/library/archive/documentation/Sy... > BUGS > The poll() system call currently does not support devices. https://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html https://pubs.opengroup.org/onlinepubs/9699919799/functions/p... > The poll() function shall support regular files, terminal and pseudo-terminal devices, FIFOs, pipes, sockets and STREAMS-based files.
- saagarjha 4y agoThere are no environment variables to disable this behavior.
- bregma 4y agoMac OS is not at this time a POSIX operating system [0]. [0] http://get.posixcertified.ieee.org/register.html http://get.posixcertified.ieee.org/register.html
- astrange 4y agoThe idea that your computer would be faster or easier to use if it didn't have any animations seems untrue. Providing physicality is good! Helps you understand how things are changing between two different states.
- quanticle 4y agoThe beauty of UNIX to me is the interoperability of the text stream What interoperability? Look at the man page for any simple Unix utility (such as `ls`), and count up how many of the listed command line flags are there only to structure the text stream for some other program. "Plain text" is just as interoperable as plain binary. "Just use plain text" is the Original Sin of Unix. The Unix Philosophy, as stated by Peter Salus [1] is 1. Write programs that do one thing and do it well 2. Write programs that work together 3. Write programs to handle text streams because text is a universal interface. The problem is that, in practice, you can only pick two of those. If you want to write programs that work together, and do so using plain text, then, in addition to doing its ostensible task, each program is going to have to provide a facility to format its text for other programs, and have a parser to read the input that other programs provide, contradicting the dictum to "do one thing and do it well". If you want programs that do one thing and do it well, and programs that work together, then you have to abandon "plain text", and enforce some kind of common data format that programs are required to read and output. It might be JSON. Or it might be some kind of binary format (like what PowerShell uses). But there has to be some kind of structure that allows programs to interchange data without each program having to deal with the M x N problem of having to deal with every other program's idiosyncratic "plain text" output format. [1]: https://en.wikipedia.org/wiki/Unix_philosophy https://en.wikipedia.org/wiki/Unix_philosophy
- jimbo9991 4y agoThis was a really insightful take on the Unix philosophy that I hadn't heard before but I intuitively agree with because of all the parsing code I've had to write.
- infogulch 4y agoProgrammers tend to have a disproportionate affinity towards plain text, me included. But this is an intriguing argument so now I'm reconsidering. Maybe plain text is just someone else's unparsed junk.
- tm-guimaraes 4y agoBecause plain text is narrow waist* that is easily debuggable. * https://www.oilshell.org/blog/2022/02/diagrams.html https://www.oilshell.org/blog/2022/02/diagrams.html