4 ms·
Sounds like unix to me.
by lowlevel 6y ago
Sounds like unix to me.
- rakoo 6y agoIndeed, it sounds like the author is looking for the UNIX of the 21st century: * Widely reusable meaning: everything behaves like a file. The types of files we can have are defined by specs: an Image can be described as a PNG file, which every process can understand. A table can be a CSV or a SQLite file. A Conversation can be a maildir folder. We might not have the best descriptions of "things" but we do have something * Data without borders: if you can read from stdin and write on stdout, you can interact with the data. In fact, joining two tables is a base task and can be done with join (https://linux.die.net/man/1/join https://linux.die.net/man/1/join) * Inherent, ubiquitous programmability: I'm not sure I understand the author's point, but it sounds like the entities in a software are too specific to the program. Again, if every "application", or rather set of utilities, used the filesystem with clearly defined specifications for what data is, then they can work together What is not following the UNIX guidelines is definitely the Web and mobile platforms, as the author focuses on. There were some attempts at doing things the UNIX way, like uzbl (https://www.uzbl.org/ https://www.uzbl.org/) where every thing is a script away, or ii (https://tools.suckless.org/ii/ https://tools.suckless.org/ii/) which gives a filesystem interface to IRC conversations. Want to parse a message ? It's just a string in the filesystem, any script can do it. There's a reason it didn't work as well as we want, and it's that in practice it's all clunky and hard to maintain when the alternative is a single, unified application. Especially when the alternative is from a commercial vendor with a lot of cash. The incentives of doing FOSS that interacts with each other are not aligned with making money.
- thesuperbigfrog 6y agoA lot of what you are describing exists in Plan 9: Under Plan 9, UNIX's everything is a file metaphor is extended via a pervasive network-centric filesystem, and the cursor-addressed, terminal-based I/O at the heart of UNIX-like operating systems is replaced by a windowing system and graphical user interface without cursor addressing, although rc, the Plan 9 shell, is text-based. Source: https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs Many of the ideas from Plan 9 were implemented as user space programs on a variety of Unix-like operating systems: Plan 9 from User Space provides many of the ideas, applications, and services from Plan 9 on Unix-like systems. It runs on FreeBSD (x86, x86-64), Linux (x86, x86-64, PowerPC and ARM), Mac OS X (x86, x86-64, and PowerPC), NetBSD (x86 and PowerPC), OpenBSD (x86 and PowerPC), Dragonfly BSD (x86-64), and SunOS (x86-64 and Sparc). Source: https://9fans.github.io/plan9port/man/man1/intro.html https://9fans.github.io/plan9port/man/man1/intro.html
- rakoo 6y agoPlan 9 has been on my "things I need to try" list for as long as I've known it, but I've never gotten around to do it. Maybe it's time to tick some boxes off that list now that a new lockdown has started in here.
- Cloudef 6y agoThe "everything is a file" in UNIX is bit of a lie. And plan 9 went on fixing that. UNIX has many files that aren't actually files but special devices that you access with non-standard interface (mainly ioctl). In plan 9 everything truly is a file and all communication happens with read/write system calls.
- rakoo 6y agoI might be uninformed but it seems to be "everything is a file" was more or less true when UNIX was created, and then it evolved outside of the academic garden, especially Linux which was a hobbyist project and never strove to have a cleanly designed, rigorous architecture. Plan 9 does fix this, and I wish so much it managed to be a dominant OS. So many things seem correct. Maybe it's exactly because it isn't used for real use cases that it can maintain its appearance of good design
- AndresNavarro 6y agoYes, but it could also be a single program with commands. I think Jeff Raskin talked about something like this with Archy. You could also think about the emacs paradigm extended to non-textual objects (to me emacs is like a lisp machine tuned to work with text)