Pybites Podcast

#175 - Charlie Marsh on Ruff, uv and designing fast + ergonomic Python tooling

11 snips
Nov 6, 2024
In this conversation, Charlie Marsh, creator of Ruff and UV, shares his journey in designing fast and ergonomic Python tooling. He discusses the influence of Rust on his development process, advocating for seamless user experience. Charlie reveals the challenges in managing community feedback while maintaining quality and highlights the evolving landscape of Python tooling. He also touches on future features like type checking and the potential integration of Conda, making it easier for developers to manage their projects.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
INSIGHT

Why Ruff Began As A Rust Performance Experiment

  • Charlie Marsh started Ruff to test whether building Python tooling in Rust could dramatically improve performance.
  • He prototyped parsing and basic analysis (e.g., unused imports) to measure speed and trade-offs before adding many rules.
INSIGHT

Performance And Fragmentation Are The Twin Problems

  • Two core problems drove Astral's tooling: slow developer workflows and fragmentation of many small tools.
  • Charlie compared to JavaScript tooling and wanted Python tools that run locally fast and reduce the number of distinct tools to learn.
ADVICE

Ship Backwards Compatible First Then Offer Better Workflow

  • Make new tooling easy to adopt by matching existing workflows, then offer a clear migration path to opinionated features.
  • uv launched with uv pip to let users drop it in, then added uv sync/lock/run as higher-level workflows later.
Get the Snipd Podcast app to discover more snips from this episode
Get the app