コンピュータはプログラミングなのだ(5)

「わ、わたし( ゚д゚)?笑っちゃいました(笑)ドンマイっ!」高島宗一郎(42歳)福岡市長がLINEニュースの謝罪記事に対して自身のフェイスブックにメッセージを投稿した。

2300万人が登録している、ソーシャル・ネットワーキング・サービス(SNS)のLINEニュースの1月11日の夕刊「福岡・飯塚市長、辞職へ」という見出しにするべきところを、「福岡市長、辞職へ」という見出しで配信してしまった。

この件に関して、ニュースサイトwithnewsに高島市長のインタビュー記事があったので紹介したい。「今は、社会全体がギスギスしていて、ミス1つも許さない雰囲気ですが、そういう時に「そんなに肩ひじ張らなくていいんじゃないの?」とそうした空気をほぐしたい気持ちがあります」。なんと素敵な対応だろう。今どきの言葉で言うなら”神対応”とでも言うのだろうか。私たちがメールやホームページ、電話などインターネットを使わない日はない。インターネットをスマートに使いこなすことは、ビジネスマンの身だしなみの一つではないだろうか。

先日、SFC(慶應藤沢キャンパス)・大岩元(はじめ)教授と大船駅から品川までの電車の中で話しながら行ったときのことだった。大岩教授の専門分野は、認知工学、情報教育学、ソフトウエア工学。SFCの研究室では、パソコンの生みの親で知られる、アメリカのアラン・ケイ博士が作ったプログラミング言語「Squeak(スクイーク)」を日本語化してプログラミング教育をされていた。

大岩教授は、電車のシートに座るといきなり、「村井さん(村井純教授=日本のインターネットの父)の最大の功績は、インターネットを日本語で使えるようにしたことだよ」と言われた。

インターネットはアメリカ生まれで、情報はデジタル信号でやり取りされる。アナログデータは音の信号でやり取りされていることの対し、デジタルデータは0と1の2進数でやり取りされている。このデジタルデータの最小単位を1ビットという。つまり、1ビットは0と1の2通りを表現できる。では2ビットだとどうなるか、2桁の0と1の組み合わせだから、0と0、0と1、1と0、1と1の4通り表現できる。3ビットは、3桁目0と1の組み合わせだから、2×2×2で8通り表現できる。
ここで問題「コンピュータの画面に文字を表現するのに何ビット必要でしょうか?」。

英語の場合、アルファベットはAからZまで26文字で、大文字と小文字を合わせて52文字。これに数字と記号を加え94通りの文字と数字と記号を定めた。ということは、7ビット、2×2×2×2×2×2×2=128通りで表現するできる。英語でやり取りするインターネットの世界では7ビットでよかった。

そこに村井教授が切り込んだ。日本語のひらがな、カタカナ、漢字はとても128通りでは足りない。常用漢字だけでも2000種類以上ある。では何通り、何ビットあればいいのだろうか。

コンピュータでデータを扱う単位は8ビットを一まとまりとするこが普通だった。その単位を1バイトと呼ぶ。8ビット=1バイト。1バイトは8ビットだから、2×2×2×2×2×2×2×2=256通りの表現が可能だ。1バイトでも日本語を表現するには足りない。2バイトあったら、2の16回かけ算して65,536通りの表現がでる。日本語でも大丈夫だ。日本語は2バイトを使って表現されている。

8ビットだったインターネットを16ビットで使えるように尽力したのが村井教授なのだ。日本語でメールのやり取りが出来るのも、村井教授のおかげなのである。

今、インターネット活用のトレンドは、クラウドにビックデータを保存してAI(Artificial Intelligence 人工知能)で価値のある情報を引き出すことだ。そこにはプログラムが必要で、作るのは今のところ人間である。残念なことに、そこに日本人の出番は今はないようだ。日本では外国で作られたプログラムを日本語に翻訳して使っているケースがほとんだ。日本人は使い方が上手いが、世界に通じるプログラマーは数えるほどしかいないと大岩教授は言う。

「では、先生、日本人がプログラミング出来るようになるにはどうすればいいのでしょうか」と尋ねると、「メモリがタダになったんだ、プログラムは日本語で作ればいい」と力強く言われた。

日本人にとって一見とっつきにくそうなプログラミングだけど、日本語の語順がプログラミングに向いていることは大岩教授が研究済だ。日本人がインターネットを使うようになって20年になろうとしている。日本人が文章を書くようにプログラミングできる時代は、もうすぐそこに来ている。プログラマーには、人間の、他人の、目の前の人の気持ちをわかろうとすることが必要だ。(文責:中島正雄)

高島市長の記事 http://withnews.jp/article/f0170112002qq000000000000000W02h10701qq000014559A#parts_3