Very excited for this, looks like it's built on top of pretty solid technical foundations (iirc, it uses salsa from rust for incremental type checking). I've found mypy pretty terrible. Pyright is okay (but requires node).<p>Ruff truly can become one tool to rule them all.
It's hard to find details...apparently it's code named "red knot" (or "red_knot").<p>Here's the github issues filter linked in the screenshot:<p><a href="https://github.com/astral-sh/ruff/labels/red-knot">https://github.com/astral-sh/ruff/labels/red-knot</a><p>And the best answer/description of what the type checker will be:<p><a href="https://github.com/astral-sh/ruff/discussions/15149">https://github.com/astral-sh/ruff/discussions/15149</a>
I started learning Python when it was barely at version 1 precisely because there was no real static type checking. If I wanted that, I would just write the program in C or its variants. I wasn't excited about type hints because developers became super judgy if there weren't any. I just want to know why you're using Python if you want stronger typing and feel the need to change the entire language instead of using another one yourself.
I am really excited.<p>Ruff is amazing, uv literally fixed all the python packaging issues we have, and now a type checker!!<p>Can't wait to see it!
Bluesky cross-post for those who don't want to read the thread on X: <a href="https://bsky.app/profile/crmarsh.com/post/3lgvhzdfrps26" rel="nofollow">https://bsky.app/profile/crmarsh.com/post/3lgvhzdfrps26</a>
My big question is django support.<p>Django has a lot of magic that makes type checking more difficult than it should be.<p>I'm not really expecting anything, even just the speed bump will be nice.
Applaud the effort, but it's weird seeing python (and es6) living more and more on top of native static analyzers/transpilers .. at which point will they become a frontend syntax for ocaml or julia ? :p
They just need to add a task runner feature (already being worked on) and the one tool to rule them all would be complete. Package manager, linter, formatter, type checker, task runner. Am I missing something? Maybe a build tool?<p><a href="https://github.com/astral-sh/uv/issues/5903">https://github.com/astral-sh/uv/issues/5903</a>
At the risk of sounding like a fanatic, I bet it will be great.<p>Everything Astral have put out has been a step improvement to my python dev flow. Until they disappoint me, I'm staying on this hype train.
Astral has consistently surprised the python community with amazing tooling. It was a matter of time before they jumped into type checking. I think ruff and uv were good first MVPs for a small company with a highly talented team. I can't help but wonder if someday they'll attempt to build their own Python interpreter in Rust, or if that's overkill.
I would use a statically-typed Python that you can compile into a binary for better performance. Step 1: Develop fast in regular Python. Step 2: Add type annotations and build.
It's interesting to me that one of the most popular, if not the most popular, language in the world and one that is decades old has tooling that is constantly evolving and being reinvented and now in another language than itself. Contrast this with Rust and Elixir which have developed superior tooling in just a decade or so. I just started with real Python development in the past year and have already switched basic tooling!
Could it please also do runtime type checking?<p>(PyContracts and iContract do runtime type checking, but it's not very performant.)<p>That MyPy isn't usable at runtime causes lots of re-work.
Good riddance! I’m optimistic that these guys will transform the typing landscape, which, let’s be honest, has room for improvement. I find mypy abysmal to use, bug-ridden with weird defaults, and extremely painful to add to an existing codebase
Is it going to be like mypy or pyright? Will it include an LSP server? Pyright seems more focused on the LSP server side and doesn't seem as complete as mypy as a type checker.
kinda mixed on this<p>- why not just contribute to the community tool?<p>- there's already a major split in Python type-checking tools, if there's a third that doesn't agree with either of them it'll be a mess for projects to deal with<p>- astral has been hiring like mad recently and has yet to communicate that they can actually make money ($5 million doesn't last forever)<p>- does it actually exist? is this currently a closed-source codebase, or is "we're building" future tense?