第29話 研究を理解してもらうには

 放課後、俺たちはマイコン部の部室を訪れていた。

 

「あれ?センパイたち、どうしたんですか?」


 出迎えた結菜ゆなが不思議そうに首をかしげる。


「お前……。部活に来たら、不思議みたいな物言いだな」

「だって、実際そうじゃないですか。来たり来なかったりとかバラバラですしー」

「ま、まあ。否定出来ないけどな。でも、ここの部活が単にダベり部になってるせいもあるだろ」


 そこは強く言っておきたい。


「ダベリ部ってなんですか?センスないですよ」

「別にセンスはどうでもいいから。適当にしゃべったり、PCいじってなんかやってるだけだろ」

「そりゃ、私達もそれが居心地良くて入部したわけですし」


 と、言い合いをしていると、


「ちょっと善彦よしひこ、結菜に話聞くんじゃなかったの?脱線してるわよ」


 やれやれといった表情で涼子りょうこたしなめられてしまう。


「ああ、そうそう。結菜にちょっと聞きたいことがあったんだよ」


 忘れかけていた本題を切り出す。


「善彦センパイが私に聞きたいこととか珍しいですね。明日、雨でも降るんじゃないですか?」

「ネタはいいから。結菜の目からみてさ、俺たちがやってる事ってどういう風に見えてる?」

「どういう、とは?」

「研究者としての活動とかのこと」

「ああ。なんか、論文読んだり、学会とか行ったり、小難しい事やってるなーくらいですね」


 一応、旅行とかいいつつ、学会である事自体はこいつも認識してたらしい。


「やっぱそうだよな。で、さ。ちょっと相談なんだけど……」


 今朝の出来事を交えつつ、研究わかってもらえなくて辛い問題を話してみた。


「センパイたちの言いたいことはわかりましたけど、じゃあ、まず、私に説明してくださいよ!」

「結菜に?」

「そうです。私に説明出来ないのに、学校中が理解してくれとか無理な相談ですよ」

「涼子にも言われたな、その話」

「だから言ったでしょ?」

「うぐぐ」


 しかし、説明、説明、ねえ。

 そもそも、結菜の前提知識が何だって話だよな。


「お前、パソコンはわかるよな?」

「センパイ、私の事馬鹿にしてます?」

「いや、そうじゃなくて確認。OSは?WindowsウィンドウズとかmacOSマックオーエスとかLinuxリナックスとか」

「正直、よくわからないです。WindowsとmacOSだと同じアプリが動かないとかくらいですね」

「そんなもんか。じゃあ、プログラミングは?JavaScriptジャヴァスクリプトで簡単なの書いたくらいはあっただろ」


 結菜が、五目並べゲームを習作で作っていた風景を何度か見た覚えがある。

 

「センパイたちが見たことあるように、簡単なの書いたことあるだけですよ。JavaとかRubyとか色々プログラミング言語があることくらいはわかってますが、他の触ったこともないですし」


 とすると、「プログラミング言語」という概念がある事くらいは前提にしてもいいか?


「じゃあ、それを踏まえて聞きたいんだけど。JavaScriptってどうやって実行されてると思う?」

「は?何言ってるんですか?」


 わけがわからないという目で見られる。


「ちょっと善彦。唐突過ぎるわよ。たとえば、こんなプログラムがあったとするわよね」


 と言いつつ、涼子はホワイトボードに、JavaScriptのプログラムを書き出した。


let i = 0;

i++;

console.log("i = " + i);


「これを実行すると、何が表示されるかしら?」

「それは……i = 1ですよね。さすがにそれはわかりますよ」

「そうよね。なら、たとえば、i++が何をしているか答えられるかしら」

「何をって。変数iの中身を1足してるんですよね」


 何を当たり前の事をという顔で言う結菜。

 こういうところ、なんだかんだでちゃんとわかってるんだな。意外だ。


「じゃあ、"i++"を"i+"に変えたらどうなると思う?」

「え?それは……考えたこともなかったです。エラーになるんじゃないですか?」

「じゃあ、試しに"i++"を"i+"に変えてみるわね」


 そう言いつつ、今度は、ノートPCを開いて、プログラムを打ち込んでいた。


let i = 0;

i+;

console.log("i = " + i);


 このプログラムを実行すると……


> node increment.js

increment.js:2

i+;

^


SyntaxError: Unexpected token ;



「なんだか、わけのわからないエラーが表示されましたね」


 まあ、そうだよなあ。普通は、「わけのわからない」エラーだよなあ。


