エンジニアの視点
はい、野中健吾です。2番目のエピソードということで、タイトルにもあるように、僕はエンジニア、ゲームエンジニアですね。
いわゆるデジタルを利用して、人をどれだけ楽しませるかというのを20年以上やってきたわけなんですが、
そういうようなものが、なぜ茶の湯を推すというのかというところから、まずお話をさせていただければなと思っています。
まず、個人的には、エンジニアは茶室に入るとめちゃくちゃ楽しいなって思っています。
それはどういうことかというと、僕らが普段、頭の中でしか考えていない夢の国がリアルに現実化してるんですよ。
それってめちゃくちゃ楽しくないですか。どういうことかというと、僕らエンジニアというのは、
基本的に何か人のやりたいことを思い描いて、それをコンピューター上でどうやったら実現できるかというのを考えて、
それをこういうふうにしてよというふうに、コンピューターに対してやってもらうためのお願いを書いている。
これがいわゆるプログラムなんですけれども、そういうなんというか、いわゆる翻訳家みたいなところだったりするわけですね。
その時に使う言葉というのが、いわゆるプログラミング言語と呼ばれるものになるわけで、これには本当にいろんな種類があるんですけれども、
ここでちょっといわゆる僕らが普段使っている、人間のコミュニケーションに使う言語ですね。
自然言語とか言われたりしますけれども、というものと、やっぱりコンピューターに対して理論整然と伝えなきゃいけないというものは、
やっぱり違うところがちょっとありまして、まずコンピューターっていうのはめちゃくちゃ素直なんですよ。素直で真面目なんです。
言われた通りのことを頑張ってしますっていう、本当にかわいらしいぐらい真面目くんなんですよ。
だから逆に言うと、お願いする側に一切の矛盾があってはいけないみたいなところがあるんですね。
例えば一文字打ち間違えたら、もうここが何言ってるかよくわかりませんって言われたりするというところで、ここは結構好き嫌いが分かれるところなんですが、
そこが白黒はっきりして好きだというのがエンジニアに結構向いたりしてる面もあるんですけれども、
結構ですね、ただそこのレベルだと正直通じる通じないの話であって、結構コミュニケーションの本当の初級の初級の話なんですね。
そこは結構エンジニアにとっては大前提で、むしろその先にどうあるかっていうのがエンジニアの腕の見せどころかみたいなところがあります。
茶の湯とプログラミングの共通点
つまり、例えば日本人であれば、日本語で文章を書いて相手に何かを伝えるということはできますと。
ただやっぱり一般の人が書いた日本語の文章と、例えばちゃんとしたライターさんとかですね、あるいは小説家の方とか、
あるいは俳句をされている方、短歌をされている方とかが綴る日本語というのは、それはそれで別次元の味わい深さとか伝わりやすさとかその奥深さというものがありますというようなところですね。
で、こういうふうに、ただ日本語をわかっているというだけで書いた文章と、
何か奥深いとか、端的にすっきり物事を伝えられるかどうかというものには厳然とした差があるわけですが、これはプログラミング言語についても一緒なんですね。
言ったら、僕たちはエンジニアはですね、あることをコンピューターにやってもらうために書かれたものが非常に、
例えばこれは同じことをやってもらうにも、すごいクドクドクドクド、なかったらしくわかりづらく書くこともできれば、非常にすっきりと端的にわかりやすく伝えることもできるわけですね。
で、もちろん後者の方がやはり良いものとされていて、僕らはそれを美しいコードだと、プログラミング、美しいプログラムだと、美しいコードの書き方だというような言い方をしたりします。
ただ、この美しさというのがですね、なかなか癖物というかわかりづらいものでして、美しいコードを書くのが良いことと、それを目指そうと言われても、美しいってなんだ、みたいなものがあるんですね。
例えば、僕らが美しい文章を書きましょうとか言われてもですね、まあわかる。それはわかるし、実際美しいと自分が読んで思う日本語の文章はある。
でも、なかなか自分はそうできない。じゃあどうやったらその美しい文章を書けるようになるんだっていうのは、結構ですね、決まった定型文、定型的なものがあるというよりは、
もちろんある程度のルールとかですね、最低限、例えば句当ての区切りを適切にしましょうとかいうような基本的なルールはあるんですが、
やっぱりそれでもそのレベルを超えた美しい文章みたいなものにはなかなか行き着けないわけですね。
そういうところを目指そうとすると、じゃあどうするかというと、結局僕らは美しいと自分が思ったりあるいは世間的に言われたりするようなものをすごいお手本にするしかないわけです。
これはプログラムを書くときのいわゆるコーディングと呼ばれる作業も一緒で、僕らはお手本をひたすらなぞるしかないわけですね。
その中からもうじんわりと感じる、こういうものが美しいと、いいコードだと思うようなものだなというのを培っていくような感じしかないというところですね。
しかも僕らはそれを手で書くわけではなく、普段はキーボードを打ちながらパソコンのモニター上だったりとか、それを実際動かしてみてとか、
コンピューター上っていう手触りのないところで確認しなきゃいけないというのが、これがまたなかなか難儀なところなんですね。
かなり頭の中での理論がパパパって走っちゃうような方は、むしろそれだけで美しさにたどり着けるというのが素晴らしいという方もいるんですが、
僕とかはですね、なかなかエンジニアとして正直そんなに優秀な部類ではないと自分でも思っている不器用なんですね。
なかなかいいコードとは何なんだっていう試行錯誤してきて20年やってきた、いまだにそういうところはあります。
というところで、ここから作動の話なんですけども、僕がいわゆるお茶を習い始めたときに、いわゆるお手前ということをやるわけですね。
まずはこういう道具を、例えば右手で持ってここに置き、次はこの道具を左手で持ってこのように置き、みたいなことをいちいちやるわけですね。
一つのお茶を立てるのに、動作のパターンから言うと多分70とか80とかぐらいはあるんじゃないですかね、簡単なものでも。
何なんだこれはって感じなんですけども、それをなぞっていくとですね、ものすごいこれしかないなっていうのがわかるんですね。
結局お茶の目的というのは、心地よい空間の中でおいしいお茶をお客様に温かくおいしい状態で飲んでほしいというところに尽きるわけですが、
それをこういう条件の下で満たすためにどのようにしていったらいいかという、言ってみたら機能日ですね、こういうことをしなければならないというのと、
様式日、こうすると美しく見えていい、心地いいよねっていうのを両方突き詰めていった結果としてこういうお手前になるんだなっていうのがすごいよくわかるんですね。
例えばなぜこの時右手でここにこの道具を置くか。なぜならば次に右手で別の道具を取ろうとした時にその手を伸ばした延長線上にこの道具が来ないかなと。
もしその道具が手を伸ばして先にあると、結局手をぶつけて倒しちゃったりとか危なかったりするわけですね。
そういう諸々を組み合わせてやろうとしていることに対して最適な形を最短ルートでいかに安全に、いかに合理的に行うかということを突き詰めたのがいわゆる茶の湯ですね。
プログラミングの心得
お茶を立てる時の作法だなって感じたんですね。これは本当にプログラミングにおける良いコードを書く時の心得とまるっきり一緒なんですね。
例えば僕が尊敬するあるスーパーエンジニアの方がおっしゃっていたのが、プログラミングを書く時の心得として3つありますということをおっしゃっていて、
1つはまず正しくあるべきだと。つまり思った通りのことができない、そういうふうに動かないプログラムっていうのは正直意味がないと。
だからまず思った通りに正しく動くことが第一番ですと。それが一番大事ですと。
次に美しくあるべきだと。つまり同じことをしようとするにも先ほど言ったようにダラダラと長たらしく書くこともできれば、スパッと短く書くこともできるわけですね。
もちろん短く書ける方が端的でわかりやすい。これは自分が書く時もそうですし、自分が後から変更しようとする時もそうですし、
チームで開発をしている時に自分以外の人がそのプログラムを参考にしたり改造したりする時もそうなんですね。
なので美しくあるということは非常に大事なことなんです。つまり理解しやすく書いやすい。そして書いた時のトラブルが起こりにくいという意味での美しさですね。
そして3つ目に大事なことがその上で早くあるべきだと。つまりちゃんとした動作を正しく行えて美しくわかりやすくあった上で、それが素早く行える分にはそれが素晴らしいと。
これを3つがプログラミングの心得だというふうに教わったんですが、僕がお茶をですね習い始めた時にうちのお茶の師匠から全く同じことを言われたんですね。
お茶の心得というのは正しく美しく早くであると。もちろん正しい流れでお茶を立てないとそれは美味しく心地よいものにならないし、その上で美しくある分には非常に素晴らしいと。
それが空間との一体性とかお客様にとってのさらに心地よいものをもたらすと。さらにはその上でお客様をお待たせしてはいけないと。例えば正座をしているお客様は足が長時間すると痺れますし、お茶も結局のところお湯をお茶碗に注いでシャカシャカやってお客様に出すという時点でどんどん冷めていくわけなので、これのんびりやったらやっぱり美味しくなくなっちゃうわけですね、冷めたお茶っていうのは。
ということで早くあるべきだと。つまりこの正しく美しく早くという三原則が完全に良いプログラムを書く心得と良いお茶を立てる心得と全く一緒なんですね。そこに感動したっていうのと、もう一個茶の意がすごいのはそれを身体で表現できるってところなんですね。
先ほど言ったように良いプログラムを書けと言われた時に、僕らは結構頑張って脳内で何とかするしかないわけです。お手本のプログラミングをいろいろプログラムを見てですね、例えばそれは本だったりネットだったり見て、それを自分の頭の中で考えたりコンピューターの上で動かしてみたり、そういうことを延々と繰り返して何となく身につけていくしかないわけですが、茶の意はそれと同様のことが
身体を使って実際に物と向き合って、さらにお客様の反応を目の前で見てできるということになります。
つまり、これは経験値の量と収縮度合いが半端なく違うんですね。
実際、僕はお茶を始めて、自分の書いたプログラミングコードがあんまり整ってないなとか、美しくないなみたいなことがやっぱりわかるようになってきました。
というか、気になるんですね。
普段、お茶の結局、お作法とか手前を乗っ取っていると、正直慣れるまでは非常にやりづらいんですけど、普段の体の使い方と全然違うね。
ただ、すごい整った合理的かつ、先ほどの正しく美しく早いっていうものを心掛けていく動作を行っていると、それが身についてきて、
しかも体で感じ、目で見てっていうのを繰り返していくと、普段のプログラミングをしているときでも、そうじゃないものというのが違和感を感じるようになってくるんですね。
なんかこのコード、美しくないな、もったりしてるな、もうちょっとこういうやりようがあるんじゃないか、みたいなことが非常に自然と、それこそ僕はプログラミングの本は何十冊と読みましたけど、
何十冊と読んだのと同じか、ある意味、別の意味では、ある意味それ以上のものを僕はお茶からエンジニアとして多く学んでいます。
お茶を始めてから、僕のエンジニアリングのスキルとしても正直高まったという実感があります。
そういう意味で、個人的にはそうですね、僕はもう全世界のエンジニアはお茶をやったらいいんじゃないかというふうに思ったりはしていますね。
AIと茶の湯の未来
というところが、いわゆるスキル的な面での、なぜエンジニアの僕がお茶を吸うのかというところですが、これはちょっとまだまだファーストステージみたいな感じで、
実はちょっとですね、昨今で言うとAIがどんどん今後発展していく中で、みたいなところであっても、僕はお茶は非常に輝くというか、
とてもいいものだと思ったりもしています。
その辺の話をしだすと多分本当にキリがないので、ちょっとそれを断片的にですね、今後またつぶやいていきたいと思います。
はい、では今日はこの辺、今日はというか今回ですね、この辺で失礼いたします。