【第十四章 開発】第四話 勉強会2

 

「特徴?」

「はい。機械学習。いわゆる、AIなら、Pythonが適していますし、Windows で動かすだけのプログラムなら、C#やVisual BASIC などの.NET Framework が適しています。Webアプリの制作を考えるのなら、Apache + MySQL+PHPが一般的でしょう。Ruby も使われています」

「おっおぉぉ」

「言語に寄っては、出来ないこともあります。例えば、PHPで、Windows プログラムを作ろうとしても”無理”です」

「そうなのか?」

「はい、ユーザインターフェースの実装が出来ないからです」

「へぇ」

「同じように、スクリプト言語は、独立したプログラムには向きませんが、Webプログラムに最適な言語だと言われています。メンテナンス性も高いですし、親和性も優れています」

「それだと、やりたいことで、プログラム言語を変えなければならないのか?」

「理想としてらそうですね。それをやりたくないから、Java をやっておけば大丈夫という風潮が出たのです」

「あぁ俺も、調べた時に、どんな環境でも動くから、Java を覚えておけば大丈夫という記述を見た」

「はい。間違いではありませんが、正しくも有りません。動きますが、使えるかどうかは別です」

「どういうことだ?」

「十倉さん。C++で作った物が、1秒で終わる物が、10秒かかっても我慢出来ますか?」

「あぁ・・・。一回ならいいが、毎回、待たされる可能性があるわけだな」

「そうです。だから、適材適所なのです。ユーザの待ち時間を少なくする方法は、各言語で備わっていますが、それは別の話です」

「そうか、やっと意味がわかった。篠崎が、言語にこだわらないでも大丈夫と言ったのだな」

「はい。なので、まずは各言語で”ほぼ”共通で使える制御命令を覚えます。それから、プログラムの考え方を勉強します」

 皆が嬉しそうな顔する。
 パソコンに座ってもらって、テキストエディタを起動してもらう。個人的には、素性がいいC#を覚えてもらおうと思っている。

 Visual Studioは、セットアップしない。テキストエディタで、コマンドラインでコンパイルをしてもらう。学習には、インテリセンスは邪魔だ。
 まずは、俺が作ったソースコードをプロジェクターに表示する。皆が見える状態になっているのを確認した。

「テキストエディタで、表示されているソースコードを写して、コンパイルを実行して、プログラムを動かして下さい」

 皆が、テキストエディタに入力し始める。
 コメントも書いてあるので、コメントもそのまま入力している。さて、何人が一回でコンパイルが通るか楽しみだな。
 半分も通ればいいほうだろうな。今日中に全員がコンパイルまで通れば御の字かな?

 コンパイルの為のスクリプトは配布してある。
 学校パソコンは、全部同じ設定になっているから、問題は無いだろう。一応、コンパイルが実行されなかったら呼んで欲しいと伝えてある。構成がいじられていたり、必要ないプログラムが入っていたり、入っているべきプログラムが入っていない可能性だってある。

 苦戦はしていないようだ。
 見ながら入力すれば間違いはないと・・・。考えているだろう。そろそろ入力が終わった者がコンパイルを始めている。
 パソコンからエラー音がなる。コンパイルが失敗したのだ。スクリプトには少しだけ意地悪が組み込まれている。エラーメッセージが英語で表示される。慣れてしまえば、英語を怖がる必要はないのだが、自分が書いたソースコードがうまくコンパイルが出来ていないというのは、恐怖を覚えるには十分だ。それも、プロジェクターで表示されているソースコードを写しただけだ。エラーが出るはずがないと思っている。

 ちらほら、コンパイルが通った者たちが出てくる。
 しかし、まだわからない。コンパイルが通れば、必ず動くわけではない。

 残り時間が40分くらいになった。撤収の為に10分くらい使うから、残り30分。

 コンパイルが通っていない人を中心に見て回る。

 罠にハマっている。コンパイルエラーで悩んでいた人たちを見て回って、問題を洗い出す。

「コンパイルエラーになっている人は、皆が同じ問題です。日本語の入力を”オン”にしたままで、ソースコードを入力しています。あと、空白が全角のスペースになっています。空白部分は、タブキーで入力をして下さい」

 最初にハマる問題だ。
 コンパイルエラーになっていた人たちがソースを見始める。数分後には、コンパイルが通った者たちが出始める。

 10分もすれば、全員のコンパイルが無事に終了した。

「篠崎。頼みがある」

「え?なんでしょう?」

 十倉さんが頼みとは珍しい。それに、津川先生も居る。

「今日、この後の予定は?」

「何も無いですよ。あっ!」

「何かあるのか?」

「いえ、マックスバリュで牛乳を買って帰るのを思い出しただけです。146円(税別)の”大地の牛乳”は、すぐに無くなってしまうのですよ」

「おっぉ。おぉ」

「大丈夫ですよ。なかったら、明日の朝に買いに行きますから、それで、どうしました?」

「篠崎が大丈夫なら、今日の授業を延長して欲しいと思って、津川先生にお願いしたら、お前の返事次第だと言われた」

「あぁそうですか、いいですけど、無制限には延長はしないで、1時間だけの延長にしませんか?」

「わかった。今日、作った物が動くまで頼みたい」

「わかりました」

 十倉さんが、ここまでのめり込むとは思っていなかった。
 他のメンバーも前のめりだ。用事がある者は帰ってよいと津川先生は伝えたが、帰る者はいなかった。

 やはり、半分以上がどこかに記述ミスが存在していて、結果が同じにならない。
 今度は、成功した人が、失敗した人とソースコードの検証を行っている。

 今度は、記述ミスを探すので、それほど難しくはない。15分もすると、全員のソースが綺麗に結果を吐き出すようになる。

「さて、まだ時間があるので、一つ提案です。今のソースは、俺が作ったものです。わかりやすいように、作成した。速度は最低のソースです。多分、実際にはこの半分位の時間で結果を出せる。スレッドを使えば1/10程度にもなる」

「・・・」

「信じられないのだろうけど、ソースの書き方でそのくらいの差が産まれる。だから、結果を出すまでの時間を、20%の削減を目指して欲しい。次の課題です」

 皆がお互いの顔を見る。
 そうだろう。難しい課題ではあるけど、実はもうヒントは渡してある。それに気がつくかどうかだけだ。

「篠崎」

 やはり、十倉さんが代表して質問してくるようだ。

「なんでしょう?」

「簡単に言うが、今からじゃ無理じゃないのか?」

「そうですね。次の特別授業の時間を使いましょう。それに、一人でやる必要はないです。それから、コンパイルのスクリプトは持って帰って下さい。パソコンにWindows10が入っていれば動くと思います」

「それは、何人かで集まってもいいのか?」

「はい。効率がいいと判断したら、チームで挑んでも構わない」

「わかった」

 十倉さんが、皆を見る。
 どうやら、皆が最初は単独で頑張るようだ。

 あっ!そうだ。マナベさんから貰って使いみちがなかった物を提供してもいいな

「そうだ!全員が、チームで挑まないのなら、一番、早く出来た人に、1世代前のUMPCだけどプレゼントしよう。景品です」

「え?」

 皆の目つきが変わる。
 そして、なぜか電脳倶楽部の面々まで参加すると言い出した。ちょうど、スペックを考えると使えない。通電さえもしていない端末が4台ある。1台を、電脳倶楽部で一番早かった者への景品にして、残りの3台を勉強会に参加している人たちへの景品にする。スペックの違いがあるので、早く出来た者から選ぶことにした。

 思いつきで始めた速度を競うプログラミングは、思った以上に盛り上がった。
 再来週の特別授業で発表を行うことになった。