Syntax

  1. Human readable
  2. Machine readable

It is a mistake to conflate the two.

Machine-readable syntax ideas were created in 1950s when pEMs (programmable Electronic Machines (aka “CPUs”)) were in their infancy and could deal with character input more easily than with vector graphic input.

The ideal machine readable syntax is a tree (diagram). We flattened trees into text for convenience, practicality. Text oriented processing was considered easier if done in a sequential, linear manner. This led to the notion of assembler.

Most human-readable programming language syntaxes appear to be derived from sequential, linear biases. Human-readable text was linearized due to the invention of the printing press, then, further linearized due to ideas about assembler.

Lisp syntax is biased towards machine readability and flattened CSTs.

Most other 3GLs (Python, Rust, etc.) are biased towards sequential assemblerism, but, are marketed as being “more human readable”. Linearized assembler led towards absolute-ism rather than relative-ism, and, this has leaked into most 3GL syntaxes.

Humans prefer 2D media, such as cave walls, whiteboards, backs of envelopes, napkins, papyrus, clay tablets.

Humans can understand evolving whiteboard drawings made by CEOs, but, we find it hard to translate the final product into meaningful instructions for pEMs. We tend to ignore “time” (the evolution of the whiteboard sketch) and we tend to want to present a “snapshot” to pEMs for interpretation.

Removing “time” from such sketches causes us grief and accidental complexity.

This tendency towards removing “time” from our notations has caused (and probably is still causing) grief in other fields, such as Physics. For example, see Nobel Laureate Ilya Polyani’s book “Order Out of Chaos” where he claims (paraphrased from memory) that “functional thinking” has retarded Physics by 100 years.

Appendix - Printing Press Influence on Syntax

Viniculum https://www.youtube.com/watch?v=JFzHIp2F0Yk

See Also

Blogs

  • https://publish.obsidian.md/programmingsimplicity (see blogs that begin with a date 202x-xx-xx-)
  • https://guitarvydas.github.io/

    Videos

    https://www.youtube.com/@programmingsimplicity2980

    Books

    leanpub’ed (disclaimer: leanpub encourages publishing books before they are finalized)
    https://leanpub.com/u/paul-tarvydas

    Discord

    https://discord.gg/Jjx62ypR (“programming simplicity”) all welcome, I invite more discussion of these topics

    Twitter

    @paul_tarvydas

    Mastodon

    (tbd, advice needed re. most appropriate server(s))