(Mostly) stop using dynamic langauges
03.12.2024
This pattern keeps playing out. Companies implement serious software in dynamic languages like Python, Ruby and JavaScript. Initially they make progress fast, but they soon realise that developing software without type-checking is untenable. They are then forced to use some third party type checker, with bolt-on syntax that detracts from their once "beautiful" simple language. These third-party type checkers are themselves fallible, and are often unable to report whether non-trivial refractors are safe. Bolt-on type systems are usually quite slow. This leads to cosmic jokes like 20+ minute build times for interpreted languages. At this point it would have been less effort and time to implement the whole thing in Rust (which I do not necessarily advocate for, but hopefully you understand). I would like to emphasise that this keeps happening, and every time this process happens a few people get their egos stroked on HackerNews for creating Sorbet, or TypeScript, or mypy. No one acknowledges the monumental failure of choosing these languages in the first place. In the end it becomes harder to extend the software and progress ceases to happen. This is a very real constraint on the complexity and quality of software that humans can produce. So this is my plea to stop using these language please for anything more than simple scripts.