Java
JavaScript
翻訳
joke

プログラマー向け英語圏オヤジギャクに対する考察

無粋ながら各ジョークのヒネリの解説を試みた

出典:https://github.com/wesbos/dad-jokes

お化けの食生活

Q: What diet did the ghost developer go on?
A: Boolean

Q: おばけの開発者はどんな食生活してた?
A: ブーリアン

お化けの鳴き声であるBooと、料理の種別に付きがちな~ian(e.g. イタリアン、アメリカン)を繋げている。
その造語とbooleanの掛け。

不満な開発者

Q: Why was the developer unhappy at their job?
A: They wanted arrays.

Q: 開発者が仕事に不満を覚えてるのはなんで?
A: 仲間がいないから。

Allies(アライ, 仲間)とarrays(アレイ, 配列)を掛けているのかな?
(コメントより)arraysとa raise(昇給)を掛けているらしい

10と'10'の違い

Q: Why did 10 get paid less than "10"?
A: There was workplace inequality.

Q: 10の給料が"10"より低いのはなんで?
A: 職場の格差ってやつ

単純に、int型とstring型の違いか

かなしい関数

Q: Why was the function sad after a successful first call?
A: It didn’t get a callback.

Q: その関数は最初の呼び出しを済ませたあと悲しんでいた。なんで?
A: callbackが無かったから。

電話のcallに対するcallback(折返しの電話)がないこと、関数呼び出しに対するcallbackがないことを掛けている。

怒った関数

Q: Why did the angry function exceed the callstack size?
A: It got into an Argument with itself

Q: 関数が怒ってスタックオーバーフローしてしまった。なんで?
A: 自分自身と喧嘩したから。自分自身を引数に渡してしまったから

Argument → 引数、口論

def angry_function(callback):
  callback()

# Stack overflow!
angry_function(angry_function)

オブジェクト指向

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Q: 裕福になるためのオブジェクト指向的な方法は?
A: 相続

Inheritance → 継承、相続

開発者と子ども

Q: Why did the developer ground their kid?
A: They weren't telling the truthy

不明

配列の継承

Q: What did the array say after it was extended?
A: Stop objectifying me.

extendはjavaの文脈だと思われるがちょっとよくわからない
(コメントより)objectifying: Javaではプリミティブ型の配列は継承できないので、OOP的に扱うなということ
また、人をモノみたいに扱うなという表現に使われる。

!false

!false
It's funny 'cause it's true.

見たまんまだろう

関数の手洗い場

Q: Where did the parallel function wash its hands?
A: Async

Q: パラレルな関数が手を洗うのはどこ?
A: あ、シンク

AsyncとA sink(台所)をかけている

バンド結成

Q: I'm starting a band called HTML Encoder
A: Looking to buy a guitar &

Q: HTMLエンコーダーというバンドを始めようと思ってる
A: ギター&を買わないと

アンプ(増幅器)をHTMLエンコードされたアンパサンドで書くことで、HTMLEncoderというバンド名の伏線を回収している。

関数の仲違い

Q: Why did the functions stop calling each other?
A: Because they had constant arguments.

Q: 関数たちがお互いを呼び合わなくなったのはなんで?
A: いつも喧嘩していたから

call → 名前を呼ぶ、コールする
constant argument → 日常的な口論、定数の引数

定数の引数があるとなぜ関数の呼び出しがなくなるのかはよくわかりません。

二作目

Q: What's the second movie about a database engineer called?
A: The SQL.

Q: とあるデータベースエンジニアにまつわる映画、二作目はなんと呼ばれている?
A: シークェル

SQLとSequel(続編)を掛けている。

「SEQUEL (Structured English Query Language)」であったことが由来

らしい(Wikipediaより)

機械のような人間

A programmer's wife tells them, "Run to the store and pick up a loaf of bread. If they have eggs, get a dozen."
The programmer comes home with 12 loaves of bread.

あるプログラマーの妻がこう言った。「お店にいってパンを1斤買ってきて。もし卵があったなら、1ダース買ってきて。」
プログラマーは帰ってきた。12斤のパンを持って。

buy_bread(1) if eggs.nil? else buy_bread(12)

的な

クモとコンピュータ

Q: What did the spider do on the computer?
A: Made a website!

Q: クモはコンピュータで何をした?
A: ウェブサイトを作った!

Web → クモの巣

ランチタイムとコンピュータ

Q: What did the computer do at lunchtime?
A: Had a byte!

Q: コンピュータはお昼に何をした?
A: 軽食をとった!

Had a bite → 軽く食べる
biteとbyteを掛けている

赤ちゃんのコンピュータ

Q: What does a baby computer call his father?
A: Data!

Q: 赤ちゃんコンピュータはお父さんをなんと呼ぶ?
A: ダータ!

赤ちゃんが父を呼ぶdadaとDataを掛けている
参考

くしゃみとコンピュータ

