5 Matching Annotations
  1. Apr 2020
    1. It simply makes the code fail more spectacularly.

      (strong) dynamically typed languages have type errors that fail at runtime whereas statically typed languages have type errors that fail at compile time, comparing how they fail isn't important because the only distinction is when they fail (in which case failing as early as possible is better)

    2. From a theoretical perspective, preventing infinite loops is in a very deep sense the most basic possible thing you can do with static types

      This is only possible if the entire program is written in the simply-typed lambda calculus. Type-systems themselves have to always halt but that doesn't mean that strongly-typed programs always halt (since most typed programming languages are Turing Complete)

    3. The simply-typed lambda calculus, on which all other type systems are based, proves that programs terminate in a finite amount of time.

      the simply-typed lambda calculus is not Turing Complete which is pretty cool

    1. Its superior not because its faster, nor because there are shortcuts for you to do things, but because you can make shortcuts to do things.
    1. When you're writing software that is only going to run on your own servers, you can use whatever language you want.