「口挟むけどさ、このわけわからないエラーメッセージを出してるアプリってなんだと思う?」


 今、プログラムを渡した相手は、nodeコマンドだ。


「アプリ?この、nodeコマンドって奴じゃないんですか?」

「ああ、ぶっちゃけて言うと、コマンドとアプリってだいたい同じ意味なんだよ」

「じゃあ、nodeアプリがなんか表示をしているわけですね」

「そうそう。で、i+;だと構文解析の前の字句解析で……ってこれだと意味不明か」

「はい。全く意味不明ですね」


 全く容赦がない。まあ、わからんもんはわからんか。


「日本語にたとえてみるのはどうかしら。「今日は晴れです」この文章の意味はわかるわよね?」

「さすがに。今日の空はあんまり雲がないとか、そんな感じですよね」

「じゃあ、「今日は晴るです」だとどうなるかしら」

「意味不明ですね。そんな事言う人、現実に居るんですか?」

「あくまで、たとえだっつーの。「今日は晴るです」って読めるか?」

「書いた人がんだろうな、くらいはわかりますね」


 お、これならいいところまで理解してくれそうだ。


「そう、これは間違った文章なんだ。たぶん、書いた人は、「れ」を「る」と間違えたんだろうな」

「で、それがさっきの話と何の関係が?」

「大有りなんだよ。"i+;"ていうのは、日本語でいうと、まさにそういう「間違った文章」なんだ」

「間違った、ていうのはわかりますよ。でも、それってバグと違うんですか?」


 ああ、そう来ちゃうか。

 バグと構文エラーの違いとか言われると、説明に何十時間かかるやら。

 あ、そうだ。このたとえなら。


「バグっていうのはさ、日本語なら、「文章としては正しい」けど、何かおかしい文章のことなんだ。たとえばさ、結菜、お前、男だろ?」

「センパイ、喧嘩売ってます?私は紛れもない女子ですよ?」


 しまった。たとえがマズすぎて額に青筋を立てている。


「善彦はもうちょっとまともなたとえをしなさいよ。ただ、結菜は確かに女の子だけど、今、結菜は「間違ったことを言われた」とか「おちょくられた」とか思ったから、怒ったのよね?」

「ええ、まあ、そうですが」

「「今日は晴るです」だと、それ以前よね」

「国語で書いたら、減点間違いなしです」


 たとえ話を続けるのは好みじゃないんだが、多少は理解が進んできたか。


「そういう、言ったことがおかしい、おかしくない以前の「論外」なプログラムが、"i+;"なのよ」

「なんとなくわかった気がしますけど。で、センパイたちの研究にどう関係するんですか?」


 そう。それが問題だ。


「ちょいややこしいけどな。さっきのは、「日本語の文法」の問題だろ?で、こっちのは「JavaScriptの文法」の問題ってとこ。で、「JavaScriptの文法」みたいなのを作ったりするのが俺たちの専門」

「わかったような、わからないような。でも、雲の上の研究をしてることはわかりました」

「雲の上……そうか?」

「だって、JavaScriptがこういうものだって、私は本読んで一生懸命勉強したわけですけど、センパイたちは、JavaScriptは「こういうものだ」って決められるんですよね。凄いことはわかります」


 相変わらず、実感は湧かないようだったけど、一応、意義は伝わったらしい。


「で、その辺をうまいことマイコン部の展示で説明したいんだけど、どう思う?」

「正直に言っていいですか?」

「ああ」

「無理だと思います!だって、私だって、今説明されて頭グチャグチャですよ?パソコンに縁がない人に説明するとかもう絶望的ですよ!」


 予想していたことではあるけど、力強く断言されてしまった。


「まあ、そうだよな。もうちょっといい説明考えてみるか……」

「……私も少しは協力しますよ」

「え?」


 疲れた顔ながら、殊勝なことを言う後輩に少しビックリだ。


「だって、センパイたちは、陰口叩かれて嫌だったわけじゃないですか。研究がどうとかはわからないですけど、そういうのは私も嫌ですし」

「お前、意外と良心的な奴だったんだな」

「やっぱり、馬鹿にしてます?」

「いや、冗談だ。じゃあ、文化祭まで、付き合ってくれると助かる」

「乗りかかった船ですしね。やりますよ」


 こうして、前途多難ながら、文化祭の展示で、俺達の研究について説明するコーナーが出来ることになったのだった。

 色々な意味で不安しかないけど、まあしないよりはマシだろう。うん。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る