Assertions are a surprisingly nuanced design space. In a test, if I assert `x < y`, I really want to see the values of x and y when it fails.
Do you define an API for every possible predicate (Python's assertLess, expect.js) or try to support the native syntax (c.f. pytest)?
miniblog.
Related Posts
I'm surprised there aren't more interpreted languages with a first party type checker.
Python has several good type checkers, Ruby has Sorbet, and there are others.
Having zero compilation time *and* a full IDE seems like such a compelling design, at least on paper.
Language design question: what type should `while True {}` have?
Bottom: It doesn't contain any `break` statements.
Unit: Treat loops with/without `break` consistently.
I already have lints that warn on unreachable code after diverging loops, so the Unit case feels surprising.
I've never seen a good design philosophy on how to sort compiler errors for the best UX.
Do you order by line, or by severity? Do you put the most actionable at the end (because that's most visible when the terminal scrolls) or at the beginning?