from creationism to evolutionism
play

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


  1. Tools for Polytheism Components: fi les, (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

  2. Polytheism with Devils Alternate groups of godly antagonists (crackers) Personalities of a schizophrenic God (mental disorder) 70

  3. Tools for Polytheism with Devils Passwords, Access Rights, Backups, Checks. Errata, Pages intentionally left blank. 71

  4. 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

  5. A Third Story To improve on Intelligent Design, we introduce our third story: 73

  6. 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 e ffi ciency. 74

  7. 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 e ff ect, but Nonsense is a fi rst-order protagonist defect. 75

  8. 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

  9. 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

  10. 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

  11. The Unintelligent Design Story The untold story behind much software engineering Ever present but never made so crudely explicit 79

  12. 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 su ff ers from mental disabilities: impatience, blindness, biases, false beliefs, neuroses, etc. 80

  13. Upsides from Unintelligent Design No shortage of imaginable prosthetic devices to cope with Godly disabilities. 81

  14. 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

  15. Tools from Lamarckism File versioning, project revision control, con fi guration management Di ff s, Patches, Merges 83

  16. Lamarcking the Devil Out Review changes , not the whole code base everytime. Incremental building and testing. 84

  17. The Lamarckism Mixin Now an accepted part of all non-trivial software development. Doesn’t include any proper explanation of how change happens. A Change in Perspective that suggests new stories about the Evolution of Software. 85

  18. 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

  19. 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

  20. 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 fi tness function. 88

  21. Supernatural Selection Concepts Declarative programming: specify goals, not means Algorithms: heuristic search Prototyping: Rapid Development Method: experiment to quickly fi lter ideas 89

  22. Supernaturally Selecting the Devil Away Formal speci fi cation of software intent Formal veri fi cation of suspicious software 90

  23. Polytheist Supernatural Selection Many Gods Cooperate towards the selection Software modules: separate interface from implementation Forums for developer communities 91

  24. Polytheist Supernatural Filtering Some Devils play against positive selection Software modules: monitor accesses, restrict capabilities Moderate Forums 92

  25. The Supernatural Selection Story Supernatural Selection has traction in loose developer communities Culminates with the First Cybernetics 93

  26. First Cybernetics Declarative programming Explicit knowledge representations Expert systems to solve complex problems 94

  27. 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

  28. Supernatural Selection Downsides Programmer-God intelligence relegated to the metalevel 96

  29. 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 fi fth story: 97

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

  31. 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 fi tness function, not understand it. 99

  32. 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

More recommend