Finding happiness in Turing Completeness



Finding happiness in Turing Completeness

0 0


turing-completeness-presentation

A presentation of turing completeness, math, and hapiness

On Github keathley / turing-completeness-presentation

Finding happiness in Turing Completeness

Chris Keathley / @keathley

Welcome back

I wanted to make games

C++

Notepad

Nothing got done

"Real artists ship"

And then...

"You should really be using C++"

I don't like C++ because it's not fun

I just want to build cool games

Sound familiar?

Go / Python

Python / Ruby

Java / Ruby

Node / io.js

This is ridiculous

Computer == Human

Turing Machine

His Machine

  • A strip of tape you can write numbers on (1, 0)
  • A Tape head to read and write to the tape
  • An internal set of rules and states

Operations

  • Read input data
  • write on the current cell
  • change state
  • move left or right

_101[1]__

write 0, move left

__10[1]0_

write 0, move left

___1[0]00

write 1, move right, go to state 2

__11[0]0_

move right

_110[0]__

move right

1100[_]__

move left, go to state 3

_110[0]__

done

Deterministic

You can only have one rule for each combination and state pair

But there is a problem

Rules are built into the machine

We need a Turing machine for Turing machines

A Universal Turing Machine

Programming languages are Turing machines

Anything you can do in one language you can do in another

But there's another problem (sorta)

All Enhancements can be simulated

Which means that the Turing Machine is as powerful as it gets

Programming languages have the same limits

Powerful != Useful

Languages can be designed to fit certain needs

“I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language”
"Easy things should be easy and hard things should be possible"
"Real artists ship"
“Making money is art and working is art and good business is the best art.”

Go / Python

Python / Ruby

Java / Ruby

Node / io.js

Bullshit

Use what you love

Build sweet software

Share it with other people

Thanks

Chris Keathley / keathley.io