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