Astral
41–50 of 248 posts
Re: Astral
#42It's true that being that much faster is interesting, but that's not the only reason. ruff is just really good. It has sane defaults, it is easy to use and configure. It can replace not one but multiple tools. From day one it had few bugs or integration problems. Charlie Marsh is just a damn good developer, on top of driving a good product vision. That's rare. Lots of respect to that.
Re: Astral
#43Earlier quoted context omitted.
??? There is no downside to adding your bespoke flake8 plugins. For people that don't use them (99% of people) they get the benefit of blazing speed. For your custom plugins you live with the tradeoff of slower execution to do those AST passes with flake8/python tools. Even if ruff didn't exist you would still be burdened with your slow flake8 plugins speed. There is zero downside to you and only upside to people tha…
It's not just "custom" plugins, it's all third-party plugins though right? If someone wants to publish a new linter for something, right now they can, and others can use it easily, but Ruff centralises that and makes it harder. You're right that it will probably still be faster overall because "most" linting will be done with Ruff and any extras would be done externally, but now you've either got 2 tools when you had…
Re: Astral
#44Re: Astral
#45Earlier quoted context omitted.
> X is not strong enough to build a company from. I mean, these are the famous last words of a lot of non-visionaries. I'm not saying that Ruff is some kind of unicorn, but there are a lot of cases where a seemingly small improvement on an existing technology resulted in a very successful enterprise. Docker, for example. There are others that I'm sure people will chime in with.
Maybe your answer is correct but it is not useful, at all. It does not answer the question, like, providing real solutions.
Re: Astral
#46Re: Astral
#47I mean, "Astral" .... what's that ? The "astral.sh" domain doesn't tell me anything either.
I'm sure those in the know automatically know what it is, but for the rest of us, the title is completely and utterly meaningless.
Re: Astral
#48I love Ruff and I'm glad that Charlie and the rest of the team are able to work on such tools full-time. I'm also happy to see that the author of Maturin (Rust+Python interop) is involved, as Maturin is a fantastic project with great ease-of-use. For those who aren't familiar, Ruff is a very fast Python linter that supersedes a variety of tools like isort, flake8, and perhaps eventually Black [1]. My understanding is…
Re: Astral
#49I love Ruff and I'm glad that Charlie and the rest of the team are able to work on such tools full-time. I'm also happy to see that the author of Maturin (Rust+Python interop) is involved, as Maturin is a fantastic project with great ease-of-use. For those who aren't familiar, Ruff is a very fast Python linter that supersedes a variety of tools like isort, flake8, and perhaps eventually Black [1]. My understanding is…
I thought Black was an auto-formatter, similar to clang-format, but for Python. Ruff seems to be only doing linting, not formatting. Am I missing something?
Re: Astral
#50Speed is a non existent problem for linters. Pyflake is quick enough. I spend more time thinking than writing code. I just write in one file at a time, which can be linted in sub-second time. How does it compare with Pyflake8 in error messages? Does it find more errors? Does it have less false positives? Does it integrate well with other developers tools? Does it have sane defaults? These are the really important que…
1. Fast enough to be live updating as you type in an IDE.
2. Slow enough that running a linter has to be a separate action you take, but fast enough that you don't go do something else while it's running.
3. So slow that it's an asynchronous task that you launch and then come back to later.
Ruff is in the first category, while most other python linters are in the second. This level of performance enables a qualitative difference in how you interact with the tool. If you are invoking it as a separate task, then going from 500ms to 50ms is indeed not very interesting, though.