From Creationism to Evolutionism Logogonies and Anthropodicies - - PowerPoint PPT Presentation

from creationism to evolutionism
SMART_READER_LITE
LIVE PREVIEW

From Creationism to Evolutionism Logogonies and Anthropodicies - - PowerPoint PPT Presentation

From Creationism to Evolutionism Logogonies and Anthropodicies Franois-Ren Rideau, TUNES Project LispNYC, 2014-10-14 http://fare.tunes.org/computing/evo2014-slides.pdf 1 The Take Home Points Stories have Consequences 2 The Take Home


slide-1
SLIDE 1

From Creationism to Evolutionism

Logogonies and Anthropodicies François-René Rideau, TUNES Project LispNYC, 2014-10-14 http://fare.tunes.org/computing/evo2014-slides.pdf

1

slide-2
SLIDE 2

The Take Home Points

Stories have Consequences

2

slide-3
SLIDE 3

The Take Home Points

Stories have Consequences Greatest Stories: ?

3

slide-4
SLIDE 4

The Take Home Points

Stories have Consequences Greatest Stories: Origins

4

slide-5
SLIDE 5

The Take Home Points

Stories have Consequences Greatest Stories: Origins Improve your stories!

5

slide-6
SLIDE 6

Plan

Stories have Consequences Greatest Stories: Origins Improve your stories!

6

slide-7
SLIDE 7
  • I. Stories have Consequences

7

slide-8
SLIDE 8

Stories

Best way humans communicate understanding

8

slide-9
SLIDE 9

Stories have

Best way humans communicate understanding Humans Act based on (mis)understanding

9

slide-10
SLIDE 10

Stories have Consequences

Best way humans communicate understanding Humans Act based on (mis)understanding Actions have Consequences

10

slide-11
SLIDE 11

Better Stories, Better Languages

What Would Alyssa P. Hacker Do? See this previous talk: http://fare.tunes.org/computing/bal2009.pdf

11

slide-12
SLIDE 12
  • II. The Greatest Stories:

12

slide-13
SLIDE 13
  • II. The Greatest Stories: Origins

13

slide-14
SLIDE 14
  • II. The Greatest Stories: Origins

Superhero: Origins

14

slide-15
SLIDE 15
  • II. The Greatest Stories: Origins

Superhero: Origins, rebooted

15

slide-16
SLIDE 16
  • II. The Greatest Stories: Origins

Superhero: Origins, rebooted Universe: Cosmogony

16

slide-17
SLIDE 17
  • II. The Greatest Stories: Origins

Superhero: Origins, rebooted Universe: Cosmogony Software: Logogony

17

slide-18
SLIDE 18

Logogony

18

slide-19
SLIDE 19

Logogony

Where does Software come from?

19

slide-20
SLIDE 20

Logogony

Where does Software come from? Uh, isn’t that obvious?

20

slide-21
SLIDE 21

Logogony

Where does Software come from? Uh, isn’t that obvious? The Programmer wrote it!

21

slide-22
SLIDE 22

Creationism

22

slide-23
SLIDE 23

Creationism

Belief that Software was created by a Programmer

23

slide-24
SLIDE 24

Creationism

Belief that Software was created by a Programmer I am NOT discussing Cosmogony

24

slide-25
SLIDE 25

Creationism

Belief that Software was created by a Programmer

25

slide-26
SLIDE 26

From Creationism to Evolutionism in Programming

From Über-God to Underdog The Programmer's Story

26

slide-27
SLIDE 27

Stories

Stories: Way humans understand the World

27

slide-28
SLIDE 28

The Take Home Points

Programming tools imply a story Stories we tell inspire corresponding tools Past progress can be told in terms of such stories Future progress can be imagined likewise Making the stories explicit is a great meta-tool... ... and it’s fun!

28

slide-29
SLIDE 29

Plan of the Talk

Tell stories Argue Relevance Discuss Future

29

slide-30
SLIDE 30

The Stories

Let’s start with the beginning, the simplest, most

  • bvious story to explain how programs come into

existence:

30

slide-31
SLIDE 31

The Stories

Let’s start with the beginning, the simplest, most

  • bvious story to explain how programs come into

existence: Creationism!

31

slide-32
SLIDE 32

First Story: Creationism

