「これってどうなってるの?」が他の人よりも気になる
――もう一度確認したいんですが、ここまで全て独学ですよね。モチベーション崩さずにやるの、大変じゃないですか?
上原 単純に、自分で作ったアプリが動いたりするとすごく楽しく感じるタイプなので、そこが大きいのかな、と。あと、自分の場合は動くものを見ると、動作原理や仕組みがかなり気になるので、そこがモチベーションになってたかもしれない。
たとえば、プログラミング入門で「Hello World」(注1)ってやると思うんですけど、あれって不思議だなと思うところがあって。print関数で文字が表示されるわけなんだけれども、その内部では何が起きてるんだろう、とか。
(注1)……プログラミング言語の入門書では、「Hello World」という文を表示する例を学ぶことが多い。その例題のこと。
――プログラミングをやっていると、一度は気になるところですね。でも、上原さんの場合は、他の人よりもそこが強く気になるタイプなのかも。
上原 そうなんだと思います。最初にHSPをやり始めた段階からそのモヤモヤはなんとなくあったんですけど、Pythonをやり始めてからはプログラミングの概要は分かってきたので、「どうやって動くのかモヤモヤするし、もうちょっと下のレイヤー(注2)をやってみようかな」と。それで、中2の夏頃にOS自作入門みたいな本を買って、OSも作ってみました。
(注2)……階層のこと。コンピューターでは利用者が使う「アプリ」、アプリを動かす基礎的な土台である「OS」と、ソフトが階層(レイヤー)になって存在している。使うだけなら階層構造を意識する必要はないが、ソフトを作る時には階層それぞれでどう動いているかを理解する必要が出てくる。
「意外と自分の知識でいけるな」と思い、言語の自作へ
――そのモヤモヤからOSを作ってみてしまうというのは、やはりすごい。
上原 いやいや、低レイヤーになればなるほど、未知の領域だと思い込んでシャットダウンする人が多いんだと思います。でも、いざやってみると、ある程度知識を持っていて、ある程度仕組みを学べば、簡単に……いや、簡単ではないけれども、現実的に作れるものだと思うんですよね。
今回は言語を自作して賞をいただきましたが、これもOSを自作した後、言語の自作について調べてみたら意外と当時の自分の知識でいけるな、っていう内容だったので始めました。