Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Seems there are at least three Rust-based competitors for type checkers in Python now (Microsoft, Facebook, Astral), and of course there's still mypy.


Close, Microsoft’s type checker Pyright is Typescript. Its still faster than mypy for me though.


Pls forgive my ignorance, but how is Typescript (a superset of Javascript) used to type-check Python?


You can write a parser and type checker for pretty much any language in pretty much any language. It's just text files as input and text as output.


They're saying pyright is a Python type checker, but it's written in Typescript, not Rust.


There's nothing magical to type-checking Python. You can write this in any programming language. TypeScript is actually a pretty nice language for writing static analysis tools.


just like the Python compiler/interpreter is written in C.


They're all static type checkers right? None for runtime?


Yes. If you want runtime validation of data you’re taking in people recommended pydantic. If you’re looking for runtime validation within your own code I’ve seen people use beartype, though to be honest I don’t personally understand the value added from it


...or Marshmallow, which allows one to do many complex validations in a relatively trivial manner.


On one hand, I feel like I've been in a coma since covid because I've just been coasting along with Marshmallow and jsonschema, but on the other hand it's like a lot of the major advances have been in the past couple years. Apparently pydantic got a big version update in 2023? And now all these competing static type checkers?


Pydantic got the re write in rust treatment so de/serialization is crazy fast now.


msgspec must be insanely fast then: https://jcristharif.com/msgspec/benchmarks.html

But of course unless parsing and manipulating JSON is your bottleneck, Pydantic is great, too.


It's true. msgspec has incredibly fast msgpack serialization. It's a shame so few people know about it.


JSON, too!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: