コンピュータは、世界一誠実な読み手
まず、押してみる
説明はあとにします。下の「実行する」を押してください。
まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
円が描かれたはずです。いま起きたことは、こうです。
あなたが書いた(最初から書いてあった)「まる を かく」ということばを、コンピュータが読んで、そのとおりに実行した。プログラミングと呼ばれるものの全体は、結局この一往復でできています。
一語だけ、変えてみる
エディタの中の まる を消して、さんかく と打ちかえて、もう一度実行してみてください。ほし や しかく も使えます。
たった一語の入れかえで、結果が変わりました。文のかたち(〜を かく)はそのままで、中身だけが入れかわった——これは日本語で「りんごを食べる」を「パンを食べる」に変えるのと、同じ操作です。
二行目を、足してみる
今度は2行のプログラムです。実行すると、何が起きるか想像してから押してみてください。
まる を かく みぎ へ 90 まわる 50 すすむ
ここに絵があらわれます
Ctrl+Enter でも実行できます
コンピュータは、文を上から順番に読みます。「まるを描く」「右へ90度まわる」「50すすむ」。ペンを持った小さな描き手が、あなたの文を1行ずつ読んで動いている——そんな姿を想像してください。
数字は自由に変えてかまいません。90 を 45 にしたら? 50 を 200 にしたら? 予想して、外れたら、それがいちばん面白いところです。
⟡ よりみち:この言語はなに?
いま使っているのは「にわ語」という、この庭のために作られた小さな言語です。世の中のプログラミング言語は英語ばかりですが、英語であることはプログラミングの本質ではありません。このコースの後半で、にわ語から「本物の」言語へ橋を渡ります。そしてコース2では——にわ語そのものを、あなたが作る側にまわります。
わざと、困らせてみる
ここで、このレッスンでいちばん大事な実験をします。わざと変な文を書いて、実行してみてください。
おおきい まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
実行すると、コンピュータはこう返してきます。「読み方が分かりませんでした」。
ここで注目してほしいのは、コンピュータが怒っていないことです。壊れてもいません。「おおきい、がどういうことか、私には分からなかった」と、正直に困っているだけです。
人間の読み手なら「大きい丸ね、はいはい」と察してくれます。コンピュータは察しません。どれくらい大きいのか、数で言ってもらえるまで動かない。不親切に見えますが、逆です。察しないからこそ、書いたとおりのことが、書いたとおりに起きる。世界一誠実な読み手です。
エラーは、失敗ではなく返事
プログラミングを学びはじめた人の多くが、エラーを「自分が失敗した印」だと感じて、こわくなります。先に言っておきます。ここは多くの人がつまずく場所で、つまずくのが普通です。
でも、見方を変えてください。エラーは、誠実な読み手からの返事です。「ここまで読めた。ここで分からなくなった」という、世界でいちばん正確な読書感想文。この庭では、エラーを出した数だけ、コンピュータとの会話が進んだと考えます。
✎ 演習:エラーを3つ、集めてください
下のエディタで、わざといろいろな壊し方を試して、ちがう種類のエラーを3つ集めてみてください。どう壊すかは、あなたの自由です。
まる を かく
ここに絵があらわれます
Ctrl+Enter でも実行できます
ヒント1(考え方)
「読み手が困りそうな文」を考えます。知らない言葉を使う、文を途中で切る、記号をまちがえる——日本語の文を壊すのと同じ要領です。
ヒント2(壊し方の例)
たとえば:まる を で止めてみる。まるを かく(スペースを消す)。まる を たべる。それぞれ、返事がちがうことに注目してください。
こたえ(の一例)
「まる を」→ 文の途中で終わったという返事。「まる を たべる」→ 「を」のあとの読み方が分からないという返事。「ほしほし を かく」→ そんな言葉は知らないという返事。
大事なのは、エラーの全部が「どこで・何に困ったか」を教えてくれていることです。あなたの集めた3つが、これと違っていても、まったく問題ありません。
このレッスンで分かったこと
- プログラム=読み手(コンピュータ)に宛てて書く、曖昧さのない文
- コンピュータは文を上から順に読んで、そのとおりに実行する
- コンピュータは察しない。だから、書いたとおりのことが正確に起きる
- エラーは失敗ではなく、どこで困ったかを伝える返事
あなたはもう、コンピュータと「ことば」で会話しました。これがプログラミングの、すべての出発点です。