3 ms·
> You've heard of the Unix philosophy? Small programs that do one thing well. Composeability, so you can combine programs to make new functionality. That makes
by capableweb 5y ago
> You've heard of the Unix philosophy? Small programs that do one thing well. Composeability, so you can combine programs to make new functionality.
That makes sense in terms of CLI utilities where text/files is the standard input/output, or APIs where json/xml/format-of-today is the standard input/output, but how would you do this with GUI tools? I'd love it if there was a solution, but I'm not aware of one.
Many suites of software use a standard format for things (like .obj/.fbx for graphic object/animation, or .wav for music production), but there is usually not a pipeline as in "pipe this output from this software into that input to that software" like we do with CLI utilities, and if there is, that pipeline is not standarized nor open for extension. Will it ever be possible? I hope so, but I don't see how it can be right now.
- throwaway984393 5y agoLinux GUI apps use DBUS to communicate between each other. (I'm not a fan of it but it's better than nothing)
- capableweb 5y agoAs a comparison against traditional unix pipes (or even sockets), how does DBUS handle sending/receiving a lot of data? I always got the impression DBUS is more for notification style message passing, not actually for sending data, so you'd send a message saying "fetch the data from this socket" rather than "here's a bunch of data for you".
- pas 5y agoYou can use DBus to call a remote procedure and pass the path of a temp file where the real data is. (You can pass actual file descriptors too.) That said DBus is pretty fast. Basically somewhere around 25-30% of TCP. https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/ https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-...
- tech2 5y agoAn option here might be things like COM and DCOM. Individual, possibly embedded, components and a well defined communications mechanism. Historically the Amiga was quite nice here with systems using AREXX to communicate (but not embed), and Linux/POSIX has things like DBUS for the same (but less flexibly since there's no middleware between the two for coordinating control between systems, the components need to know about one-another directly - kinda).