On Simplicity ------------- Thu Oct 6 00:15:41 EDT 2022 [Disclaimer: I'm not an expert on eithe language] [discussed in this piece, take it with a grain ] [of salt; it's more about the bigger picture! ] I'm making my way through Crafting Interpreters [1] with a small group of friends (a "book club", if you will), and I decided to try to implement the interpreter in Scheme (CHICKEN Scheme to be exact). Scheme is a funny language. It has "simplicities" in its sparsity: parenthesis for unambiguous syntax, no looping mechanisms other than recursion, etc. Sometimes it feels a lot like Go, with its minimal set of builtins focused on readability and one-way-to-do-things. Other times, it feels very different (much more spartan, but maybe that's due to me not yet grokking the paradigm shift / struggling to shift mindset). Regardless, I wanted to share a quote from Rob Pike that really struck me from this talk [2]: > I want to make a really important point here: > I've said Go is simple, but it's not. > I know, I've worked on it! > ... > Simplicity ... is the art of hiding complexity Scheme's simplicity seems to come from a mathematical purity--closures and recursion and homoiconicity. Go's simplicity seems to come from excellent design focused on modern software needs. It's a wonder they can be used to do the same things. [1]: http://craftinginterpreters.com/ [2]: https://www.youtube.com/watch?v=rFejpH_tAHM