> Take joy in doing these things with precision and efficiency, and making your work easy to understand and explain to others.
If you think this is different than what the parent is describing then you’re doing it wrong
If you think this is different than what the parent is describing then you’re doing it wrong
Some languages have a big bag of tricks, other languages let you extend them to the moon, and still others make you work at it a little. In the end it's all just computation, and the tool choice can be reduced to a list of "must haves" and "cannots". If you need more expressive power -- make your build a little more complex and start generating code, give it a small notion of types or static invariants. It only has to generalize as much as your problem does, and that leads you to build the right abstraction instead of dumping an untried language feature on the problem in the hope that it is a solution.