著者ブログ

スッキリスト秘話(5) JVMくん(ほか) 編

こんにちは、スッキリわかる入門シリーズ著者の中山です。

11月1日を迎え、「あと61日で今年が終わる」という現実をうまく受け入れられず、うなだれていたら午後になってました...。

ですが! 人生つらいことばかりではありません。そう! 本日は、

スッキリわかる入門シリーズ 10周年感謝祭
11月スタンプの配信日!

なのです!! 感謝祭特設サイトでは、新たに6種類のオリジナルスタンプ画像が配信されています。

10月に配信されたスタンプやsukkiri.jpで誕生秘話をご紹介したキャラクター(菅原湊&朝香立花大江)は、シリーズ初期の作品(Java・SQL)を中心としたものでしたが、11月配信のものは比較的新しい作品(PythonやCなど)も含んでいます。実際、上記のうち、オレンジ背景のものが、今日から特設サイトで配信されたスタンプなのですが、、、

人間じゃないヤツがまじっとるやないか!!1

というアツい突っ込みにお答えしまして、本日のスッキリスト秘話はこの方々(?)です。

JVMくん
CPUくん
DBMSちゃん
サーブレットくん
JSPちゃん
Pythonくん
AIくん

シリーズに欠かせない「擬人化マシン」たち

スッキリわかる入門シリーズに例外なく登場するのが、「CPU」や「DBMS」などの機械を擬人化したキャラクターたちです。先生役や学び手役に比べると地味な存在ではあるのですが、見ての通り結構個性豊かにキャラクターデザイン頂いていまして、「JVMくんとDBMSくんが、実はデザインが違うって初めて気付きました!」的な発見はスッキリあるあるでしょうか。

もちろん実際のJVMやDBMSには姿も顔も感情もないわけですし、硬派なIT入門書とかでは絶対に登場しないと思うのですが....、。

まぁ、この国では古くから、災害や疫病を妖怪にたとえたり、鳥獣を画の中で戯れさせてみたり2、近年では刀剣が男子になってみたり、艦隊が美少女になってみたり、けものが友達だったり、細胞が働いたり、ウマが娘になったりしているぐらいですから、JVMくんが空を飛んだり、DBMSがサザエさんのコスプレをしてもぜんぜんOKでしょう。

それに、実はDBMSちゃんには、マニアックなファン層がいるっぽいんです。過去に4回ほど、なぜか「わたし、DBMSちゃんのファンなんです!」って告られたことがありますから、ほんとです。きっと「JVMくんの胸板の厚さがたまらん」とか、「AIくんのねじり鉢巻き姿に萌え」とか、そういう方も遠い空の下、どこかにいる!!

...かもしれない。

ま、結局なんでもいいんです、Kawaiiなら。

コンピュータとの「会話」を描ける

ただ個人的には、コンピュータを擬人化することで、プログラミングを「人と機械の会話」として描けるようになるという点も、とても魅力的だなと思っています。

たとえば、スッキリSQLの書中で、スッキリスト秘話(3)でご紹介した立花いずみさんが、例のごとく小悪魔的な天然っぷりで、DBMSちゃんにあれこれ「お願い」しちゃう、こちらのシーン3

もちろん、わざわざイラストなんて挾まずとも、「SQLは、備える命令数は非常に少ない一方、さまざまな修飾句をつけくわえることで複雑な動作を実現できるという特徴があります。例えば構文でいうと、云々〜」と、小塚明朝Pr6Nあたりの渋めの本文で解説することも不可能ではありません。

でもまだSQLを学び始めたばかりの2章の段階で、あまり細かいことを持ち出したくなかったんです。ここでは別に、命令体系に関する厳密な事実や仕様を伝えたいのではなく、「これから学んでいく言語の雰囲気」を見てもらって、心の準備をしてもらいたいというのが主眼なので...。

そのような「あえて細部を伝えたくないとき」にも、「擬人化マシンとの会話」はとても有用だなと感じています。

本当に「人」に思えてくる不思議

ところで、IT業界にいると方は結構お感じになると思うのですが、「コンピュータを擬人化しちゃう人」って、そこそこいますよね。

特に熟練したITエンジニアの方の中に、会話に「この子は...」などいう表現が出てくる人が多い印象でしょうか。「いやぁ、実はこの子、2年前の大規模更改のときに予算不足でメモリ積んでもらえなかったんだよねー...」とか、特にトラブル系などの切ない状況で飛び出すことが多い表現です。

そしてよく考えると、私自身もコンピュータをより強く擬人化して捉えることが多かったのは、トラブルのときだったかもしれません。

私も元・火消し屋さんですから、「コンピュータたちが戦い、倒れていく姿」を見た数には、ちょっと自信があります4。「サーバールームの扉を開けたら、亜熱帯地方になってた」とか、「ディスクフルが原因で、ディスクフルのログかけない」ぐらいでは驚きませんし、コンピュータに対して情も沸きません。

そんな私でも、「どう見ても悪意ある膨大なリクエストに急襲される中、GCを乱発させながらなんとか動き続けようと奮戦したものの、ついに琴切れちゃったJVMのログ5」とかは...これはもう切なすぎて、涙なしには見られないわけですよ。