In the beginning the Machine was without form, and void... ...then the Programmer zapped Software into the Machine... ...and the Software was.

32

slide-33
SLIDE 33

Creationist Assumptions

The Programmer is a God above and beyond the Machine Programmer-God has perfect understanding of the Program Real software is a projection

  • f His perfect platonic idea

33

slide-34
SLIDE 34

Creationist Tools

Paper & pen to write down the perfect program A switchboard to enter the perfect program.

34

slide-35
SLIDE 35

The Creationist Story

The basis for many a course in "Computer Science" Works great in small exercises...

35

slide-36
SLIDE 36

The Creationist Story

The basis for many a course in "Computer Science" Works great in small exercises... ... at least for a few clever students.

36

slide-37
SLIDE 37

Flaws in the Story

Software isn’t perfect Plenty of "bugs" happen Perfect ideas have imperfect implementation

37

slide-38
SLIDE 38

Flaws in the Story

Software isn’t perfect Plenty of "bugs" happen Perfect ideas have imperfect implementation We need to account for them in our story

38

slide-39
SLIDE 39

Flaws in the Story

And the simplest explanation is...

39

slide-40
SLIDE 40

The Devil

Some adverse entity introduces bugs, errors, mistakes, noise in the channel between God and Machine. To be blamed for imperfections in the Program.

40

slide-41
SLIDE 41

Deeds of the Devil

"Cosmic Rays", random Memory Corruption Errors when the program is input into the Machine Discrepancies b/w perfect idea and actual program

41

slide-42
SLIDE 42

Weapons Against the Devil

Blinkenlights to inspect the contents of memory Punch cards to record program communications Adhesive Tape to fix punch cards Assembler labels vs moving binary addresses

42

slide-43
SLIDE 43

Generalizing The Devil

An antagonist force can spice up any story (game developers in the audience won’t disagree) The devil is a good story mixin

43

slide-44
SLIDE 44

Anthropodicy

theodicy (Leibniz 1710): Trial of God Why does evil exist? What does that tell us about God?

44

slide-45
SLIDE 45

Anthropodicy

theodicy (Leibniz 1710): Trial of God Why does evil exist? What does that tell us about God? anthropodicy (Rideau 2014): Trial of Man Why do bugs exist? What does that tell us about Man?

45

slide-46
SLIDE 46

A Better Story Is Possible

Creationism is simple and obvious, but quickly shows its limits. And so... we may improve on it with our second story:

46

slide-47
SLIDE 47

Layered Creation

On the first day, God separated requirements from bugs On the second day, God drew a flow chart On the third day, God divided the program into routines

47

slide-48
SLIDE 48

Layered Creation (Continued)

On the fourth day, God wrote the program’s kernel On the fifth day, God coded the application On the sixth day, God finished the interface

48

slide-49
SLIDE 49

Layered Creation Assumptions

God still has a perfect eternal Program idea, but The Machine isn’t perfect. Programming the Machine isn’t instantaneous. And so...

49

slide-50
SLIDE 50

Layered Creation Assumptions

God still has a perfect eternal Program idea, but The Machine isn’t perfect. Programming the Machine isn’t instantaneous. And so... He does it in layers. Neat hierarchical layers.

50

slide-51
SLIDE 51

Layered Creation Concepts

Method: Top-down design Architecture: layered systems Prototyping: Flow chart diagrams Process: The waterfall process

51

slide-52
SLIDE 52

Layered Creation Automation

Algorithms: Divide and Conquer Layered languages: FORmula TRANslators

52

slide-53
SLIDE 53

Layered Creation with a Devil

The devil mixin applies. At each step, the devil introduces bugs. Even at the end of the process, there are still bugs. And so...

53

slide-54
SLIDE 54

Layered Creation with a Devil

The devil mixin applies. At each step, the devil introduces bugs. Even at the end of the process, there are still bugs. And so... Creation is re-iterated until bugs are gone.

54

slide-55
SLIDE 55

Iterated Creation

At first, God wrote a prototype: unicellular software Later, God released version 1 beta: fish, etc. Eventually, God released v1: dinosaur software Then God released v2, v3, etc.: layers of fossils At last God has now produced a stable version. Unless He’s working on next patch release.

55

slide-56
SLIDE 56

Iterated Creation aka...

