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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
aereal
August 18, 2012
Programming
170
1
Share
Messages from Perl
aereal
August 18, 2012
More Decks by aereal
See All by aereal
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
6.4k
How to send distibuted traces to Datadog using build own OpenTelemetry-Lambda distribution
aereal
3
330
好きな技術《コト》で、 生きていく技術 / life with what you like
aereal
5
5.8k
qron: Cloud Native Cron Alternativeの今
aereal
2
3.3k
自動作曲入門 / 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
19k
Other Decks in Programming
See All in Programming
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
120
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
200
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
200
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
160
Rethinking API Platform Filters
vinceamstoutz
0
11k
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.5k
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
200
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
590
Running Swift without an OS
kishikawakatsumi
0
780
Java 21/25 Virtual Threads 소개
debop
0
350
飯MCP
yusukebe
0
500
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
260
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
250
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
380
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
Automating Front-end Workflow
addyosmani
1370
200k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
It's Worth the Effort
3n
188
29k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
Why Our Code Smells
bkeepers
PRO
340
58k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
180
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