A transcript from a deeply insightful @strangeloop_stl 2018 talk: comparing software design to programs that generate programs.
Deductive synthesis can give us insights on choosing abstractions, and counter-example guided synthesis is much like TDD!
https://www.pathsensitive.com/2018/12/my-strange-loop-talk-you-are-program.html
Related Posts
Blogging about my programming language project: choosing the basic syntax!
https://www.garden-lang.org/blog/syntax.html
I'm implementing an interpreter, and wondering how often I should check for interruptions (e.g. Ctrl-C).
I don't want to spend too much CPU time checking whether I've been interrupted, but I also want slow programs to stop promptly. It's tricky.
When writing long-lived programs (daemons etc) in Rust, I find myself asking *where* I should put data.
In a GC'd language it's just "I have a string" but Rust forces me to find somewhere to put it.
You do get a performance benefit for this work though.