Fun blog post on implementing a small programming language, including a tiny and readable type checker!
https://blog.mgechev.com/2017/08/05/typed-lambda-calculus-create-type-checker-transpiler-compiler-javascript/
miniblog.
Related Posts
The author of rust-analyzer discussing how language features help or hinder fast IDEs.
If you allow `from m import *` you can't analyse files in isolation, and it's even harder in Rust.
Excellent series on Self, both the programming model and the tool chain.
I love how opening an inspector on a value (e.g. nil) then shows a link to all occurrences of the value in other open inspectors!
I'm still not sure whether a language should include a "kitchen sink linter" like Rust's clippy or have a package oriented "thousand flowers bloom" linter like eslint for JS and TS.
Clippy is delightful out of the box but eslint makes it so easy to have project specific lints.