子どもが将来なりたい職業ではプログラマが上位に来ているそうです。男子はベスト3に女子でもベスト10に入っているそうです。しかし何をするのか誰も知らないのです。もしかしたら仕事として取り組むものと思ってはいませんか。それは違います。
パティシエになりたい女の子はお菓子作りを楽しんでいます。野球選手になりたい男の子は野球を楽しんでいます。プログラミングも同じです。自分が作ったものが動いたら楽しい。それで充分です。将来の仕事にしたいかどうかは、あとで考えればよいことです。
プログラミングの学習はHello worldからと言われていますが、なぜでしょうか。K&Rという有名な本にあったからという説もありますが、本質的にはプログラムの動作が対話型だったからではないでしょうか。対話だから挨拶から始めるのです。
対話型のプログラムとは、質問と回答の繰り返しです。BMIを計算するプログラムでは、こんな感じになります。
身長は 170
体重は 80
BMIは27.7です。
ところがWindows以降は事情が全く違います。質問はすでに画面に表示されています。身長と体重を入力すると直ちに計算結果が表示されます。従来のプログラムが対話型動作だったとするとWindows以降のプログラムはリアルタイム動作なのです。
するとどうなるのか。Windows以降のプログラムではHello worldは必要がないのです。あるいは挨拶を省略してすぐに用件に入るということもできます。
現実問題として、挨拶のしようがないということがあります。Windows以前のパソコンには標準入出力というものがありましたが、今ではありません。Hello worldという挨拶をどこに出すのか。出す場所がないのなら、出さなければ良いのです。
では、どうするのか。入力場所を用意しておいて、そこにデータが入れば即座に計算結果が表示されるようにするのです。
しかしWindowsのプログラミングは簡単ではありませんので、簡単に作成できるようにALANというツールを作成しました。ALAN.exeを実行して次のように操作するとBMIの計算をします。まず、身長のデータを入力するフィールドを作成します。
次に右肩の四角をドラッグしてフィールドを追加します。これは体重の入力に使います。
最後にBMIを計算するフィールドを追加します。
身長と体重を入力すると計算結果が表示されます。複数のデータを計算することもできます。
開発にVisual C++ 2022を使用しているためランタイムライブラリが必要です。パソコンにランタイムライブラリがないと次のようなダイアログが出ます。以下は2017のものなので、少し違うかもしれません。なお、オープンソースという予定ですが、まだ整理がすんでいませんので、近いうちにと思っています。
ランタイムライブラリはマイクロソフトから無償で提供されています。「Visual C++ 2017 ランタイム」などと検索してください。たとえば次のようなところで提供されています。
Visual C++ 2017 のランタイムには86と64がありますが、86の方をインストールしてください。
昔の大型コンピュータには端末というものがありませんでした。プログラムとデータをパンチカードで入力するとラインプリンタの出力が出てきました。これをバッチ処理と言いました。バッチという言葉はパン焼きから来ているそうです。小さな紙の束を入れると大きな紙の束が出てくるというわけです。とにかく待ち時間が長かったのです。
やがて端末処理ができるようになりますが、最初はタイプライターに通信機能の付いたテレタイプというものでしたので、入力も出力も紙でした。必然的に一番下の行で入出力がおこなわれます。
次に登場したのはテレビ受信機を流用した端末ですが、長い間文字だけでした。これをCUIなどと言いますが、これまでの伝統から入力も出力も一番下の行でおこなうのが普通でした。ちなみに一行の文字数が80文字というような規格はパンチカードから来ています。
この時のOSはUnix, MS-DOS, VMSなどでしたが、有名なK&Rという本もこういう環境に合わせて書いたものですので、対話型の処理が前提になっているのです。しかし、今ではそんな環境はほとんどありません。
GUIと呼ばれる環境は、XeroxのStarから始まり、Mac, Windowsの登場で多くの人が使うようになりました。これまでの対話型というのは、売れない演歌歌手が公民館のイベントに呼ばれたようなもので、「こんにちは、〇〇です。これから歌いますので、聞いてください。」というような挨拶をしてから始めたものです。
しかし、ライブのステージでは違います。会場が暗くなり、ド派手な演出とともにメンバーが登場すると、いきなり歌いだして一気に盛り上がります。そういうわけで、今のパソコンで使ってもらうには、このような処理すなわちライブ処理が必要と言えます。
作者のプロフィール 神野勇気(yukikamino) 愛称 ゆっきい(Yukkie) システムクリエイター 境界領域のスペシャリスト
好きな将棋の駒は歩 座右の銘は、と金の遅早 好きな音楽はモーツァルトの不協和音