Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Messages from Perl
Search
aereal
August 18, 2012
Programming
1
170
Messages from Perl
aereal
August 18, 2012
Tweet
Share
More Decks by aereal
See All by aereal
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
5.2k
How to send distibuted traces to Datadog using build own OpenTelemetry-Lambda distribution
aereal
3
290
好きな技術《コト》で、 生きていく技術 / life with what you like
aereal
5
4.2k
qron: Cloud Native Cron Alternativeの今
aereal
2
2.8k
自動作曲入門 / introduction to programatic music composition
aereal
1
530k
はてなブログ タグとCDK / The epic of AWS CDK and Hatena Blog Tag
aereal
2
200k
はてなブログ タグの技術選択 / The technical details of Hatena Blog Tag
aereal
3
200k
ブログサービスのHTTPS化を支えたAWSで作るピタゴラスイッチ / The construction of large scale TLS certificates management system with AWS
aereal
3
400k
AWSではてなブログの常時HTTPS配信をバーンとやる話 / The Epic of migration from HTTP to HTTPS on Hatena Blog with AWS
aereal
14
18k
Other Decks in Programming
See All in Programming
AIでLINEスタンプを作ってみた
eycjur
1
230
速いWebフレームワークを作る
yusukebe
5
1.7k
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
500
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
240
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
450
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
140
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
310
Testing Trophyは叫ばない
toms74209200
0
880
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
530
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Fireside Chat
paigeccino
39
3.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Balancing Empowerment & Direction
lara
3
620
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Transcript
Messages from Perl id:aereal Saturday, August 18, 12
id:aereal[୭?] aereal aereal aereal Saturday, August 18, 12
Saturday, August 18, 12
Saturday, August 18, 12
Ruby Perl JavaScript Saturday, August 18, 12
I/O Saturday, August 18, 12
I/O Saturday, August 18, 12
Io http://iolanguage.com/ Saturday, August 18, 12
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
$a <=> $b Saturday, August 18, 12
Object-oriented Programming Saturday, August 18, 12
OOP? messaging polymorphism encapsulation Saturday, August 18, 12
Implementations Simple Expensive Saturday, August 18, 12
Expensive impl. (1) First-class class and objects Coupling tightly Saturday,
August 18, 12
Expensive impl. (2) Ruby Java Saturday, August 18, 12
class Car # ... end Saturday, August 18, 12
Simple impl. (1) Use Dictionary-like data structure Coupling loosely Saturday,
August 18, 12
Simple impl. (2) JavaScript Perl Saturday, August 18, 12
package Car; sub new { my ($class) = @_; bless
+{}, $class; } 1; Saturday, August 18, 12
Dynamic dispatch Saturday, August 18, 12
Perl Saturday, August 18, 12
package Car; sub run { my ($self) = @_; print
“run\n”; } Saturday, August 18, 12
my $car = Car->new; run $car; Saturday, August 18, 12
Indirect object syntax Saturday, August 18, 12
Implicitly take arguments Perl Python Saturday, August 18, 12
Ruby Saturday, August 18, 12
class Car def run puts “run” end end Saturday, August
18, 12
car = Car.new car.send(“run”) Saturday, August 18, 12
run = car.method(“run”) run.call Saturday, August 18, 12
#receiver -> object #owner -> class Method#.* Saturday, August 18,
12
Method instances know receiver Saturday, August 18, 12
Conclusions Many ‘Objects’ Implementations are constraints You should be multi-lingual
Saturday, August 18, 12
͓͠·͍ Saturday, August 18, 12