Fable Converted Pylint to Rust

Project & Core Claims

  • Rust reimplementation of Pylint aims for:
    • Byte-for-byte identical output to Pylint.
    • Same bugs and crash messages as Pylint.
    • Very large speedups (15–2300×, median ~85×) on real codebases.

Verification and Correctness

  • Several commenters doubt that full byte-for-byte equivalence is realistically verifiable.
  • A harness script in the repo tests prylint vs Pylint on selected projects, but people note:
    • Tests only cover observed behavior, not all edge cases.
    • Identical behavior on tests does not guarantee identical behavior globally, especially with plugins.
  • Some see the “same crashes, same bugs” claim as a sign of automatic copying rather than careful design.

Performance Discussion

  • The headline 2328× speedup comes from a pathological directory in Black’s repo involving duplicate-code; this was later optimized in Pylint itself.
  • Some argue such huge speedups likely reflect fixing algorithmic pathologies that could also have been fixed in Python.
  • Others respond that major speedups often come from eliminating unnecessary work and that compilers/linters are full of such opportunities.

Comparison with Ruff and Pylint

  • Multiple comments: “Why not just use Ruff?”
    • Counterpoints:
      • Ruff doesn’t (yet) cover all Pylint checks; many projects run multiple linters.
      • Pylint still provides deeper or different checks, important in stricter environments.
  • Prylint appears to reuse Ruff’s code internally, which some criticize as repackaging existing work.

Trust, Maintenance, and Community

  • Worries about:
    • The project being largely LLM-generated with minimal human ownership.
    • Long-term maintenance, given many past “AI-ported” projects quickly stagnated.
    • Risk of running unproven, auto-generated tooling over production code.
  • Others argue that only correctness and tests matter; method of creation is secondary.

Developer Experience & Workflow

  • Many find current Pylint too slow for large codebases or pre-commit hooks; even ~2 seconds per file is considered painful for interactive work.
  • Faster, Rust-based tooling is attractive, especially for CI and for avoiding alternate Python interpreters.

LLM-Aided Code Translation & Broader Implications

  • Several participants describe similar LLM-driven ports (e.g., Python tools and C libraries to other languages) using agent “swarms,” automated compile/test/fix loops, and fuzzing.
  • Some foresee:
    • Systematic language-to-language migration as a strong LLM niche.
    • Pressure on open source projects, as AI makes cloning and reimplementation cheap.
    • A shift in programmer value from hand-writing code to designing systems and verification.