「プログラミング言語未経験者が学びやすいプログラミング言語の条件」について考えてみています。
とりあえず考えられるものをあげてみたけど、他にもまだあるでしょう。
- 実行環境が簡単に用意できること。
- 実行までの手順が少ないこと。
- ソースコードを入力するのに手間がかからないこと(開発環境が簡単に用意できること)
- プログラムが動作しないときの原因がすぐにわかること
- 簡単に説明できる文法であること
- 学習モチベーションを維持できること(達成感を得られること)
- わからない点について相談にのってくれる人が知っているプログラミング言語であること
Googleで調べたところ、http://kanemune.eplang.jp/data/ipsj4306.pdf という論文を見つけました。ここには「オブジェクトストーム」というコンセプトを提唱し、これを満たすための条件として下記を提案しています。
- プログラミングを行って楽しさを味わえるために、たとえば、プログラミング後、速やかに自分のプログラミングの成果を確認できる仕組みを持っていること
- 複雑なプログラミング言語の概念を学ばずに言語を理解でき、プログラミングが始められること
- 現実世界の事物や事象に対応させたメタファとしてプログラムの構成要素を理解しやすいこと
- プログラムの個々の構成要素に対して、自由に新しい動作を与えることができて、プログラムの世界を拡張できるようにするために、オブジェクト指向言語であること
- 親近感を持たせるために、アルファベットではなく、かな、漢字によるプログラミングが可能であること
Dolittleというプログラミング言語はこのコンセプトをベースにして開発されたようで、Wikipediaなどには特徴として下記があげられていました。
- プロトタイプベースのオブジェクト指向言語
- 日本語表記
- タートルグラフィックス
- 衝突判定
- 音楽
他にないか調べてみたところ、Smalltalk環境のひとつであるSqueak、豊富なグラフィック関連のコマンドが特徴であるLogo、視覚的なフィードバックが即座に得られることから初心者がプログラミングを学習するのに適しているというProcessingがありました。
もちろんBASICを忘れてはいけません。Microsoftが最近Small Basicを出してみたり、株式会社スマイルブームがニンテンドーDS用BASIC処理系「プチコン」を販売してみたり、話題には事欠きません。
ある仕事をするにあたり、コンピュータで計算処理すると簡単にできるものについては、その分野の専門家が自分で処理内容を記述して実行することができるのが良いのですが、プログラミングに関しての知識がまったくないと無理です。
昔のパーソナルコンピュータはBASICを理解できる人にとっては「応用範囲の広い万能ツール」でしたが、そうでない人にとっては「購入したアプリが提供する機能が使える普通の道具」という感じだったでしょう。やはり、同じものを持っていたら、普通の道具より万能ツールとして使いたいでしょうから、プログラミングができるようになりたいと考える人は多いはずです。そのとき、最初の一歩はどこからスタートするのが良いのか考えてみたいものです。
既存言語との比較というのも重要なのでしょう。一覧にしてみましたが、他にもたくさんのプログラミング言語があります。今の時代は、分野に適したプログラミング言語を選択して利用するのが当たり前の世界になってきますので、複数のプログラミング言語を使える器用さが求められます。複数のプログラミング言語を知ることが前提になりますから、最初の1つ目をどれにするのか、というのはそれほど重要でもないような気がしますが、トラウマとなると将来に影響が大きいので、その点だけ気をつけないといけないと考えています。
- BASIC (Visual Basic、Small Basic)
- Brainf*ck
- C/C++/C#
- COBOL
- Dolittle
- ECMAScript
- Erlang
- Fortran
- HSP
- Java
- Logo
- PHP
- Pascal
- Perl
- Prolog
- Python
- Ruby
- Scala
- Shell Script
- Smalltalk
- Squeak Smalltalk
- なでしこ
- アセンブリ言語・バイトコード系
- 関数型言語(Scheme, Lisp, EmacsLisp)
ということで色々調べていたら、Nintendo DSの面白そうなゲームを発見。「メイドイン俺」というソフトで、「5秒のゲームと つくってあそぶ もらってあそぶ」。ゲームも遊ぶ側だけではなくて、つくれる側にもなりたいときがありますから、こういったソフトは興味がでてきます。RPGツクールなどもありますよね。導入はこういうところからした方がよいのかもしれません。Amazonで検索をしていたら、Squeak eToyとか、スクラッチアイデアブックとかもあるようで、意外と種類はたくさんあるようです。
関連書籍: