Moving from JS to statically typed Flow or TypeScript prevented 15% of bugs found in trunk: https://earlbarr.com/publications/typestudy.pdf
Interesting paper. Whilst I think this number might be used to justify both static and dynamic types, I'll take anything lightweight that reduces my bug count!
Related Posts
Delighted to see that Typescript 7 is moving to conventional LSP for its IDE services!
https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/#resetting-language-service-issues
In LSP, a position is represented as a line number and a column offset (in Unicode code units): https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#position
This is pretty elegant. You'll get the correct line regardless of encoding bugs, and the editor already knows the line number so it's cheap to compute.
I really like the MELPA model of packaging directly from git. It solves the problem of forgetting to release something -- just merge a PR and you're done.
It also makes version number bumps much less important.
You could go even further in a statically typed language and also figure out when breaking changes occur.