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.
- Counterpoints:
- 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.