As you no doubt noticed, this Layered Creation with a Devil,

  • r Iterated Creation,

is best known as...

56

slide-57
SLIDE 57

Iterated Creation aka...

As you no doubt noticed, this Layered Creation with a Devil,

  • r Iterated Creation,

is best known as... ... Intelligent Design!

57

slide-58
SLIDE 58

Intelligent Design (Retold)

God first creates simple software God improves with more elaborate releases Complex structures bootstrapped from simple ones Previous creations are discarded Parts remain as fossils

58

slide-59
SLIDE 59

Intelligent Design Assumptions

God is essentially Intelligent He designs software along hierarchical organization Design however is neither instantaneous nor perfect Iterations improve the design

59

slide-60
SLIDE 60

Intelligent Design Concepts

Method: Software Refinement Architecture: nested layers Prototyping: Modelling Tools Process: Design iterations

60

slide-61
SLIDE 61

Intelligent Design Automation

Scaffolding: Assemblers, Compilers, Compiler-Compilers, Build Systems... Service Layers: Kernels, Libraries, Daemons...

61

slide-62
SLIDE 62

Weapons Against The Devil

Loggers, tracers and steppers help locate bugs Editors add features and remove bugs (line-based) A bit of reviewing and testing (at the end of each iteration)

62

slide-63
SLIDE 63

The Intelligent Design Story

Official story amongst software professionals, probably because it boosts their ego: they feel intelligent and in control. Scales to largish programs... ... for well-organized teams of clever people.

63

slide-64
SLIDE 64

Upsides from Intelligent Design

Intelligent Design can handle greater programs Better understanding breeds better tools Tools are both mechanical and social

64

slide-65
SLIDE 65

Downer from Intelligent Design

The Programmer-God is less of an Über-God Better understanding also breeds Humility

65

slide-66
SLIDE 66

Downer from Intelligent Design

The Programmer-God is less of an Über-God Better understanding also breeds Humility The same will go for all of my stories

66

slide-67
SLIDE 67

Story Mixin: Polytheism

Multiple Gods cooperate in creating Software. Each has his own intents, actions, specialties.

67

slide-68
SLIDE 68

Interpretations of Polytheism

Multiple Gods Multiple roles of a same God God changes his mind with time

68

slide-69
SLIDE 69

Tools for Polytheism

Components: files, (hierarchical) directories Time-sharing: multiple users & processes Communication protocols b/w multiple machines Comments, docs convey intent from God to God Training, conferences, journals.

69

slide-70
SLIDE 70

Polytheism with Devils

Alternate groups of godly antagonists (crackers) Personalities of a schizophrenic God (mental disorder)

70

slide-71
SLIDE 71

Tools for Polytheism with Devils

Passwords, Access Rights, Backups, Checks. Errata, Pages intentionally left blank.

71

slide-72
SLIDE 72

A Third Story

Sooner or later Intelligent Design falls short. The end design of most software is just really bad. The development process is quite wasteful. The initial idea itself is often plain stupid. And so...

72

slide-73
SLIDE 73

A Third Story

To improve on Intelligent Design, we introduce our third story:

73

slide-74
SLIDE 74

Unintelligent Design

The Programmer-God iterates layered designs, but His iterated layers include lots of dead-ends; further designs often include regressions. His creations lack either elegance or efficiency.

74

slide-75
SLIDE 75

Unintelligent Design Assumptions

Not only is the program implementation imperfect, God doesn’t have a perfect idea of it to begin with. Neither ultimate goal nor means are clear to Him. Godly intelligence is a scarce resource. Errors might be a secondary antagonist effect, but Nonsense is a first-order protagonist defect.

75

slide-76
SLIDE 76

Unintelligent Design Concepts

Interactivity, to bounce ideas: command line, REPL, IDE Filtering, to eliminate nonsense: systematic sanity checks Usability, to avoid blunders: idiot-proof interfaces

76

slide-77
SLIDE 77

Unintelligent Design Automation

Online manuals, Interactive help Precise diagnostic from compilers Shallow checking: syntax errors, runtime assertions Simple semantic checking: Types, Contracts Deeper semantic checking: Model checking

77

slide-78
SLIDE 78

Unintelligent Design with Mixins

