<story><title>Ruff – a fast Python Linter written in Rust</title><url>https://github.com/charliermarsh/ruff</url></story><parent_chain><item><author>cercatrova</author><text>As I mentioned in another comment [0], compiled languages are the future of interpreted languages&amp;#x27; tooling.&lt;p&gt;&amp;gt; &lt;i&gt;Whereas before one might have thought that a language&amp;#x27;s tooling should be written in said language, there might come a time when that&amp;#x27;s too slow, and we instead need to move to faster languages.&lt;/i&gt;&lt;p&gt;&amp;gt; &lt;i&gt;That&amp;#x27;s what has happened to Python (numpy, pandas, scipy etc are all written in C and simply provide an interface in Python), and now it&amp;#x27;s happening to Javascript as well, with Deno, swc in Rust, Bun in Zig, esbuild in Go, and so on.&lt;/i&gt;&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=32577837&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=32577837&lt;/a&gt;</text></item></parent_chain><comment><author>bee_rider</author><text>Hmm, maybe this is a dumb question, but Numpy, Pandas, Scipy, etc are all libraries. Are libraries considered tooling? When I think of tooling, I think of linters, debuggers, IDEs, and so on.&lt;p&gt;I can definitely see why libraries should be written in faster languages, they are used all over the place. And anyway, something Numpy is most importantly an interface to pre-existing high performance libraries (BLAS, LAPACK) which were already written in faster languages.&lt;p&gt;I think it is less obvious that a tooling in the second sense should be written in a lower level language. There&amp;#x27;s the obvious flexibility tradeoff, the fact that a person interested in a linter for a language probably is most familiar with that language.&lt;p&gt;I&amp;#x27;m not familiar with the computational problems in linters. Is getting better CPU performance a huge concern?</text></comment>
<story><title>Ruff – a fast Python Linter written in Rust</title><url>https://github.com/charliermarsh/ruff</url></story><parent_chain><item><author>cercatrova</author><text>As I mentioned in another comment [0], compiled languages are the future of interpreted languages&amp;#x27; tooling.&lt;p&gt;&amp;gt; &lt;i&gt;Whereas before one might have thought that a language&amp;#x27;s tooling should be written in said language, there might come a time when that&amp;#x27;s too slow, and we instead need to move to faster languages.&lt;/i&gt;&lt;p&gt;&amp;gt; &lt;i&gt;That&amp;#x27;s what has happened to Python (numpy, pandas, scipy etc are all written in C and simply provide an interface in Python), and now it&amp;#x27;s happening to Javascript as well, with Deno, swc in Rust, Bun in Zig, esbuild in Go, and so on.&lt;/i&gt;&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=32577837&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=32577837&lt;/a&gt;</text></item></parent_chain><comment><author>_hl_</author><text>A counterpoint is the typescript compiler, arguably one of the most complex pieces of dynamic language tooling out there. It&amp;#x27;s written in typescript itself, and reasonably fast given that it has to implement a hugely sophisticated type system.&lt;p&gt;This shows that it&amp;#x27;s entirely possible to write fast tooling in dynamic language if you know how to.</text></comment>