表題の通りですが、プログラミングを始める年齢って言うのは、まあ昔も結構そうだったようですが、やっぱり結構低かったりするのだと思います。わたしのように高校から始めたって言うのは、結構遅いほうなんじゃないかな?もちろん、今インターネットで活躍している人に限って…ですが(不思議なことに現実では、プログラミングをやってたとか、趣味でやってる人は全くと言っていいほど見かけませんし… やっぱり田舎だからかな)。

 さて、と言うことで、そういうプログラマの卵に勧められるツールと言えば何か?考えてみます。
条件は、

  1. フォームデザイナをサポートしている(出来ればデバッガも持っている)こと
  2. フリー(もしくは、かなりの安価)であること
  3. 入手対象は小学生以下(ほぼもろに「VisualStudio.NETはナシ」と言っているのですが(^_^;))
  4. 今後の役にも立てることが出来る(?)
  5. 環境が安定していて、快適

前提として、ここでいうプログラマの卵は

  • フリーソフトを使うくらいのPCレベルを持っている
  • プログラミングに興味がある(仕事にするかどうかは分からないし、今後続けるかどうかも分からない)。
  • 自由になるお金は少ない

とします。
 プログラミング ティー ショップの"入門者から初心者へ" と題したコンテンツには、「プロを目指すならVBはちょっと…」とありますが、そんなことはまずないと思います。どんな言語を使ってようが、そのうち「どんな言語だろうが本質は同じ」と言うことに気づくと思うからです(それにまだ現役で動いてるところもあるらしいし)。まあ、大学や専門学校まで来てそれというのは、少々時間がかかりすぎるかも知れませんが…。

 まず、1について。
とっかかりはすぐにビジュアルな結果の出る、DelphiやVBなどのフォームデザイン機能があった方が良いと思うのです。コンソールのほうが圧倒的に労力が少なく、楽に出来るとは思いますが、初めての人はそれで満足するでしょうか?もちろん、それでもはじめて思い通りの結果が出たときには同等の感動があることでしょう。しかし、それでどこまで満足できるでしょうか?
最初は標準入力が単行エディットに、標準出力がメッセージボックスやテキストエリアに変わっただけでしょうが、イラストを表示したり、書いたり、処理したり、すぐにしたいことはコンソールの限界を超えるでしょう。さらに時代はインターネットです。自作ソフトをフリーソフトとして公開したいと言った要望も生まれるかも知れません(余談ですが、フリーソフト作者は、一人である程度のウォーターフォールモデルの全課程を体験できる趣味です。勉強にもなると思いますよ)。
 デバッガもあれば、処理が追えるので勉強になるでしょう。もちろん頼り切りは良くないですが、予測だけで最初から最後までやろうというのは、無理な話です。学校の先生はデバッガにはあまり頼るなと言っていましたが…*1。


 次に、2, 3について。
将来プログラマになるつもりだろうが、ゲームのプログラムをするつもりだろうが、まずは好きからすべては始まると思います。ですから、最初は続けるかどうかすら分からない(やっぱり嫌いになるかも知れない)プログラミングに大金を支払うわけにはいきません。極力フリーで、フリーではなくともかなりの安価で使用できるものである必要があります。
また、使用者は中学生以上であるとは限りません。VisualStudio.NETの、PremiumEditionだって買えないかも知れないのです(買えたとしても、その歳で3800円というのは、今後続けるかが分からない趣味にかける値段ではないでしょうし)。


 そして4。まあ、どうせなら役に立った方がいいですよね、ある程度レベルが上がってはいさよならな言語では悲しいです。どうせなら、なれればなれるほど出来ることが増え、作業も効率的に行えるようになる、(縦軸を難易度、横軸を習熟度としたグラフで表すならば)右肩下がりの言語の方がいいです。最初はレベルアップが早いのだから、最低中級者まではおつきあいできる言語の方がいいですね。


 最後に5。初めてなのだから特に、無駄なことは考えずに開発に没頭したいですね。開発環境が不安定なのは問題です。
そして快適であれば言うことはありません。ユーザーのカスタマイズを受け入れてくれるものがベストです(とはいえ使うのにカスタマイズが必須 と言うのでは意味がありません カスタマイズが出来ようが、プリセットがまともである必要があるということです)。


 十歩譲ってDelphi(6Personal)、ActiveBasicくらいでしょうか。それでもDelphiは環境が不安定ですし入手までの手続きが煩雑(事実、友達に勧めてみようと思いましたが、流れを説明できませんでした)、ActiveBasicはBASIC言語の流れをくむためちょっと不安です。結局、フリーでRADな、とにかくお勧めできる環境というのは、あまりないものですね。
ということで、いっそ作れればいいなと企画中です。しきいは低くても、限界は高く、フリーソフトとしても一般に通用するくらいのものならもちろん、容易に作成できる環境。.NETを目標とするなら、IL言語を作成すれば自己実行ファイルも作成できますし、コンポーネントはC#で作ってかまわないんですから問題はないです。コーディングも出来れば、少なくても出来ればいいですね。
小さな力で大きな結果が出せる、てこの原理のようなものを持った言語を作れると良いですねえ。

*1:まあ、リリース後に寄せられたバグレポートなど、想像に頼るしかないケースを想定した発言だとは思うのですが、プログラミング初めて数ヶ月の初心者にそんな想像など求められません。まずはスタートダッシュを決めて、一気に一定レベルまで行ってしまったほうが良いと思います。「若い頃からそんなものに頼るな」という意見も聞かれましたが、そういう意味ではもう若くないのです