How Microsoft Uses C++ to Deliver Office - Huge Size, Small Components - Zachary Henkel CppCon 2022

Discover how Microsoft's C++ library, Liblets, modernizes Office software with small, self-contained components for flexibility, scalability, and maintainability.

Key takeaways
  • Liblets are small, self-contained components of Office software, designed to be modern, clean, and modular.
  • Liblets use modern C++ and are designed to be exception-safe and have clean dependencies.
  • Liblets are part of the Office software’s layered architecture, allowing for flexibility and scalability.
  • The LibLit initiative aimed to modernize and simplify the codebase, making it more maintainable and extensible.
  • Liblets are not replaceable with other languages or frameworks, as they are deeply integrated with the Office software.
  • The Liblets philosophy emphasizes the importance of being small, simple, and self-contained, making it easier to reason about and maintain the codebase.
  • Header units are a crucial part of the Liblets architecture, allowing for more flexibility and modularity.
  • The Liblets approach has led to a significant reduction in the size of the codebase, making it easier to maintain and update.
  • The Liblets philosophy has also led to an increase in collaboration and reuse of code between different teams and components.
  • The Liblets approach has been successful in reducing the technical debt and complexity of the codebase, making it easier to extend and maintain.
  • The LibLit initiative has also led to the development of new tools and technologies, such as the MSO shared library, which has significantly improved the efficiency and scalability of the codebase.
  • The LibLit initiative has also led to the development of new testing and debugging tools, such as the LibLIT parser, which has improved the accuracy and speed of testing and debugging.
  • The LibLit initiative has also led to the development of new code analysis tools, such as the Code Browser, which has improved the code analysis and debugging capabilities of the codebase.