Perl のモットーは「何をするにもやり方は一つだけじゃない」(TMTOWTDI; There's more than one way to do it. 読みは Tim Toady)で、自分は魅力を感じる。それは、Perlのコミュニティから、Perlに限らずさまざまな技術を愛する懐の深さを感じるから。実際どうかはYAPC::Hiroshima 2024のタイムテーブルがわかりやすい例だと思う。
愛なんて言葉を使ったけれど、この記事を書くため、ラリー・ウォールのインタビューを読んだせいかもしれない。
「何をするにもやり方は一つだけじゃない」(TMTOWTDI; There's more than one way to do it.)の哲学は、宇宙の創造者の謙虚さを観察した直接の結果であり、荘厳ではなく軽妙に処理できるよう選択した結果だ。宇宙には、押し付けるべきスタイルのガイドラインなどないのだ。創造力のある人たちは、それぞれ自分のスタイルで開発をする。
-
弾:TMTOWTDI(There's More Than One Way To Do It)(※4)はどのようにして生まれた言葉なのでしょうか?
ラ:子供の頃は、すごく戒律の厳しい宗派の家で育ったのですが、大学でそれ以外の世界を知りました。神は自由意志を持つことを知ったのです。
けれど、このモットー。「どんなスタイルでもOK」と解釈すれば、さまざまなスタイルのコードがはびこり、当然ツライ。
が、「どんなスタイルでもOK」というのは、自分なりのTimToadyの解釈だと、短絡的な解釈だと思う。「何でもいい」と「何をするにもやり方は一つだけじゃない」は違う。他人とスタイルが違うからといって、互いに勝手にするのは違う。Tim Toadyは、これがただ一つの真実だと思って疑わない自分自身に、ちょっと待ったをかける言葉だと思う。それと、何やら相手も好きなやり方を持ってるらしい、聞いてみよう!と促す好奇心の言葉だとも思う。自分の性格が、残念ながら白黒はっきり、コレといったらコレ!といった頑固者なので、このモットーに本当に助けられてる。話は逸れたが、何が言いたいかまとめると、Tim Toadyには、独りよがりにならず他者を受けいれる寛容さ求める力があると思ってる。
しかし、さまざまなスタイルのコードのメンテナンスは嫌だ。
これら全ては前置きで、Tim Toady Bicarbonateが主題。これもPerlのモットーだけど、たぶんあんまり知られてない。いや、miyagawaさんが2010年にYAPCで話しているのだけど・・ 悲しいことに私はその時、仙台で学生をしていた。
There’s more than one way to do it (TMTOWTDI / Tim Toady)
But sometimes consistency is not a bad thing either (BSCINABTE / Bicarbonate)
やり方は一つだけじゃない。
けれど、一貫性を保つことは悪くないこともある。
言い回しが回りくどくて、いかにもPerlらしいけれど「一貫性を保つことは悪くないこともある」という意味は、チーム開発で有効なことは想像しやすいと思うので、周辺豆知識(?)を2つ書く。
Bicarbonateは日本語で重炭酸塩のことで、ナトリウムとくっつくと炭酸水素ナトリウム(Sodium Bicarbonate)、つまり重曹になる!重曹と聞いたら、いきなり親近感がすごい。ふくらし粉、コゲ落とし、歯磨き粉、入浴剤とか、めっちゃ便利。
もう一つ、Bicarbonateの出自と今。「TMTOWTDIは長所とも言えるけど、極端にとれば弱点とも言えるからプラクティスをまとめていきたいね」って書いた2009年の記事に、rjbs氏が、MooseのircでBicarbonateが話題だよとコメントしてました。
rjbs said about 3 hours later:
The current topic in #moose:
TIMTOWTDIBSCINABTE (pronounced – “Tim Toady Bicarbonate”) There Is More Than One Way To Do It, But Sometimes Consistency Is Not A Bad Thing Either
-- http://www.dev411.com/blog/2009/01/24/can-epo-or-tpf-tame-timtowtdi/
IRCのログを辿ることはできなかったけど、MooseというとPerlにオブジェクト指向の機能を追加するフレームワークで、そこがBicarbonateの出自らしい(より正確なことを知っている方がいたら教えてください🙇)
して、このrjbs氏。現在は、Perl開発のマネジメントをしている。そして、2023年の今年リリースされたperl5.38では、builtinのclass featureを追加していた。14年を経て、Bicarbonateの一つの結実をみるようでグッときました。
Tim Toady Bicarbonate(やり方は一つだけじゃない。けれど、一貫性を保つことは悪くないこともある)の話でした。