Polytheism: protect gods from each other’s failures, Isolate programs in separate processes Enforce checks and contracts within and between. Devil: testing becomes a systematic need; Happily, the Devil is just as stupid as God, and may be buried under heavy security features.

78

slide-79
SLIDE 79

The Unintelligent Design Story

The untold story behind much software engineering Ever present but never made so crudely explicit

79

slide-80
SLIDE 80

Downer from Unintelligent Design

The Programmer-God loses his respectability. From omniscient, he becomes stupid and ignorant: partial intelligence, narrow shallow mind, limited focus Worse, he suffers from mental disabilities: impatience, blindness, biases, false beliefs, neuroses, etc.

80

slide-81
SLIDE 81

Upsides from Unintelligent Design

No shortage of imaginable prosthetic devices to cope with Godly disabilities.

81

slide-82
SLIDE 82

Story Mixin: Lamarckism

Whichever way Software is or isn’t designed, Software Lamarckism focuses on Code change between iterations of software rather than successive states of the code.

82

slide-83
SLIDE 83

Tools from Lamarckism

File versioning, project revision control, configuration management Diffs, Patches, Merges

83

slide-84
SLIDE 84

Lamarcking the Devil Out

Review changes, not the whole code base everytime. Incremental building and testing.

84

slide-85
SLIDE 85

The Lamarckism Mixin

Now an accepted part of all non-trivial software development. Doesn’t include any proper explanation

  • f how change happens.

A Change in Perspective that suggests new stories about the Evolution of Software.

85

slide-86
SLIDE 86

Evolutionism

Darwin’s famous theory applies to Software. But before we tackle his Natural Selection, let’s focus on simpler views of programs evolve And so... ... our fourth Story:

86

slide-87
SLIDE 87

Supernatural Selection

Changes made only demand limited understanding Some changes prove good, some prove bad The Programmer-God carefully selects the good His Supernatural Selection impresses a direction upon Evolution: Progress, at a steady pace.

87

slide-88
SLIDE 88

Supernatural Selection Assumptions

Programs may be deeper than God can fathom, but God can intelligently judge good from bad, promote the good and winnow the bad. God designs the fitness function.

88

slide-89
SLIDE 89

Supernatural Selection Concepts

Declarative programming: specify goals, not means Algorithms: heuristic search Prototyping: Rapid Development Method: experiment to quickly filter ideas

89

slide-90
SLIDE 90

Supernaturally Selecting the Devil Away

Formal specification of software intent Formal verification of suspicious software

90

slide-91
SLIDE 91

Polytheist Supernatural Selection

Many Gods Cooperate towards the selection Software modules: separate interface from implementation Forums for developer communities

91

slide-92
SLIDE 92

Polytheist Supernatural Filtering

Some Devils play against positive selection Software modules: monitor accesses, restrict capabilities Moderate Forums

92

slide-93
SLIDE 93

The Supernatural Selection Story

Supernatural Selection has traction in loose developer communities Culminates with the First Cybernetics

93

slide-94
SLIDE 94

First Cybernetics

Declarative programming Explicit knowledge representations Expert systems to solve complex problems

94

slide-95
SLIDE 95

Supernatural Selection Upsides

Combines understanding of natural dynamics of software itself with faith in the ultimate power of an intelligent and purposeful Programmer-God.

95

slide-96
SLIDE 96

Supernatural Selection Downsides

Programmer-God intelligence relegated to the metalevel

96

slide-97
SLIDE 97

Supernatural Selection Issue

But remember: the Programmer-God isn’t that intelligent! Even distinguishing good and evil is beyond Him. And so... just like Unintelligent Design followed Intelligent Design, we introduce our fifth story:

97

slide-98
SLIDE 98

Teleological Evolution

God may not master how Evolution works, he may lack omniscience or clairvoyance, but He intuitively guides Evolution towards Progress. The fittest programs survive, others die out.

98

slide-99
SLIDE 99

Teleological Evolution Assumptions

God possesses something, some unspeakable Quality, some ultimate meaning, some soul. The direction of progress may not be obvious beforehand, but progress is clearly recognizable after the fact. God can compute the fitness function, not understand it.

99

slide-100
SLIDE 100

Teleological Evolution Concepts