Q: Why did the computer keep sneezing?
A: It had a virus!

Q: コンピュータのくしゃみが止まらない。なんで?
A: ウィルスのせい!

コンピュータウィルス

Q: What is a computer virus?
A: A terminal illness!

Q: コンピュータウィルスってなに?
A: 末期の病気!

Terminal → 末期がんとかの末期、ターミナル(端末)

かぜとコンピュータ

Q: Why was the computer cold?
A: It left it's Windows open!

Q: コンピュータはなんで風邪ひいた?
A: 窓をあけっぱなしにしたから!

特に意味なさそう Windows言いたいだけな気がする
マシンつけっぱだったらむしろ熱くなるだろう

虫とコンピュータ

Q: Why was there a bug in the computer?
A: Because it was looking for a byte to eat?

Q: コンピュータの中に虫がいたのはなんで?
A: なにか食べるものを探してたからかな

biteとbyte

マウスとコンピュータ

Q: Why did the computer squeak?
A: Because someone stepped on it's mouse!

Q: コンピュータがチューチュー鳴いてるよ、なんで?
A: 誰かがマウス(ネズミ)を踏んだから!

ライフガードとコンピュータ

Q: What do you get when you cross a computer and a life guard?
A: A screensaver!

Q: コンピュータとライフガードをかけ合わせたら何になる?
A: スクリーンセーバー!

ライフガード(=ライフセーバー)とコンピュータとの奇跡の融合

ねずみの住処

Q: Where do all the cool mice live?
A: In their mousepads!

Q: そのかっけーネズミたちはどこに住んでるの?
A: それぞれのマウスパッドに!

pad → 住処
マウスパッド → あの布

ゾウとコンピュータ

Q: What do you get when you cross a computer with an elephant?
A: Lots of memory!

Q: ゾウとコンピュータをかけ合わせたら何になる?
A: たくさんのメモリー!

ゾウは記憶力が非常に良いらしい

Java

Java truly is an OOP language...
As in: OOPs I used Java!

JavaはほんとにOOP言語だ…
だってこう言うだろ?「Oops(うわ)、Javaなんか使っちゃった!」

Javaディスかな 違うかも

海賊

Q: How do programming pirates pass method parameters?
A: Varrrrarrrgs.

Q: 海賊プログラマーはどうやってメソッド引数を渡す?
A: ゔぁあ”あ”あ”ぐす

argを海賊っぽく言うとこうなるのか

羊飼い

Q: How do programming shepherds count their flock?
A: With lambda functions

Q: 羊飼いプログラマーはどうやって群れを数える?
A: ラムダ関数で。

lamb → 子羊

海賊の協力方法

Q: How did pirates collaborate before computers ?
A: Pier to pier networking.

Q: コンピュータができる前、海賊はどうやって協力していた?
A: ピアツーピアネットワークで。

PeerとPier(埠頭)

独身貴族とgit

Q: Why don't bachelors like Git?
A: Because they are afraid to commit.

Q: 独身男性がGitきらいなのはなんで?
A: commit(約束)することを恐れているのさ。

女性に対するコミットとはプロポーズのこと

SQLクエリと酒場

Q: A SQL query goes into a bar, walks up to two tables and asks:
A: Can I JOIN you?

Q: SQLクエリがバーに入り、2つのテーブルに向かって尋ねた:
A: JOINしてもいい?

JOIN → 参加する、テーブル結合のSQLクエリ

hiphip

Q: ["hip","hip"]
A: (hip hip array!)

なんかのREPL?
(コメントより)arrayとhoorayが掛かっているらしい hip hip hooray!

家族との夕食

Q: Why was the developer's family upset with them at dinner?
A: They forgot to git squash before going home

Q: 開発者の家族がディナーに怒りを覚えてた。なんで?
A:

(コメントより)git squashとget squash(かぼちゃ|スカッシュを買う、)が掛かってる

JavaScriptと息子

Q: What did JavaScript call his son?
A: JSON!

Q: JavaScriptは自分の息子をなんと呼ぶ?
A: JSON!

son → 息子
(コメントより)Jason(人名)が掛かってる

React componentと息子

Q: What did the proud React component say to its child?
A: I've got to give you props

Q:

Reactはわからん
(コメントより)give props → よくやったぜ!

サーバーとクライアント

Q: What did the server say to his client who was having a bad day?
A: Everything's going to be 200

Q: ついてない一日だったクライアントに、サーバーはなんと言った?
A: 万事200さ

200 → HTTP OK

開発者の破産

Q: Why did the developer go broke?
A: Because he used up all his cache

Q: 開発者はどうして破産した?
A: 持てるキャッシュを全て使い果たしたから

cacheとcash(現金)の掛け

終わりに

いかがでしたか?(キュレーションサイト並感)
すべてしょうもないですが、これぞオヤジギャクというもの。
今度は君だけのオヤジギャクを投稿してみよう!!