テキストプログラミングへの移行を急がなくていい理由
/ 7 min read
Table of Contents
Scratchをやっている子どもたちにテキストプログラミングへの移行を積極的に勧めなくていい、という話。
子どもとプログラミングの界隈では、「Scratchからテキストプログラミングへの移行をどうやるか」というテーマが定期的に話題になります。どうすれば子どもたちがスムーズにステップアップできるか、という文脈で語られることが多い。
でも、私のスタンスはずっと変わっていなくて、「積極的には勧めない」というものです。
そもそも「上」ってなんだろう
この話題が出るとき、どこかに「ビジュアルプログラミングは入門用の簡単なもので、テキストプログラミングの方が高度だ」という前提が見え隠れします。
じゃあ、仮にScratchの次はPythonとして、Pythonの次は何なんでしょう。
これを言い切れる人はいないんじゃないかと思います。プログラミング言語というのは、「何を作るか」によって選ぶものだからです。
ウェブサービスを作るならPHPやRubyを選ぶ人が多いでしょう。スマートフォンアプリなら各プラットフォームの開発言語、ハードウェアに近いソフトウェアならCやRust(より速度や機械の制御を重視した言語)になる。
ちなみに知り合いにC言語(コンピュータの動作に近い低レベルな制御が得意な言語)でウェブサービスを開発していた人がいました。技術的にはできる。ただ、はさみで薪を割ろうとするようなもので(笑)、目的に対して道具が合っていない感じはある。
Scratchでさっと作れるグラフィカルなゲームをわざわざPythonで書く必要はないし、複雑なデータ処理をScratchでやるのも不便です。どちらが上でも下でもなく、向き不向きがある。そういうことだと思っています。
「コーディング」が好きとは限らない
もうひとつ、気になっていることがあります。Scratchをやっている子が「コードを書くこと」を楽しんでいるとは限らない、という点です。
Scratchは確かにプログラミングのツールですが、広い意味では「表現ツール」でもあります。グラフィック、動き、テキスト、音楽、いろんな表現手段を組み合わせて何かを作れる道具であって、コーディングはその手段のひとつにすぎない。
アニメーションを作るのが楽しかった子は、次はアニメーション制作ソフトに興味が向くかもしれない。音楽を作っていた子はVocaloid(音声合成ソフトウェアの一つ。初音ミクなどでおなじみ)を試したくなるかもしれない。それは「プログラミングから離れた」のではなく、「自分の関心に正直に向かった」だけではないでしょうか。
逆に、テキストプログラミングでしかできないことに関心がある子は、大人から促されなくても自分でPythonやC#(Unityというゲーム開発環境でよく使われるプログラミング言語)を調べて使い始めます。今はネットで検索すれば無料で学べる環境が整っていますから。
「やりたい子は自分から動く」し、「やりたくない子に勧めても向かわない」。この単純な事実を、大人側が忘れがちなんじゃないかなと思うのです。
人工知能が変えたもの
そして今、もうひとつ大きな前提が変わりつつあります。
人工知能(AI)の話をするとなんでも煽ってるみたいで個人的には好きじゃないんですが(笑)、それでも正直に向き合う必要はある。
「これを作って」と言えば、人工知能がコードを書いてくれる時代になりました。試しにGemini(Googleが開発した生成人工知能サービス)に「X(旧Twitter)風のソーシャルネットワーキングサービスをC言語で開発できますか」と聞いてみたら、こんな返事が来ました。
C言語でX(旧Twitter)風のソーシャルネットワーキングサービスを開発することは技術的に可能です。ただし、現代のウェブ開発においてC言語を選択するのは「いばらの道」であり、一般的ではありません。
「いばらの道」とは言いつつ、できる前提で答えてくれる。先ほど「言語は用途によって選ぶ」と書きましたが、その選択すら人工知能がある程度カバーしてくれるとなると、状況はさらに変わってきますよね。
こう考えていくと、Scratchをやっている子どもたちに「次はテキストプログラミングだ」と言って勧める意味って、だんだん薄れてきているんじゃないかと思うのです。
それよりも、今その子が何に関心を持っているのかを一緒に見つけて、そこに向かっていく。そういう関わり方の方が、これからの時代にはずっと大切になってくるんじゃないかなと。
そう考えています。