TL;DR
This paper presents Static Python, a sound, fast, and expressive gradually-typed language used in production, combining concrete and transient types to balance soundness, performance, and ease of use.
Contribution
It introduces a formal model of Static Python's gradual typing approach and evaluates its performance, revealing insights into its soundness and implementation errors.
Findings
Gradual soundness from mixed types reduces maintenance costs.
Method-based JIT can eliminate transient type costs.
Formal model identified implementation errors.
Abstract
Context: Gradually-typed languages allow typed and untyped code to interoperate, but typically come with significant drawbacks. In some languages, the types are unreliable; in others, communication across type boundaries can be extremely expensive; and still others allow only limited forms of interoperability. The research community is actively seeking a sound, fast, and expressive approach to gradual typing. Inquiry: This paper describes Static Python, a language developed by engineers at Instagram that has proven itself sound, fast, and reasonably expressive in production. Static Python's approach to gradual types is essentially a programmer-tunable combination of the concrete and transient approaches from the literature. Concrete types provide full soundness and low performance overhead, but impose nonlocal constraints. Transient types are sound in a shallow sense and easier to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
