Another kernel written in Rust!
https://github.com/hermitcore/libhermit-rs
Rust tooling/docs must be making operating system development more accessible, as there is an impressive number of these projects.
Sometimes metaprogramming (macros etc) is a useful technique for refactoring, simply because you can try and then discard different designs: https://blog.metaobject.com/2018/11/refactoring-towards-language.html
(I've certainly written then thrown away macros when writing Lisp!)
The esoteric language BF was designed to be a language where you could write a very small compiler. Self-hosting BF is significantly harder though.
If we designed languages to minimise total LOC for a project plus its compiler, what would end up with?
When your blog is already hosted by GitHub, you can even have your comment backend on GitHub too! https://utteranc.es/
(I've decided to trial it on my blog: https://www.wilfred.me.uk/)
It's easy to use lots of different versions of Rust nightly. Remacs requires a specific version. The https://autogen.sh/ scripts are admirably defensive, to help you get on the right version!
I'm not sure about teaching OO in terms of shape hierarchies or animal species hierarchies. It might help intuition, but doesn't reflect typical usage IME.
If you did model animals in an OO style, you'd be more likely to have base classes or interfaces like IFarmable, IHuntable.
The latest Read Eval Print Love discusses rules engines!
https://leanpub.com/readevalprintlove004/read
I'm also interested to learn that Clojure has a unification library in its stdlib.
There's a seedy underbelly of refactoring tools that work most of the time.
For example, grep and sed can perform function renaming. For a small codebase, this works well (you can test or eyeball the result).
Ideally we'd only use fully correct tools, but simplicity often wins.