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