Tcl/Tkの次はC#に挑戦か?

高木です。おはようございます。

先日行った勉強会では、Raspberry Pi上でGUIプログラミングをやってみようということで、Tcl/Tkを使って「じゃんけん」を作りました。

まったくプログラミング経験がない参加者もいたので、2時間で完成させられるか不安もありました。
結局、参加者の努力もあって、どうにかこうにか動くところまで到達できました。

その後、社内で馬詰と話していて、「C#だったらもっと簡単にできるかも」と私が発言したのが今回の挑戦の始まりです。

Tcl/Tkであれば手入力していた部分も、C#ならツールが自動生成してくれます。
ちょっと考えただけでもC#のほうが簡単そうです。

ただ、勉強会のネタとしてはちょっと問題があります。

Tcl/Tkと違ってC#はずっとメジャーな存在です。
当然、参加者の中にはC#経験者がいます。
このハンデをどう埋めるかという問題です。

もうひとつ問題があります。
C#をやるにはVisual Studioのインストールが必要になるわけですが、これを勉強会の時間内にやっていると時間が足りなくなります。
おそらく、Visual C#は事前にインストールしておいてもらうしかないでしょう。

最初の問題に戻ると、経験者との差を埋めるためには、経験者にはより高度な課題を与える必要がありそうです。
いっそのこと、Raspberry Pi上でC#で「じゃんけん」を作るというのが面白いかもしれません。

そのためには、Monoをインストールしないといけませんが、これも勉強会の中でやっていると時間がありません。
事前にMonoをインストールしておく必要がありそうです。

そして、Monoを使ってGtk#で「じゃんけん」を作るのです。
MonoでもWinFormは使えたと思いますが、Raspberry Piはi686やx86_64ではなくARMです。
確かWineに依存していたWinFormがまともに動くとは思えません。
なのでGtk#の出番です。

この企画が実現できれば、弊社の営業兼事務の馬詰は、さわりだけですが3種類のプログラミング言語を経験したことになります。
Arduino言語、Tcl/Tk、そしてC#です。

SESの営業は、技術者上がりの人は別として、どうしてもプログラミング言語やその他の技術を単なる「記号」として扱ってしまいがちです。
「じゃんけん」のような簡単なものであっても、実際に体験してみるのは非常に大切なことだと思います。

ところで、私が「C#だったらもっと簡単にできるかも」といったとき、「コマンドラインならC++でも簡単にできる」ともいいました。
C#の次はC++に挑戦するかもしれません。

「じゃんけん」程度なら、JavaでGUIを作るのも、PHPでWebアプリケーションを作るのも簡単そうです。
私はJavaもWebアプリケーションも嫌いなので、(自分でもやってやれないことはありませんが)講師は別の誰かに引き受けて欲しいところです。