Revive Raskin's 3 laws of software with humane work that considers a dev's duty of care
First reported by The Register ·
Your code editor's ability to protect your work is now a point of contention and potential data loss.
David Chisnall, a researcher with the CHERI Project, experienced a data loss incident while attempting to use the NeoVim code editor. Chisnall, a long-time user of the Vim editor, relies on its persistent-undo feature, which saves changes over extended periods. Upon trying NeoVim, which forked from Vim, the software overwrote his undo file, destroying over a decade's worth of change records. Although a warning was present, Chisnall expected the feature to remain safe due to Vim's history of maintaining undo history across major version upgrades for roughly 20 years. This incident has resurfaced discussions around Jef Raskin's three laws of human-computer interface design, particularly his first law: "A computer shall not harm your work or, through inaction, allow your work to come to harm." The event has also drawn criticism towards NeoVim and its development community, with some citing a perceived lack of "duty of care" to users, echoing sentiments from Marcin Wichary's recent blog post.
The incident highlights a recurring tension in software development between rapid innovation and the "duty of care" owed to users, particularly regarding data integrity. Jef Raskin's laws, formulated decades ago, are being invoked to critique modern developer tools that may prioritize new features or forks over established user trust and data safety. This suggests a potential market division: tools that rigorously uphold user data protection, and those that might inadvertently risk it in pursuit of evolution, potentially alienating users who value stability and long-term work preservation.
The backlash against NeoVim, amplified by comparisons to Raskin's humane interface principles, indicates that users are increasingly sensitive to tools that could compromise their work. This could influence future development choices, pushing projects to more explicitly address data safety and user expectations. Developers and users alike may need to re-evaluate the trade-offs between the cutting-edge capabilities of newer tools and the proven reliability of older, more established software that adheres to foundational principles of user-centric design.
AI-written summary. May contain errors.