Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Adopting Functional

Kresten Krab Thorup
September 15, 2012
190

Adopting Functional

Keynote for the CUFP conference 2012 in Copenhagen by Kresten Krab Thorup.

Kresten Krab Thorup

September 15, 2012
Tweet

Transcript

  1. “...each Smalltalk object is a recursion on the entire possibilities

    of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network.” Alan Kay, HOPL 1993
  2.  *# (%# * ()* % * &(%(# ) +(

     ""+)*(*) $!  $ % * method method method method data  /%+4, ,( *!" $/ !$ % +"* &(%(##$ &(%"# *4) (%+&) % +$*%$) ** -%(! %$  &(*+"( !$ % *1#&"* 2%  *%($* &(%(##$ #!) *) +$*%$ (%+&) .&"*  (%+& (*( *$ *) %#&%$$*)  %$"/ -/ *% $ % *4) * * / %#$$ %* )** $ ,%( $  )$" +$* $ % * %# (""/ ) (*( *$ * )+# % *) &(*) $ % * )  !$ % )")+ %,(  )& +$*%$" ( * $ &"/  +""" #%+"( (%" !&  *%($* *(#$%"%/ ,() (%# "$+ *% "  $)* % % *%($* &(%(##$ ) *% %#$ )**  *1$  "," +$* $ # $ *% , * "$+ )+&&% $  * )*(+*+( ** )(,) *%) +$*%$)  +$*%$) ( ") % *) * )*(+*+( ( *) "# %!"  #*%)  *# (%# * ()* % * &(%(# ) +(  ""+)*(*) $!  $ % * method method method method data  /%+4, ,( *!" $/ !$ % +"* &(%(##$ &(%"# (%+&) % +$*%$) ** -%(! %$  &(*+"( !$ % *1#&"  *%($* &(%(##$ #!) *) +$*%$ (%+&) .&" *1$  "," +$* $ # $  * )*(+*+( ** )(,) *% ") % *) * )*(+*+( ( *) "  *# (%# * ()* % * &(% $!  $ % * method method method method data  /%+4, ,( *!" $/ !$ %  (%+&) % +$*%$) ** -%(! %$  &  *%($* &(%(##$ #! (%+& (*( *$ *) %#&%$$*)  / %#$$ %* )** $ , (""/ ) (*( *$ * )+# % *) & %,(  )& +$*%$" ( * $
  3. “...each Smalltalk object is a recursion on the entire possibilities

    of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network.”
  4. “...each Erlang process is a recursion on the entire possibilities

    of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network.”
  5. Interactive Coordination Messaging + processes Want to understand! Concurrency Parallelism

    Functional Computation Utilize hardware Want to NOT understand