プログラミング言語は形式言語の一種で、コンピューターにやってほしい動作を記述するための言語です。 言語には、人と人のコミュニケーションに使う自然言語と、人とコンピューターとのコミュニケーションに使う形式言語があります。
一番の大元となるプログラミング言語は、マシン語です。コンピューターにどういう入力をいれると、どう記憶して、どう計算して、どう出力するか、各コンピューター毎に使い方が仕様書に書いてあります。
でも、ほとんどのプログラマーはコンピューターの仕様書を読んでマシン語で作っているわけではなく、プログラミング言語をマシン語に翻訳するアプリを使って、プログラミングしています。 幅広いコンピューターに対応する翻訳機があれば、1つのプログラミング言語を覚えるだけでいろんなコンピューターが動かせます。
プログラミング言語はいくつあるか?誰でもプログラミング言語は作れてしまうので、正確な数を把握しようがありませんが数万種類はあるでしょう。 有名どころでも Java, PHP, JavaScript, C++, C#, VisualBasic, Ruby, C, Objective-C, Perl, Python, COBOL, Swift(求人の多い順) と様々。 日本人が作って世界中で有名な言語に、Ruby(ルビー)もランクインしてます!
なぜいくつものプログラミング言語があるか?言語によって向き不向きがあり、動作環境が異なるからです。 iPhone/iPadのアプリは、Swift/Objective-Cが標準ですし、AndroidはJavaです。 ブラウザ上で動く言語はJavaScript、サーバーで動く言語はJava/PHP/Ruby/Perl/Python、 冷蔵庫や洗濯機など組み込み用家電にはC/C++、ゲーム機やパソコン用のゲームにはC++/C#・・・とばらばらです。
では、何から学び始めればいいか? 創りたいものがはっきり決まっていれば、それを実現するための環境に合った言語を選ぶのも手です。 Web上にちょうどいい参考資料や、先例を探し、それを使った改造から始めてみるのがいいでしょう。
プログラミングをやってみたい、ゲームをつくってみたいという大人や子供には、挫折しにくいやさしいプログラミング言語がおすすめです。 最古のプログラミング言語の学習用の言語 BASIC を始め、Scratchをはじめビジュアルプログラミング言語も数多くあります。 プログラミング言語を使い、学び、コンピューターを思い通りに動かせるまでに体得することで、プログラミング言語を勉強するコツが分かればこっちのもの。 自分のスマホで動くゲームを作りたければ、JavaScriptやSwiftやJava、サーバー処理に興味があればJavaやRuby、IoTなどデバイスの開発に興味が出ればC/C++と、他の言語へのステップアップする力が身につきます。
プログラミング言語を使うためにはコンピューターが必要です。 パソコンの保有率が低い日本の子供に、まずはプログラミングできるパソコンを持ってもらおうと作ったのが1500円パソコン「IchigoJam」。 IchigoJamのメモリ(RAM)はわずか4KB(4GBの約100万分の1)ですが、これは1976年に登場したApple社の初代パソコン「Apple I」と同じです。 使う言語は教育用に開発された BASIC を現代風にアレンジした IchigoJam BASIC、命令が100語ほどしかありませんが、楽しいゲームや、ロボットの制御、センサーを使った計測など応用範囲が広い上に、習得が簡単です。
5/14は福井県内3箇所でIchigoJamプログラミング教室が開催!
福井市のショッピングセンターパリオ内1F「PCNパリオCLUB」の2部制プログラミング教室がオープン!
午前中は福井高専名誉教授でHana道場でも講師を務める蘆田先生によるプログラミング教室。
午後は出入り自由のプログラミング教室。トイザらスのラジコンを改造して、IchigoJamでコントロール!
夕方、Hana道場では大人向けのはんだづけ&プログラミング教室。
ひさびさのはんだづけ、1時間ほどで出来上がって、起動した喜び、プログラミングしてLEDがつく喜びに、年齢は関係ありませんね。
かわくだりゲームをつくって、好きなキャラクターに変更して、ゲームオーバー音楽を作曲して、入門講座は終了!
コンピューターとプログラミングの「はじめのいっぽ」が、誰でも簡単に教えられる教材、ノウハウづくり、がんばります!
今日の配布教材「IchigoJam はんだづけ、ハーフキット、はじめのいっぽ、ミニゲームズ」CC BY ichigojam.net(オープンデータです)
※補足
形式言語:プログラミング言語の他に、HTMLやXMLなど表現を記述するマークアップ言語、SQLやSPARQLなどデータを取得するためのクエリー言語、電子回路を記述するためのハードウェア記述言語などがあります。
マシン語の仕様書の例:こちら、IchigoJamのCPUとして使っているNXP社製コンピューターLPC1114の日本語仕様書。