Randomized algorithms. Simulations. Statistical analysis. Probabilistic proofs. Programs fast enough in practice, whatever the theory says. Weak structures that compute, despite lack of programmer understanding.

100

slide-101
SLIDE 101

Second Wave of Cybernetics

Getting inspiration from existing life forms Genetic algorithms, connectionist neural networks Knowledge without an explicit representation Probabilistically Approximately Correct learning

101

slide-102
SLIDE 102

Polytheist Teleological Evolution

Communities gather not just developers, but also users. Distributed knowledge. Wisdom of crowds.

102

slide-103
SLIDE 103

Eventual Victory against the Devil

Regression test suites. Cryptographic checksums, signatures, zero-knowledge proofs. Distributed debugging by users. Users will eventually favor the better software.

103

slide-104
SLIDE 104

The Teleological Evolution Story

It’s Yesterday’s Next Big Thing.

104

slide-105
SLIDE 105

Teleological Evolution Upsides

Allows for solutions where problems overcome understanding Can create huge software distributions

105

slide-106
SLIDE 106

Teleological Evolution Downsides

Reasonable endeavor, while recognized, is de-emphasized. What remains when reason is gone is plain mysticism. And so... we can now discuss what Darwinism really is in our sixth story:

106

slide-107
SLIDE 107

Natural Selection

There is no God above and beyond the Machine, no supernatural reason or intent. Survival is its own tautological fitness function. Random haps and mishaps modify programs. In each niche memes survive that best acquire resources. Systematic statistical biases tautologically favor some memes above others.

107

slide-108
SLIDE 108

Natural Selection Assumptions

A tautology is something that is tautological. What survives and reproduces, survives and reproduces. What doesn’t survive and doesn’t reproduce, disappears. All kinds of resources are limited and competed for.

108

slide-109
SLIDE 109

Reality Strikes

Programmers are at the same level as Machines Natural Selection works at the level of human behavior Human productive time is the ultimate scarce resource Sure you're unique and different...

109

slide-110
SLIDE 110

Reality Strikes

Programmers are at the same level as Machines Natural Selection works at the level of human behavior Human productive time is the ultimate scarce resource Sure you're unique and different... Just like everyone else in this machine-eats-machine world.

110

slide-111
SLIDE 111

Polyatheism

Acquisition of programming resources matters most: time and focus of proficient programmers. Not just (un)speakable technical quality matters. Economic and social considerations trump technology. Legal and managerial aspects matter. The market is ultimately driven by economic costs.

111

slide-112
SLIDE 112

Natural Selection Concepts

Self-sustaining systems, evolving and competing. Hardware, software and wetware survive as ecosystems, forking and merging traditions of humans and machines. Systemantics: All big systems are born small, and keep working at all time while they grow Complexity costs: Keep it as simple as possible: ... But no simpler!

112

slide-113
SLIDE 113

The Devil is Human, too

Intentful opposing forces are human. Counter-measures: trust networks, economic or legal accountability. Race between noise and signal, noise reduction by competition b/w moderated forums.

113

slide-114
SLIDE 114

Third Wave of Cybernetics

Re-create artificial life by unguided evolution. Emerging behavior from interacting software agents.

114

slide-115
SLIDE 115

The Natural Selection Story

Sometimes mentioned, always hard to swallow. Most actually go by degenerate stories as above.

115

slide-116
SLIDE 116

Natural Selection Upsides

Down from their pedestal, haughty programmers can wrestle with muddy reality. Though no direct solution is offered, fake solutions are dispelled: illusions, vain obsessions, unearned authorities. Life is the ultimate judge, accept no substitutes.

116

slide-117
SLIDE 117

Natural Selection Downsides

If God exists, then ever since He created the world, He has just been relaxing, and enjoying the show. Evolution isn’t guided by God, it’s God’s Spectator Sport. Are you feeling small and alone in a cold wild world yet? And so...

  • ur seventh story will bring you back some warmth:

117

slide-118
SLIDE 118

Perspective Change: Inside Evolution

If some God is observing, it's not you. You’re no observer outside the fray. You’re an animal thrown in the jungle.

118

slide-119
SLIDE 119

Inside Evolution Concepts

Focusing on available opportunities What now will make you most productive? You can sell but an exclusive resource — Starting with your own time, talent, trustworthiness.

119

