A wonderful video from 1995 introducing the Self language.
It demonstrates a uniform evaluation model, "direct" programming where you can modify object inheritance live, break apart GUIs and build new ones from methods, and even a cheesy CGI finish!
https://youtu.be/Ox5P7QyL774
miniblog.
Related Posts
Efficiently generating random numbers in an interval 0-N https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/
The article demonstrates rejection sampling and bit masking. I've hit this problem a few times in property-based test frameworks, so it's nice to see solution techniques.
Pharo 9 refactoring demonstrates some clever analysis: if you extract a method from an expression, it can find other occurrences of that expression in the class hierarchy!
https://pharoweekly.wordpress.com/2021/04/01/pharo-90-refactoring-support-improves-steadily/
Untyped programs don't exist: https://www.williamjbowman.com/blog/2018/01/19/untyped-programs-don-t-exist/
Demonstrates a simple theorem, but has a nuanced notion of types as invariants. It discusses the important questions of when we should check types, allowing escape hatches, and whether type checking should be decidable.