Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Messages from Perl id:aereal Saturday, August 18, 12
Slide 2
Slide 2 text
id:aereal[୭?] aereal aereal aereal Saturday, August 18, 12
Slide 3
Slide 3 text
Saturday, August 18, 12
Slide 4
Slide 4 text
Saturday, August 18, 12
Slide 5
Slide 5 text
Ruby Perl JavaScript Saturday, August 18, 12
Slide 6
Slide 6 text
I/O Saturday, August 18, 12
Slide 7
Slide 7 text
I/O Saturday, August 18, 12
Slide 8
Slide 8 text
Io http://iolanguage.com/ Saturday, August 18, 12
Slide 9
Slide 9 text
ActionScript C++ PHP ALGOL Fortran COBOL Java C# Objective-C Pascal Haskell Prolog Modula-2 Brainfxxk R Scala Groovy Lua ML Smalltalk OCaml Go Saturday, August 18, 12
Slide 10
Slide 10 text
$a <=> $b Saturday, August 18, 12
Slide 11
Slide 11 text
Object-oriented Programming Saturday, August 18, 12
Slide 12
Slide 12 text
OOP? messaging polymorphism encapsulation Saturday, August 18, 12
Slide 13
Slide 13 text
Implementations Simple Expensive Saturday, August 18, 12
Slide 14
Slide 14 text
Expensive impl. (1) First-class class and objects Coupling tightly Saturday, August 18, 12
Slide 15
Slide 15 text
Expensive impl. (2) Ruby Java Saturday, August 18, 12
Slide 16
Slide 16 text
class Car # ... end Saturday, August 18, 12
Slide 17
Slide 17 text
Simple impl. (1) Use Dictionary-like data structure Coupling loosely Saturday, August 18, 12
Slide 18
Slide 18 text
Simple impl. (2) JavaScript Perl Saturday, August 18, 12
Slide 19
Slide 19 text
package Car; sub new { my ($class) = @_; bless +{}, $class; } 1; Saturday, August 18, 12
Slide 20
Slide 20 text
Dynamic dispatch Saturday, August 18, 12
Slide 21
Slide 21 text
Perl Saturday, August 18, 12
Slide 22
Slide 22 text
package Car; sub run { my ($self) = @_; print “run\n”; } Saturday, August 18, 12
Slide 23
Slide 23 text
my $car = Car->new; run $car; Saturday, August 18, 12
Slide 24
Slide 24 text
Indirect object syntax Saturday, August 18, 12
Slide 25
Slide 25 text
Implicitly take arguments Perl Python Saturday, August 18, 12
Slide 26
Slide 26 text
Ruby Saturday, August 18, 12
Slide 27
Slide 27 text
class Car def run puts “run” end end Saturday, August 18, 12
Slide 28
Slide 28 text
car = Car.new car.send(“run”) Saturday, August 18, 12
Slide 29
Slide 29 text
run = car.method(“run”) run.call Saturday, August 18, 12
Slide 30
Slide 30 text
#receiver -> object #owner -> class Method#.* Saturday, August 18, 12
Slide 31
Slide 31 text
Method instances know receiver Saturday, August 18, 12
Slide 32
Slide 32 text
Conclusions Many ‘Objects’ Implementations are constraints You should be multi-lingual Saturday, August 18, 12
Slide 33
Slide 33 text
͓͠·͍ Saturday, August 18, 12