そういう時に限って、コードを見せてもらうと、「俺のメモリは無限大っ♪ 縛るものは、なにもないっ! (よねっ? だよねっ?)」みたいな自由を謳歌したコードだったりすることも多く、JVMくんが可哀想で、いたたまれない気持ちでいっぱいになるわけです。

「機械が人に見えたとき」こそ

だから、著者としては、スッキリシリーズを手にとっていただいた読者のみなさんにぜひ、登場する「擬人化マシン」たちと一緒に学びながら、この子たちに少しでも愛着をもっていただきたけたら嬉しいんです。

そうしたら、きっと続編や姉妹書も買いたくなるし、同僚にお薦めしてくれるかもしれないし、後輩に半ば強制的に買わせてくれるかもしれないし...じゃなくてですね。

この子たちに愛着を感じるとき——だたの鉄の塊と電気回路が、人に見えるとき——それは、あなたが「コンピュータたちが、決して完璧で無限の存在ではなく、私たち"人間と同じ"ように多くの制約に囲まれ、なんとか日々の時間を過ごしている存在であること」を感じている時だから。

もちろん、はじめからは無理です。

プログラミングをはじめて学ぶ時、私たちはみんな必死です。目の前のコードを書くことだけで精一杯、コンピュータの事情や気持ちに心をまわす余裕なんて、当然ありません。いかにコンパイルを通すか、いかに命令を与えて、コンピュータという鉄の箱に「言うことを聞かせるか。」ということに躍起になります。そして、コンピュータに対して命令を繰り返し、相手に通じるようになるにつれて—

「おぉっ! 俺が必死で作った200行もあるプログラム、瞬間でさばくのか! じゃぁ、ここの繰り返しをさらに複雑にして...これならどうだ!」

「次は1000個もあるデータだ! JVM、さすがのおまえも、これはさすがに...って、...や、やるじゃねぇか...!! 」

どんな要求にも答えてくれるコンピュータと、そんなコンピュータをコントロールできている自分がついつい嬉しくなってきて、「この鉄の箱は、命令すれば、その通りに絶対動くもの」と、いつしか勘違いをしてしまうんですよね。

でもそのうち、(特に実務でトラブルに出会うなどして)気づく時は来ます。

コンピュータとか情報システムとかAIとかは、業界外の人がイメージするような、「超高速で確実にどんな命令もこなしちゃう魔法の箱」なんかじゃ決してない。使えるCPU能力やメモリ空間は有限だし、ちょっと想定外の状況になれば簡単に異常停止や暴走するし、そもそも電源を喪失すれば止まるし時々壊れるし、1億5000万Kmも離れた太陽の黒点で爆発があるだけその翌日に謎の誤動作を頻発させるし、、、そんな、とても不完全で不安定な、切ない存在なんだ

、、、と。

その時から、人は自然に、コンピュータの「有限性や不完全性」に心を配ったコードを書くようになるんだと思います。

CPU資源やメモリを必要以上に無駄にせず、さまざまな状況を想定した例外処理をちゃんと書き、この子が自分の手を離れて本番環境にデプロイされてしまった後も、転んだり苦しんだりしてしまわないように6

「・・・こんなコードを書いたら、JVMくん、燃え尽きちゃわないかな・・・」
「・・・こんなSQL書いたら、あのかわいいDBMSちゃんが泣いちゃうかもしれない・・・」

その感情が、「"ただ動くだけではなく、すぐれたコードを書く"という次のステージに進むきっかけ」になるなら、擬人化された彼らも本望だと思うのです。

「プログラミング言語」でお話しする、あの子と共に。

・・・とはいえ、まぁ実際には、書中に登場する各「擬人化マシン」はかなり強力ですし、頼り甲斐があります。

多少残念なコードを書いてもJVMくんは良い感じに動かしてくれますし7、書中でサザエさんコスプレとかしてるDBMSちゃんも、矢のように飛んでくる秒間数百のトランザクションをバシバシ捌きます8。あなたが呼びかければ、彼等はその力をいかんなく発揮して、大活躍してくれるに違いありません。

そんな心強い彼等とお話する道具こそ「プログラミング言語」なのだとすれば、人と機械が互いを想い合う「素敵なコミュニケーション」の第一歩をお手伝いするのがプログラミング入門書ともいえるかもしれません。書中の擬人化キャラたちとともに、その大事な使命を果たしていけるよう、シリーズ各書、改善と進化を続けて参ります!

最後までお読みいただいた皆様へのお礼


クリックするとダウンロードできます。特設サイト記載の条件に従ってご利用ください。

感謝祭特設サイトでは、その他12種のスタンプを配信しています。

次回スッキリスト秘話(6) 工藤慎平は、11月8日(月)配信の予定です

(11/8追記)公開しました。

スッキリスト秘話(6) 工藤慎平 編

こんにちは。スッキリJava&C著者の中山です。 10月からはじまった「スッキリわかる入門シリーズ 10周年記念 編集長に隠れて副音声的こばなしスペシャル」。いよいよネタが苦しくなってきたのか、前回は ...

-著者ブログ
-,