なでしこ」が掲載された教育図書の「技術」(「教育図書」より)

日本語プログラミング言語なでしこ」が中学校の教科書に採用
 9月のことだが、日本語プログラミング言語「なでしこ」が、中学校の教科書に採用というニュースが入ってきた(窓の杜なでしこ)。中学の技術の教科書に、日本語化されたスクラッチScratch)とともに「なでしこ」が掲載されるそうだ。

 個人的には「おおー、すごいな酒徳さん」と思った(「なでしこ」の開発者は、酒徳峰章氏、ハンドルネームクジラ飛行机)。

 しかし、ネットでのプログラマーの反応は色々とあった。その中には「もっと実際の開発現場で利用されるプログラミング言語の方がよいのではないか」といった意見も見られた。

 しかし、学校でプログラムを学ぶ全員が、開発者になるのではない。普段見慣れた言葉でプログラムが書いてあるだけで、ずいぶんと気持ちが楽になる人も多いはずだ。母国語でプログラムを学べるのは有意義なことだと思う。

 今回私が、素直に賞賛の感想を持ったのには理由がある。日本語で、プログラミング的なものを表現する取り組みを、開発者の酒徳氏が古くから取り組んでいたことを、私が個人的に知っていたからだ。

日本語プログラミング言語なでしこ」とは
 酒徳氏と知り合った切っ掛けは、財団法人インタ-ネット協会が主催していた、オンラインソフトウェア大賞だ。この賞の2001年の入賞者として、『めもりーくりーなー』を開発していた私と、『テキスト音楽「サクラ」』を開発していた酒徳氏(当時は山本姓)が入っていた(財団法人インタ-ネット協会)。当時住んでいた家が近かったこともあり、互いの家を訪問したりした。

 『テキスト音楽「サクラ」』は、1999年に公開が開始されたソフトウェアだ。ソフトウェアエディタに「ドレミ」と書けば、そのまま演奏してくれる。『テキスト音楽「サクラ」』は、日本語ドレミファソラシドの音階を書くことで、音楽を奏でられるDTMDesktopMusic)用のソフトだ。

 身近にある日本語で、コンピューターへの入力の橋渡しをしていた酒徳氏は、2001年日本語プログラミング言語ひまわり」を公開した。そして、日本語プログラミング言語の取り組みを進めていく。

 酒徳氏は、この方面の開発を進めるために、2004年度未踏ソフトウェア創造事業(未踏ユース)に申し込んで「日本語プログラミング言語の開発」というテーマで採択される(IPA)。この成果として、2004年10月に「なでしこ」のベータ版が発表された(IPAIPA

 その後、2005年2006年にも未踏ソフトウェア創造事業で、酒徳氏はWeb開発向けのプログラミング開発環境で採択される(IPAIPA)。こちらでも日本語プログラムが書けるようになっていた。

 こうした活動の延長として、現在の「なでしこ」が存在している。この取り組みは継続的に続いており、2020年1月5日には、なでしこ15周年記念サイトオープンしている。

 こちらのサイトには、利用者のアンケートも掲載されている。利用者の年齢は、40代が38%、30代が25%になっている。利用している場所は、趣味が43%で、仕事が43%。日常の自動化処理などで、業務の効率化に用いられている。

 意外と仕事に用いられている、と思う人も多いだろう。何かプログラミング言語を学んでいれば、日々の作業をこなすのに役に立つというのが分かる。

プログラミングの言語ハードル
 私自身、プログラミングを教える立場に立ったり、解説する立場になったりすることがあるのだが、初心者に教えることの難しさを感じることが多々ある。

 多くのプログラミング言語は、歴史を経ることで複雑化している。また、大規模開発向けのルールが大量にある。それらは「ただ何かを動かしたい」という初心者にとっては、難易度を上げるだけの要素になっている。

 また、開発環境を作ることが大変なことも多い。ぱっと用意して、ぱっと動かして、ぱっと確かめるといったスピード感では、プログラムを書けないことが多い。

 こうした様々なハードルを乗り越えながら、プログラムを学ぶことになる。

 プログラムを学ぶには、「書いて動かして」を繰り返さなければならない。またその前に、ドキュメントやサンプルプログラムを「読む」という行為も必要になる。この「読む作業」が、プログラミングの内容によっては8割、9割を占めることもある。

 ドキュメントやサンプルプログラム日本語で書いてあれば、こうした「読む」難易度は大きく減る。そして「書いて動かして」に集中できる。

 現実の世界でも、電化製品を買ってきて説明書を読まない人は多い。プログラミングの世界でも、学習に臨んでマニュアルを読まない人は多い。また、見慣れない英語で書かれているという理由で、拒否反応を起こす人も少なくない。

 日本語プログラムが書いてあり、見た瞬間に「書いてあることの意味が分かる」というのは大きなアドバンテージだ。

 プログラミング言語は何か1つ学べば、2つ目以降の修得コストが劇的に下がる。「これは、こういうことだな」と、頭の中で置き換えができるようになるからだ。

 「なでしこ」のバージョン3のプログラムは、Webページ上でも実行を確認できる(なでしこ3)。最も簡単なプログラムは『「こんにちは」と表示』である。同じことを、Webページでよく使われているJavaScriptで書くと『console.log(‘こんにちは’)』となる。初学者にとって、どちらが分かりやすいかは明白だろう。

 アンケートによると、「なでしこ」は40代、30代の利用者が多い。大人だからといって避けるのではなく、プログラミングの入り口として、まずは触れてみるのもよいのではないか。

<文/柳井政和>

【柳井政和】
やない まさかず。クロノスクラウン合同会社の代表社員。ゲームアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社レトロゲームファクトリー』。2019年12月に Nintendo Switch で、個人で開発した『Little Bit War(リトルビットウォー)』を出した。

(出典 news.nicovideo.jp)

きっかけにはいいかもしれんが中学のレベルかと言われると何とも


中学早々から勉強するとなると、ひたすら英字が並ぶのはやっぱりちょっと難しいのかもしれんね。BASICあたりが実用的かと聞かれたらそれもまた微妙だし。ある意味CASLのような位置づけと考えれば……。


のちのち役に立たなくなるからやめとけ日本がガンガンエンジン開発してシェア独占しない限り無駄になるわ


なんか迷走してる気がするが、将来的に基本情報合格ラインを目標にした学習内容じゃいかんのか


学ぶ人がみんなプログラマになるわけではないって言いだすと他の教科はってなるが・・・


とりあえず自分でプログラム書いて動くことがわかって来れば自然と興味がわいて自分から学ぼうとすると思う。学校で学ばされるではなく自分から学びに行くように変わってほしいな。


さわりには良いんじゃない?最初はノンプログラミングツールや分かりやすい言語で勉強が良い。


PDCA。文字通り略語で、プラン、ドゥー、チェック、アクトの頭文字。そのまま同じように、記述、実行、検証、改訂の繰り返しであるかと思う。そこから得られる教訓は、取説を熟読すっ事。


将来使うかといえばまず使わないんだろうがプログラムとはどういうものかというのを触るには日本語なのはいい気はするがなぁ 本格的にやりたいとなればまた違う言語を覚えればいい訳で


これはプログラムと言うべきなんだろうか?普通にBASICでよくね?


教育系言語として、パスカルという言語があったかと思う。パステルでも無く、ラスカルでも無いし、パラガスでも無いのだ。言語間の相互変換を自由自在にするのは、まさに翻訳技能であるかな。


基本的な構文が今時の言語と極端に離れてさえいなければプログラミングの考え方の勉強にはなるし、仕事で使うとなるとどうせどの言語勉強しても勉強した言語を使う機会があるかは運しだいで複数言語覚えることになるし、console.logって書こうとしても英語に慣れてなくてスペルの丸暗記から入ることになるような中学生には日本語言語もありかもなとは思う


実際にプログラムを組む所作などは、それ自体が数学技能の一分野であるかと思う。詰り翻って、体系的な数学の一技術でしかないと思う。単調な作業を、態と複雑化した営利的な開発事情である。


昔教科書でチラ見したBASICは今時の言語とは本当に基礎的な部分しかそろってない気がするので、あれから更新がないなら、ほとんど言語はどれ使っても効能は同じようなもんじゃないかなとも思う


とりあえず「子供でもプログラミング授業してる」という対外的な事実さえ構築できれば中身がどうとか役に立つかとかはどうでもいいから、そんなものの犠牲になる子供は可哀想だけど、こういうのは教育ではよくある事だと諦めてほしい。


統計情報を計測するなどには、まさにコンピュータ操作が出来る事が要件にあるとさえ思う。プログラミングを学ぶ事を通して、言語仕様を憶える、ソフトハード両面の周辺知識を得るのかと思う。


個人的には、エクセルなどで直感的に統計情報を図形描画させるノウハウは、社会に出た時に活かされる能力かと思う。QC7つ道具、新QC7つ道具などなど、品質管理の技能として欠かせない。


例えば、奥深い日本語習得には適当な外国語学習が、在ったら良い。語学学習を通して、同義語や反対語などの関連語を、適宜記憶で繋ぐ事が出来る。プログラミング言語間でも、同じ事が通じる。


例えプログラミングの言語仕様が異なっていても、其の脳裏には経験記憶として重なるのである。故に、一つの言語体系を学び取れば、ほぼ全ての言語をマスターした事になり、後は開発意欲だけ。