Nixers Book Club - Book #4: The Art of UNIX Programming - Community & Forums Related Discussions

Users browsing this thread: 1 Guest(s)
venam
Administrators
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
the GNOME project, attempts to import CORBA, ASN.1, and other forms of
remote-procedure-call interface have largely failed — these technologies
have not been naturalized into the Unix culture.

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
that one of your specification file formats is looking more and more
like a minilanguage

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: JavaScript
I'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.


Messages In This Thread
RE: Nixers Book Club - Book #4: The Art of UNIX Programming - by venam - 29-05-2021, 02:42 AM