Skip to content

Instantly share code, notes, and snippets.

@nmcb
Last active April 1, 2019 12:43
Show Gist options
  • Select an option

  • Save nmcb/fcd25ea17b44b1dcc549a5498c5e519a to your computer and use it in GitHub Desktop.

Select an option

Save nmcb/fcd25ea17b44b1dcc549a5498c5e519a to your computer and use it in GitHub Desktop.

On denotational and implied semantics -- ScalaUA 2019 [1]

Q: Why on GitHubGist ? [2]

A: It's a good tool to make the complexities of our own makings eventually consistent.

Edsger Wybe Dijkstra, 1930 - 2002

  • Educated Theoretical Physicist - Deeply Disciplined

    • Late 50s started working for the CWI in Amsterdam
    • Algol 68, GOTO considered harmful, Structured Programming.
  • Convinced by his Boss that a new Science of Computing was required.

    • Marriage required 'profession'
    • Became First Dutch Programmer
    • EWDs, 1962 - 2002 - Posted, Carbon Copied, Shared.
    • Writing versus Talking
  • 2001 colleague, who was Dijkstra's student in 1997, Ron

    • An exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
  • Turing Award lecture, 1972

    • Programming == Mathematics
    • Carl Hewitt: Dijkstra missed the "assignment operator" as being harmful
    • 1968 Software Crisis
      • Central Challenge: Maintain intellectual control over the complexities of our own makings.
      • How not to make a mess of it.

Observation over Participation

  • Age distribution of the audience ???

    • Born in a small town in Gouda, the Netherlands, 1971
    • Calvinist culture, feel good by disallowing pleasures
    • Didn't talk much first 2 decades of my life
    • Nerd, uncool 1980s, Bullying, Open Eyed
  • Elementary School => Distrust Groups, Distrust attention

    • Spit in sandwich => Still eating it.
    • Bullies asses authority => Kick in bud => Following commands against own interest.
    • Long term obsession with:
      • What is human action ???
      • Why do we act against our own interests ??? => Basically what I tell you is: I don't like you very much.
  • @ 12 learned to program, father worked in administration, CoC presentation.

    • Bought commodore 64 (cost a month salary): 1 MHz processor, 64k RAM, attached to analogue TV.
    • School - Punishment via Long Divisions, earned money
    • @ 16, IBM 286, HD 20 Mb, small administrative program in VB.
      • 1 week => 2 x my Fathers monthly salary
      • Proudly told him => Flash of jealousy in his eyes

System Engineering

  • @ 24 studied Electrical Engineering, TUD, learned to fight Complexity with Mathematics.

    • EE is a character building education. => Applied Physics
  • E.g. 7400 IC range, ANDs, ORs, XORs => Composition

    • Quality of those physical "components" !!!
    • Quality of the documentation of them !!!
    • We maintain intellectual control over the complexities of our own makings. => Nowhere in CS, over the last 25 years, I've seen that quality being matched ... yet ???
  • Friend, working in France, small EE company - customers are Intel, Phillips and Samsung

    • Their sole product is an image of "a silicon corner" !!!
    • High frequencies, electron waves bounce back.
    • Properties of this success => focus on the smallest problem of your abstract composition.
  • I majored in chip design

    • Compiling hardware description languages of a system in code to images - projected onto silicon.
    • Interested in compilers, interested in Software that creates Software.
      • Term Software originated as a joke => Nobody understood what Software actually was => Posit that we still don't understand what Software is.

Software is Eating the World

  • Human individual understanding is finite.

    • The Tower of layered abstractions on Physics yielding Software at the top is too_large.
    • I posit that nobody understands what we are doing when we create Software.
  • Last 35 years spend all_my_time on understanding what Software is.

    • Literally nothing more important: relations, family, health, status.
  • I don't claim any authority => I do claim the authority to choose my authorities.

    • I have nothing to give, and nothing to gain, other than repeating your understanding. => Turing & Church - Untyped Lambda Calculus (my best model to understand Software)
    1. Abstraction => Pulling something known out of something unknown.
    2. Introduction => Attaching a name to that something.
    3. Application => Applying something known to a composition of abstractions.
  • Where are we now in the realm of Software ?

    • Are we maintaining intellectual control over the complexities of our own makings ???
  • No !!!

    • We have millions of developers in Industry allowing bug ridden shitty code into production.
    • We are creating a world where we are surrounded by machines that scream for our attention.
    • We pay for that world by giving up our autonomy, our privacy, our intimacy, our humanity.
    • And we already crossed the threshold ... I believe it is too late to clean up the mess.

No Solution

  • But I would like to end with three unpopular opinions, especially in an environment of programmers:

    1. Premature application is the root of all evil.
    2. Isn't it time that we start treating Software contributors as part of the problem instead the solution.
    3. Software development doesn't scale [2] in human effort.

[1] https://www.youtube.com/watch?v=xOaWxrCxD6g

[2] https://gist.github.com/nmcb/fcd25ea17b44b1dcc549a5498c5e519a

[3] Scales evolutionary as a universal minimum and non-constructible (called 0) value of the bottom type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment