Tech Racho エンジニアの「?」を「!」に。
  • ライフ

Go格言集に込められた詩情とダブルミーニング

Go言語には、かなり初期から「Go Proverbs」と呼ばれるGoの格言集があります。

同サイトに記載されている格言は、2015年のRob Pikeの講演動画にもリンクされています。

日本語訳はいくらでもネットに落ちているので探せばすぐに見つかるでしょう。

銀座Rails#38の発表「TechRacho翻訳記事の裏舞台」の中でこのGo Proverbsについて少し触れたのですが、惜しくも途中で時間切れとなってしまったのでここで供養したいと思います。

Go格言集というタイトル

根拠はありませんが、Go Proverbsというタイトルはきっと「囲碁の格言集」に引っかけているのだと私は信じています。

参考: 囲碁格言集

私は囲碁はわからないので、麻雀の「早いリーチは七対子」や「単騎は西で待て地獄待ち」「下家のポンは親孝行」みたいな格言や、「下手の中飛車、へぼの棒銀」「桂馬の高飛び歩の餌食」みたいな将棋の格言ぐらいしか知りません。

参考: 麻雀格言特集!プロの見解つき! | 麻雀豆腐
参考: 将棋の格言 - Wikipedia

第1の格言

Go Proverbsの第1の格言は以下です。

Don't communicate by sharing memory, share memory by communicating.
Go Proverbsより

技術的な格言としては「共有メモリで通信するな」「メモリは通信で共有せよ」などとなるでしょう。メモリ共有をソフトウェアで行うのは難易度が高く、複雑になったときに競合周りで事故りやすいというのは昔からよく言われているので、それを戒める意味もあるのでしょう。これなら全然普通の訳文です。

参考: 共有メモリ - Wikipedia

しかし、Go Proverbsのサブタイトルは「シンプルで詩情にあふれ、含蓄がある」とあります。

Simple, Poetic, Pithy
Go Proverbsより

しかも考案者のRob Pikeは動画の中で「この格言は繰り返しも詩的にキマったし含蓄もある」というようなことを話しています。つまり少なくともここには詩情が込められているはずです。

それを踏まえて、以下の裏訳をこしらえてみました。

思い出を分かち合うことで通じ合うのではない」「通じ合うことで思い出を分かち合うのだ

あるいは

思い出を分かち合うことで互いの心が通うのではない」「互いの心を通わせることで思い出を分かち合うのだ

memoryには「思い出」という意味もあるのでした。知らなくても何の問題もありませんが、どこかで話したくて仕方がなかったので、ここで供養したいと思います。

第10・第11の格言

第10と第11の格言

Cgo must always be guarded with build tags.
Cgo is not Go.
Go Proverbsより

動画では、Rob Pikeがcgoを「シーゴ」と発音しています(シージーオーではないんですね)。これは少なくとも動画の中ではC言語の神(C God)にかけていると推測しました。動画中でも「cgoを呼び出せばその結果は神のみぞ知る(God only knows)」とダジャレをかましています。詩情まではあまり手が回ってない感あります。

参考: cgo command - cmd/cgo - pkg.go.dev

ついでながら、当時のRob Pikeは「自分はテスト以外では絶対cgoを使いません」とも話していますね。

第5・第15の格言

第5と第15の格言は以下です。

Make the zero value useful.
Errors are values.
Go Proverbsより

Go言語の基本型にはゼロ値(zero value)という概念があります。

参考: ゼロ値を使おう #golang - Qiita

また、Go言語は例外処理を用いず、関数が複数の値を返せるようになっていて(多値返し)、エラーを明示的に返すのが基本です。

参考: Goエラーハンドリング戦略

このvalueという言葉ですが、技術用語の「値」という意味の他に「価値」「値打ち」という意味もあります。

つまり第5の格言は、「ゼロ値を活用せよ」という本来の意味に加えて、「価値のないものを役立てよ」「無価値を活用せよ」という引っかけになっているのだと推測しました。

第15の格言も、「エラーとは値である」(これはGoのエラーは例外処理やタプルのようなものではなく、単なる値でしかないのだという含みもあると思っています)という本来の意味の他に、「エラーとは価値だ」「エラーには価値がある」という引っかけにもなっているのだと思っています。


話はそれますが、フィル・コリンズが昔出した最初のソロアルバム「夜の囁き」の英語タイトルが「Face Value」でした。これは辞書的には「額面価格」という意味ですが、アルバムジャケットにフィル・コリンズの顔が大写しになっているあたりからして、文字通り「顔の値打ち」にもかけているのかなと当時思った覚えがあります。

参考: 夜の囁き - Wikipedia

第19の格言

これだけ動画がありません。

Don't panic.
Go Proverbsより

Goにはpanicというキーワードがありますが、この格言はpanicを通常のエラー処理フローに使ってくれるなという意図です。

参考: Go言語のエラーハンドリングについて ~panic編~ - Qiita

これは一番わかりやすいですね。「Don't panic.」は「うろたえるな!」というイディオムでもあります。映画やアニメの悪役が追い詰められたときのセリフで頻繁に使われます。

その他

動画の他の格言では「格言っぽくキマらなかったけど、いいんだよこれで」みたいなお茶目な発言もありますね。格言すべてが詩的というわけではないことが伺えます。それでもこういう遊び心は大好きです。

英語だと「Think Different」みたいなキャッチコピーならともかく、格言を短くキメるのは大変そうです。中国語は「1シラブル=1語」ですし、日本語にも四字熟語の形でかなり浸透していることもあって、中国語の格言は「好牌先打」的に短くキメやすいように自分には見えます。どちらにしろ創作するのは簡単ではないでしょうけど。

参考: 短い英語の名言・格言集。覚えやすく心に残る言葉! | 癒しツアー
参考: 「使えるとかっこいい!」中国語の名言・ことわざ30選 | courage-blog

また最後の方では「格言に矛盾があるかもしれないけどいいんです、人生は矛盾に満ちています」という感じで締めています。Rob Pikeの動画は終始この調子で笑いを取りまくっていて楽しいですね。

本当は他のGo格言についても書きたい気持ちです。

まだ自分が見逃しているかけことばや引用があるかもしれません。「こんなのもあるぞ!」「その解釈は違う!」などありましたら@hachi8833までお知らせください。


以上、知らなくても何も困らないお話でした。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。