Nixers Book Club - Book #4: The Art of UNIX Programming - Community & Forums Related Discussions
Users browsing this thread: 2 Guest(s)
|
|||
Alright, whoever is reading, it's time for sharing what we've learned or have to comment and discuss on the last 2 chapters.
Here's my review and comments. Chapter 7: Multiprogramming This chapter is really about IPC, how to communicate between programs, or rely on other programs to achieve your goal. It's no surprise that it focuses on separation of concern, and to do things as simple as possible. Self-evident? Maybe not. "Programming in the real world is about managing complexity." So the whole chapter builds upon going through examples of different types of IPC and we're told to always choose the most simplest between them that can handle our scenario. Also, self-evident? Some of the IPC we learn about: pipes/redirection, tempfiles, signals, wrappers, slave processes, sockets, shared memory, etc.. Quote:Despite occasional exceptions such as NFS (Network File System) and Say hello to d-bus! Quote:One is that RPC interfaces are not readily discoverable D-bus solved that through introspectable interfaces. But it's hated for the same reasons as other RPC methods. NB: I had no clue the X server was not threaded. Chapter 8. Minilanguages So after having visited how to interact and rely on the power of other tools, we're diving into minilanguages, which are very popular on Unix. They're presented by viewing them as types of DSL, each with their own complexity and categorization. Quote:The second right way to get to a minilanguage design is to notice If your config is a whole language, it starts this cycle of complexity: https://mikehadlow.blogspot.com/2012/05/...clock.html I like the idea that these DSL could be "accidentally Turing-complete" and incidentally, in the future, some crazy person is going to abuse this to create issues. On glade: I never really enjoyed it, it was too cumbersome when I tried it. I did have a go with a similar language called kivy. Quote:Case Study: JavaScriptI've heard of that minilanguage before, but where. Again the rule here is to keep things as simple as possible, not to argue that everyone should have a minilanguage, but on the contrary to see in which cases they are valid. I think these are really classic stuff to that most people should read at least once. It's good for "software architects" too. |
|||