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
150
Messages from Perl
aereal
August 18, 2012
Tweet
Share
More Decks by aereal
See All by aereal
好きな技術《コト》で、 生きていく技術 / life with what you like
aereal
5
1.6k
qron: Cloud Native Cron Alternativeの今
aereal
2
1.5k
自動作曲入門 / introduction to programatic music composition
aereal
1
530k
はてなブログ タグとCDK / The epic of AWS CDK and Hatena Blog Tag
aereal
3
200k
はてなブログ タグの技術選択 / The technical details of Hatena Blog Tag
aereal
3
190k
ブログサービスのHTTPS化を支えたAWSで作るピタゴラスイッチ / The construction of large scale TLS certificates management system with AWS
aereal
3
390k
AWSではてなブログの常時HTTPS配信をバーンとやる話 / The Epic of migration from HTTP to HTTPS on Hatena Blog with AWS
aereal
14
17k
ScalaとPerlでMicroservices in production / Building microservices with Perl and Scala in production
aereal
0
5.2k
Scalaで自動作曲の練習 / A study of automatic composition in Scala
aereal
1
390k
Other Decks in Programming
See All in Programming
Milestoner
bkuhlmann
1
420
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
1.9k
見た目から始める生産性向上
ikumatadokoro
10
1.5k
Hanami and htmx
bkuhlmann
0
230
SIMD Parallel Programming with the Vector API
josepaumard
0
240
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
690
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.3k
Let's learn code review
riofujimon
2
620
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
190
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
6
1.3k
Sheets API使ってみた
toshi0383
2
170
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
1.1k
Featured
See All Featured
Making Projects Easy
brettharned
109
5.5k
Designing for humans not robots
tammielis
247
25k
Ruby is Unlike a Banana
tanoku
96
10k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
Web development in the modern age
philhawksworth
203
10k
Practical Orchestrator
shlominoach
183
9.7k
How to train your dragon (web standard)
notwaldorf
75
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Done Done
chrislema
178
15k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
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