#25 「プログラミングできたら人生変わっちゃう!?」の巻
稼げる職業プログラマーが求められている!?
今日もスマホやパソコンで、音楽や動画を楽しんでいますよね?これらはすべてプログラミングのおかげです。そして、そのプログラミングを駆使してスマホやパソコンを操るのがプログラマー。実際、世界長者番付を見ても、元プログラマーがズラリと並んでいるんです。
その「プログラミング」に必要なのが、「コンピューターに指示を出す」ために使う"プログラミング言語"です。いまやその数は、爆発的に増えていて、なんと2500種類以上にも上ります。それぞれの言語によって、できることやできないことがあるなど、とにかく超複雑なんです。
そんな中、日本で一番稼げる言語は、「swift(スウィフト)」と呼ばれるアップルがスマホアプリ向けに開発したものになります。やはりiPhone(アイフォン)のように多くの人が使うものに適したプログラミング言語は年収が高くなるようですね。
日本でも優秀なプログラマー獲得はまったなし!
こうした中、日本では大企業で動きが活発化しています。トヨタが優秀なプログラマー獲得に動いていたり、富士通やヤマト運輸といった企業も、プログラミングなどの学び直しによる大規模なリスキリングを打ち出し、DX実現に向けた人材育成を目指しているのです。
そもそも日本では2030年には約79万人のIT 人材不足になると予測されていることもあり、この分野への関心がかなり高まっています。
2020年からは小学校でもプログラミングが必修になりました。その肝は「コンピュテーショナル・シンキング」です。この考え方を知れば、生活を超便利にしたいとか、困っていることを解決したいとか、もしかしたら"自分が思う未来を自分で作ることができるかも"というワクワクなお話なんです。
Q、そもそもプログラミングってなんなの?
スマホでネットサーフィンしますよね?その時に見ている、いわゆるホームページは、実はたくさんの0と1によってできています。コンピューターはそもそも0と1しか分からない、ある意味“おバカさん”なのです。ですが、人間が「こうやって動いて!」と、プログラミング言語で書いたソースコード(命令書)を介して0と1の組み合わせをコンピューターに伝えると、ホームページを表示したり、いろんなことがかなえられます。
プログラミング超進化の歴史
プログラミングはどのように発展してきたのでしょうか。1940年代のアメリカでは、初期のコンピューターは巨大な計算機でした。10桁の足し算や引き算なんかをするために、人が真空管のスイッチにつながるケーブルを抜き差しして、スイッチのオンオフをすることで計算させていたのです。
これを毎回すると大変なので、次に考えたのが命令をすべて2進法、つまり0と1にして、自動化で計算することでした。0ならスイッチOFF、1だとスイッチONにして、数をコンピューターに理解させることにしました。これが当時生まれた「機械語」と呼ばれるプログラミング言語です。
本格的なプログラミング言語 「高級言語」の登場
これをさらに超便利に進化させたのが、IBMで働いていたジョン・ワーナー・バッカスです。1954年、月の位置を計算する仕事をしていたバッカスは、いちいち数式を使って出した数値を、0と1に変換してコンピューターに読ませていました。ですが、バッカスは生来のめんどくさがり屋さんで「これ、僕らが使う数式や言葉を、コンピューターが理解できれば、もっと楽になるのでは?」と思ったらしいのです。つまり人間が使ういろんな数式や英単語を、コンピューターがわかるように翻訳しようとしたのでした。
それを可能にするのが"コンパイル"という機能で、数字や文字をコンピューターが理解できるように変換することが可能なのです。そしてバッカスは、その機能を持つプログラミング言語「FORTRAN (フォートラン)」を発表し、周囲のどぎもを抜きました。どれだけスゴいかというと、例えば、地球から月までの距離を導く計算式を、上記の画像のようにコンパイルすると、0と1の数字の羅列に変えることに成功したのです。これによって、人が毎回、複雑で面倒な計算をすることなく、あっという間の処理が可能になったのです。これが「高級言語」と呼ばれる、いまに続く画期的な発明で、本格的なプログラミング言語誕生!?みたいなイメージなんです。
プログラミング言語の“ビッグバン”が起きた!
その後プログラミング言語が増える一大転機となるのが、パーソナルコンピューターの普及でした。そんな中、アメリカの大学の授業用に開発された初心者向けの「BASIC(ベーシック)」という言語が登場しました。それまでプログラミング言語は、限られた研究者たちだけにしか知られていませんでしたが、BASICは一般公開されたのです。これがきっかけで、あのビル・ゲイツがWindows(ウィンドウズ)のパソコンを生み出すことになりました。コンピューターを個人が自由に使えるようになったことで、「計算したい」以外にも、「文字を書きたい」とか「ゲーム開発したい」とか、いろんな思いをかなえるため、さまざまなソフトウエアが誕生していきました。
その後インターネットが爆発的に広まると、個人がパソコン上だけでなく、情報やコンテンツを得るため、簡単にウェブサーバーにアクセスできるように変化しました。私たちの「これ、見たい」というリクエストを、サーバ上でプログラムが動くことで、「はい!これね」というやりとりが可能になったのです。
その裏で、「OSやソフトを作りたい」ということでC言語が登場。「ウェブブラウザでカーソルを合わせるとポップアップするとか、動きを加えたい」ということで「JavaScript (ジャバスクリプト)」が誕生しました。こうした数々のプログラミング言語によって、「検索サイト」や「掲示板サイト」「ショッピングサイト」など、私たちがふだん楽しんでいるサービスが生まれていきました。
そして、スマホが誕生すると、「いつでもどこでも、映像や音楽、動画を楽しみたい」といった私たちの欲望をかなえるアプリの開発がますます過熱していきました。こうした私たちの欲望に応えるサービスやコンテンツをすばやく届けるために、新たなプログラミング言語が続々と登場しているのです。
Q、そもそもプログラミング言語って なぜこんなに必要なの?
プログラミング言語ってなんでこんなに必要なのでしょうか。そのワケは超複雑なのですが、プログラミングに詳しい青山学院大学特任教授 阿部和広さんに聞いてみました。
青山学院大学特任教授 阿部和広さん
「私達のまわりには解かないといけない問題とか課題がすごくたくさんあり、それぞれに応じて、最もふさわしいプログラミング言語を作る必要があります。例えば手続き型、論理型、あとは関数型、オブジェクト指向型など、いろいろなタイプのプログラミング言語が作られています。手続き型の場合は、命令を上から順番に時系列に沿って書いていくわけなんです。
一方で論理型という言語の場合ですと、事実ですね、こういう風な事実がある、こういう風な事実がある、というようなものを列挙していく書き方になっていきます。そのあいだに時間の順序関係はないわけです。ある言語が作られたら、必ずそこには欠点というか、こうした方がよいと思うところがあるので、そこをどんどん改良していった結果、これだけ数が増えているのです。」
そして今もプログラミング言語は、メタバースや、NFTなど、さまざまな目的のため、無数に広がり続けています。ちなみにヘンテコな言語まであって、特定の記号しか使えない言語、スペースキーいわゆる空白だけしか使えない言語や、あの” シュワちゃん”の映画のセリフしか使えないものまであります。これらは完全なジョークですが、プログラミングが好きすぎて、オリジナルの言語を作って楽しむ人まで出てきているのです。
“AI登場”で大注目のプログラミング言語「Python(パイソン)」
そんな中、いま注目されているのが、AI。そこで主に使われている言語が「Python (パイソン)」です。1990年に開発されたパイソンが、急速に利用者数を伸ばしていて、その数は約1130万人におよび、今では世界2位になるほどの人気ぶりです。人気の理由は2つあります。
① シンプルでみんなが理解しやすいコードで書ける
実際に見てみると、上記の画像のようにパイソンと他の言語を比べると、見やすいことがわかります。だからプログラミング初心者も理解しやすいし、エラーも見つけやすいのです。
② ライブラリ(再利用可能なプログラム)の豊富さ
簡単にいうと、すでに完成されたコードがたくさんあり、例えば、画像認識機能を使いたいと思ったら、ライブラリからとってきて、「import cv2」とたった一行だけ書けば、一瞬でやりたい機能を持たせることができるのです。
もともとはオランダのプログラマー、グイド・ヴァンロッサムが、クリスマスの暇つぶしとして、「とてもシンプルで使いやすい言語を作ってみるか!」と、軽い気持ちで開発したそうです。それが今や人工知能に使われるなんて、ほんとに驚きですよね。
人間の言葉のままプログラミングできるAIが登場!
2021年8月、アメリカの研究機関が私たちの話す言語をそのまま自動でプログラミングしてくれるAI「Codex (コーデックス)」を発表しました。こうしたいと伝えれば、その言語に応じて自動でプログラミングを行ってくれるのです。さらに機械学習できるため、自分でどんどん学んでいきます。さらにコードを書くことなくプログラミングができる「ノーコード」ソフトが続々とできていて、簡単にショッピングサイトやシンプルなアプリなどすぐに作れるようになりました。
これらはすべてクラウド上でコントロールしています。IT人材が不足する中で、スピーディーかつ効率的かつ安全に、開発や運営をしていきたい企業や個人が多いからです。
日本の小学校でもプログラミングが必修に
そんな流れの中で、日本では2020年から小学校の授業でプログラミングが必修になりました。「コンピューターを動かすためにどのような処理が行われているのか」を知ることが目的です。そこで使われているのが、ビジュアルプログラミング言語「SCRATCH(スクラッチ)」です。
直感的に超簡単にプログラミングができるのですが、少しでも間違いがあると思い通りに動かないため、また別の方法を試さないといけません。自分の決めた目標を達成するため試行錯誤するので、自分なりの最適な答えを探し出す力を養えるのです。
Q、どうしてプログラミングを学ばないといけないの?
まもなくAI 時代の到来が予想される中、なぜ小学生からのプログラミング教育が大事なのでしょうか。日本でのスクラッチ普及に携わった青山学院大学特任教授 阿部和広さんに聞いてみました。
青山学院大学特任教授 阿部和広さん
「わたしたちの身の回りにコンピューターは当たり前のように入っています。そしてコンピューターがあるということは、当然それらはプログラムで動いているということになります。そうだとすると私たちの社会を理解するということは、すなわちプログラムがわかることというものにほぼ等しくなっている。ですので、そのためにもプログラミングを学ぶ必要があるということですね。
今までであれば、誰かがプログラムしてくれたものを使う消費者でしたが、今は誰でもプログラマーになれる時代になった訳です。そうなれば与えられたメディアだけを使うだけではなくて、例えば自分が情報を発信したいと思った時に、SNSじゃどうも足りないな、何かこういうのが欲しいなって思ったときに、自分で新しいメディアを作ることもできるようになる。そのためにプログラミングっていうものがますます重要性を増していくだろうと思っています。」
確かに、イーロン・マスクにしても、ザッカーバーグにしても、プログラマーだった人たちは、常に新しいものに挑み続けています。かつて、アップルのスティーブ・ジョブスは、「全ての人が、プログラミングができるようにならなければいけない。コンピューター言語を学ぶことによって考え方を学ぶことが出来るからだ。」と語り、オバマ元大統領も「プログラミングを学ぶことは国の将来がかかっている」とさえ言いました。
日本でも天才的なプログラマーが世界を熱狂させてきましたし、若い世代でも注目される人物が数多くいます。プログラミング教育のすそ野が広がることで、さらに世界で活躍する人が出てくることを期待したいですね。
0と1しか理解できないコンピューターに、人間が命令を出したことからはじまった「プログラミング」。社会の超高度な自動化が進み、いまや誰でも簡単にプログラミングができる時代になりつつあります。だからこそ、社会をびっくりさせる新しいメディアやサービスを作るには、「どんなものを作りたいか」という柔軟な発想力が、結局は求められるのかもしれないですね。