Slide 1

Slide 1 text

Genetic programming is waiting for better tools Rakhim Davletkaliyev

Slide 2

Slide 2 text

Genetic programming is waiting for better tools Rakhim Davletkaliyev

Slide 3

Slide 3 text

whoami codexpanse.com blog → rakhim.org twitter → @freetonik emacscast.org

Slide 4

Slide 4 text

Nature inspired solutions

Slide 5

Slide 5 text

Nature inspired computing

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

selection crossover mutation

Slide 15

Slide 15 text

Mutation in nature not perfect copying particle interference radiation etc human papillomavirus

Slide 16

Slide 16 text

Mutation in nature not perfect copying particle interference radiation etc human papillomavirus

Slide 17

Slide 17 text

problem domain a solution crossover small change a b + mutation a solution

Slide 18

Slide 18 text

math system 101010011101 crossover + mutation x = 3, y = 12, z = sin 101010011101 111110101010 101010101010 111010101010

Slide 19

Slide 19 text

Genetic programming computing environment AST crossover + mutation import x; var a = 12; modify nodes

Slide 20

Slide 20 text

Not a new idea Automatic programming
 “a euphemism for programming in a higher-level language than was then available to the programmer.” — David Parnas

Slide 21

Slide 21 text

Not a new idea Automatic programming
 “a euphemism for programming in a higher-level language than was then available to the programmer.” — David Parnas Computing Machinery and Intelligence (1950)
 “the Child Machine - simple program which can learn from rewards and punishment” — Alan Turing

Slide 22

Slide 22 text

1950 "Computing Machinery and Intelligence", Alan Turing 1980 "A Darwinian Approach to Pattern Recognition", Richard Forsyth 1988 "Non-Linear Genetic Algorithms for Solving Problems", John Koza Applications: Curve fitting, data modeling, Symbolic regression, feature selection, classification 2004 — ∞ Human-Competitive Awards ("Humies") History of genetic programming

Slide 23

Slide 23 text

Why is domain limited? • Nature's encoding is richer? • Control and error handling • Scale and computational power

Slide 24

Slide 24 text

Imagine: end-user aps with GP

Slide 25

Slide 25 text

UI/UX Performance Accessibility Language Billing

Slide 26

Slide 26 text

UI/UX Performance Accessibility Language Billing UPDATE

Slide 27

Slide 27 text

UI/UX Performance Accessibility Language Billing Automated Software Transplantation

Slide 28

Slide 28 text

UI/UX Performance Accessibility Language Billing Automated Software Transplantation

Slide 29

Slide 29 text

UI/UX Performance Accessibility Language Billing UPDATE

Slide 30

Slide 30 text

crossover

Slide 31

Slide 31 text

UI/UX Performance Accessibility Language Billing UPDATE crossover INITIAL BUILD

Slide 32

Slide 32 text

Problems 1. Code is fragile 2. Communication is fragile 3. Computing is fragile

Slide 33

Slide 33 text

1. Code is fragile

Slide 34

Slide 34 text

1. Code is fragile

Slide 35

Slide 35 text

http://colinm.org/sigbovik/

Slide 36

Slide 36 text

7 figigigg INVALID

Slide 37

Slide 37 text

Code is fragile • Engineering discipline • Optimistic: SE will improve • Intrinsic fragility / error handing • Interpreter does't really "interpret" • Ignore compilation errors

Slide 38

Slide 38 text

Which is more fragile? 1. Imperative: code → code 2. Constraints, declarative, logical: constraints → code Sketchpad, Ivan Sutherland 1963

Slide 39

Slide 39 text

Problems 1. Code is fragile 2. Communication is fragile 3. Computing is fragile it's gonna be ok

Slide 40

Slide 40 text

"Communicating with aliens"

Slide 41

Slide 41 text

"Communicating with aliens" GET / HTTP/1.1

Slide 42

Slide 42 text

Carl Hewitt actor model Alan Kay OOP Alan Turing duh Claude Shannon information theory

Slide 43

Slide 43 text

Alan Kay OOP method :( parent state

Slide 44

Slide 44 text

Alan Kay OOP

Slide 45

Slide 45 text

Alan Kay OOP negotiate negotiate no assumptions no ack local or remote?

Slide 46

Slide 46 text

Carl Hewitt actor model Alan Kay OOP Alan Turing duh Claude Shannon information theory

Slide 47

Slide 47 text

Carl Hewitt actor model ACTOR ACTOR ACTOR ACTOR

Slide 48

Slide 48 text

Carl Hewitt actor model

Slide 49

Slide 49 text

Carl Hewitt actor model

Slide 50

Slide 50 text

Problems 1. Code is fragile 2. Communication is fragile 3. Computing is fragile it's gonna be ok it's gonna be ok

Slide 51

Slide 51 text

https://rakhim.org/

Slide 52

Slide 52 text

https://rakhim.org/

Slide 53

Slide 53 text

Ferris Wheel of Software Engineering™

Slide 54

Slide 54 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas

Slide 55

Slide 55 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas Hmm, immutable data structures....

Slide 56

Slide 56 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas Hmm, functional programming...

Slide 57

Slide 57 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas It's amazing! WHEEE!!!

Slide 58

Slide 58 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas Let's do everything in the browser!

Slide 59

Slide 59 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas We need a new package manager!!!

Slide 60

Slide 60 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas SHIT SHIT SHIT!!!

Slide 61

Slide 61 text

Ferris Wheel of Software Engineering™ fundamental concepts and old ideas Oooh, higher order functions....

Slide 62

Slide 62 text

Problems 1. Code is fragile 2. Communication is fragile 3. Computing is fragile it's gonna be ok it's gonna be ok

Slide 63

Slide 63 text

Computing is fragile

Slide 64

Slide 64 text

Non-quantum scale

Slide 65

Slide 65 text

Non-quantum scale Quantum scale

Slide 66

Slide 66 text

Non-quantum scale Quantum scale

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

"I think I can safely say that nobody understands quantum mechanics." — Richard Feynman

Slide 72

Slide 72 text

"I think I can safely say that nobody understands quantum mechanics." — Richard Feynman "Hvis kvantemekanikken ikke gør dig svimmel, har du ikke forstået noget som helst". — Nils Bohr

Slide 73

Slide 73 text

Conclusions We're not starting from scratch

Slide 74

Slide 74 text

Conclusions We're not starting from scratch This is just the beginning

Slide 75

Slide 75 text

Conclusions We're not starting from scratch This is just the beginning Maybe embrace uncertainty perhaps why not I don't know maybe?..

Slide 76

Slide 76 text

We can only see a short distance ahead, but we can see plenty there that needs to be done. — Alan Turing

Slide 77

Slide 77 text

Thank you rakhim.org @freetonik