The session will cover the design choices and lessons learned developing the multi-language free library segyio, or more conceptually, designing libraries for libraries.
Briefly, it will discuss:
- Stable API, ABI, and how to design them for the future
- How to design C-interface libraries that allows for good foreign-language libraries (in our case python)
- Library design philosophy and the beauty of primitive functions
- How to design for composition and caller flexibility
The session should appeal both to library developers for embedded systems, and consumers of higher-level libraries in desktop and scientific applications, as the topic covered is the bridge between primitive and sophisticated systems, and how to make the bridge splendid.