Invariants: A Powerful Tool for Writing Correct Code

2025-01-12

This article explores the concept of 'invariants' in programming and their applications. Starting with a small example—writing a binary search variation that computes the insertion point—the author demonstrates how defining and maintaining invariants leads to correct code. Invariants, the article explains, are properties that hold true throughout a system's dynamic evolution, simplifying reasoning by avoiding the complexities of considering numerous execution paths. Examples from projects like Cargo, rust-analyzer, and TigerBeetle illustrate the benefits of using invariants in large systems, such as improved maintainability and performance. The author concludes by summarizing the importance of invariants in both small-scale and large-scale programming, highlighting their value in writing correct and efficient code.

Read more

Revolutionary Idea: Applying Magit Principles to the jj Version Control System

2024-12-13

The author proposes a novel approach: applying the Magit version control interface from Emacs (which uses text files as its UI) to the nascent jj version control ecosystem. The article points out that Magit's text-based UI offers efficiency and portability. By leveraging the LSP protocol, a Magit-like experience can be implemented in various editors, avoiding redundant development. The author envisions generating specific text files (such as .jj/status.jj) and utilizing LSP features like semantic tokens, folding ranges, and goto definition to achieve Magit-like version control operations. The ultimate goal is to create a cross-platform, efficient user interface for jj version control.

Read more
Development