slide-120
SLIDE 120

Inside Evolution Tools

Power of incentives: make cooperation mutually profitable Division of labor, specialization of tasks. Competing forms of software licenses, service agreements.

120

slide-121
SLIDE 121

Inside Evolution Enemies

Frauds will waste your time, spam you, scam you, etc. You must recognize friend from foe, signal from noise. Either keep on top of the race, or delegate ruthlessly.

121

slide-122
SLIDE 122

Software, Mortal vs Immortal

Centralization concentrates risk, makes it lethal Proprietary software is on a suspended death

  • sentence. At any time, any surviving Proprietary

Software is superior. But Free Software survives long after the Proprietary one died. Should you avoid Proprietary Software? Maybe not, but know the price.

122

slide-123
SLIDE 123

The Inside Evolution Story

Adopted by Upstart Entrepreneurs — The Underdog. Spokesperson: Paul Graham?

123

slide-124
SLIDE 124

Inside Evolution Downsides

Certainly the game is rigged. Don’t let that stop you; if you don’t bet, you can’t win. — Robert Heinlein You can’t let nature decide, you’re part of the nature.

124

slide-125
SLIDE 125

Inside Evolution Upsides

This isn’t a soulless world — there is a soul: Yours. The world isn’t full of failures — It’s full of opportunities. You’re the entrepreneur of your own life.

125

slide-126
SLIDE 126
  • III. Improve your stories!

126

slide-127
SLIDE 127

Paradigms Evolve!

From Naive Creationism to Inside view of Natural Selection, the paradigms evolve and our methods improve with them. Simpler methods are cheaper. If you can instantly create the software you need, do!

127

slide-128
SLIDE 128

Paradigms: What Relevance?

There is no such thing as philosophy-free science; there is only science whose philosophical baggage is taken on board without examination. — Daniel C. Dennett

128

slide-129
SLIDE 129

Paradigms: What Relevance?

There is no such thing as philosophy-free science; there is only science whose philosophical baggage is taken on board without examination. — Daniel C. Dennett A good story is to kill for

129

slide-130
SLIDE 130

Paradigms: What Relevance?

Discrepancy between Reality and Practice = Blind Spot Reality differing from Theory = Blind Spot you can’t identify Theory differing from Practice = Blind Spot you can identify

130

slide-131
SLIDE 131

What Next?

131

slide-132
SLIDE 132

What Next?

(plan)

132

slide-133
SLIDE 133

What Next?

Present Optimism: No Future Future Optimism: Singularity Mutation Opportunity: Bootstrapping Intelligence The Fast Lane: Internal Evolution

133

slide-134
SLIDE 134

Present Optimism: No Future

"We already know the best paradigm" Evolution is ended. We’re the perfect.

134

slide-135
SLIDE 135

Present Optimism: No Future

"We already know the best paradigm" Evolution is ended. We’re the perfect. Someday might be true, but today? Progress currently happens at breakneck rate.

135

slide-136
SLIDE 136

Future Optimism: The Singularity

"Progress follows a vertical asymptote" "AI will soon transcend these issues"

136

slide-137
SLIDE 137

Future Optimism: The Singularity

"Progress follows a vertical asymptote" "AI will soon transcend these issues" But what paradigm will the AI follow? The buck must stop somewhere.

137

slide-138
SLIDE 138

AIs can’t Escape Evolution

Survival applies to AIs too. Scarce Resources, Competition, Cooperation, Incentives... Praxeology applies to any system of intentful agents. e.g. Comparative Advantage: Humans and AIs will trade, not make war.

138

slide-139
SLIDE 139

So what?

The Future can’t be predicted. If I could tell you in detail, it’d be past, not future. But here are my best bets...

139

slide-140
SLIDE 140

Mutation Bias: Bootstrapping Intelligence

Understanding human intelligence Finite Quantum progresses Bootstrap higher expertise Evolving declarative metaprograms Programming as dialogue, not command

140

slide-141
SLIDE 141

Accelerating Change: Internal Evolution

External evolution: statically pick a meme, survive or die Internal evolution: dynamically adopt memes that survive Fast lane: gear yourself to emphasize internal evolution Avoid autism: evolve in a conversation with the world

141

slide-142
SLIDE 142

The End (for now)

Questions? Comments?

142