Presented by:
No video of the event yet, sorry!

This talk introduces a conceptual analogy between zypper, openSUSE's package manager, and the "zipper", a data structure from functional programming. While unrelated in origin, both handle structured data through localized operations with global awareness. By viewing package dependency graphs through a functional lens, we explore how ideas like context, traversal, and reversibility resonate across system tools and abstract data structures. This session offers a fresh, informal perspective on package management and its underlying structure.

In the context of package management, zypper and its backend libzypp manage dependencies and transactions by navigating through a dependency graph, resolving package relationships, and ensuring system consistency. These tasks are inherently structural and often involve considering both local and global effects—what happens when a specific package is modified, installed, or removed in relation to the rest of the system.

Similarly, the zipper data structure offers a principled way to traverse and update complex structures by focusing on a single point (or node) while maintaining awareness of the rest of the structure. This is achieved by storing the context needed to reconstruct the entire structure from any focus point. In functional programming, zippers are frequently used alongside comonads to represent computations with context or state transitions governed by structure.

The talk does not claim a direct technical equivalence between zypper and zipper, but rather uses the shared structural idea as a lens to discuss the nature of system-level operations and package dependency resolution. It reflects on how structural awareness, safe traversal, and reversible operations are fundamental both to functional data structures and to reliable system tools.

This session is intended for system engineers, developers interested in functional programming, and anyone curious about the conceptual bridges that can connect distinct areas of computing.

Date:
Duration:
30 min
Room:
Language:
Track:
Difficulty:
Easy