You can find the second part (very interesting as well) here
If you have never heard of ZeroMQ here is the Wikipedia description.
ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated message broker.
I have used ZeroMQ only in one project a few years ago and I have been extremely impressed by its design and performance. The developers behind it are people who take performance and stability of ZeroMQ very seriously (something that every system application should have, but unfortunately I haven’t found is so many projects).
These two articles are a very interesting point of view of a system programmer of the differences between writing a software in C or C++. The first part is mostly on error handling, while the second part is mostly on memory efficiency.
I have to agree with him, from my experience writing and reading both C and C++ codes. I also would like to add something on top of that. Lately, I have read more code in different programming languages, and I have now a new appreciation of simple programming languages. Most of the programming languages (like C++) adds a lot of abstractions to the language, ideally to simplify the life of the programmer, while other languages (like C or Go) have the opposite approach of keeping the language simple enough and let libraries to help the developer. Maybe it’s only a personal thing, but I find reading large software projects written in a language that prefers more abstraction harder to read and understand. I even find it easier to read something as complex as the Linux Kernel because it’s written in C, where all the abstractions are very explicit and understandable.