This is WIP.

I am “thinking aloud” about the primitive elements of software.

I expect that the contents of this note will change with feedback and further thought.

I do, though, believe in “showing my work”. Showing intermediate results, no matter how rough.

Although this article is fresh, these ideas have been percolating for several decades, influenced by my experiences in running a small software consultancy.

Notes in Obsidian Format

Brief overview, follows…

Atoms

  • Case on Type
  • Case on State
  • Case on Data Pattern

Iteration

Molecules

  • nested
  • spaghetti

Energy

  • Control Flow
    • Synchronous Transfer of Control Flow
    • Asynchronous Transfer of Control Flow

Composition (Molecules)

Data

  • Datum (singular)
  • Bag (plural, unordered)
  • Proc (unit of execution, aka lambda w/o parameters and w/o retaddr)

Control Flow Composition

  • sync
  • async

  • nested
  • spaghetti

See Also

Table of Contents
Blog
Videos
References