2回目の今回は、「プログラミング言語」「コンピューター言語」について説明します。どんなものを作るのに使われているのか、どんな種類があるのかをご紹介しましょう。
「コンピューター言語」とは
皆さんは、「プログラム(ソースコード)を書ける人」と聞いて、どんなイメージを描きますか。
一口にプログラムと言ってもいろいろあります。料理に日本料理、フランス料理などの種類があり、それぞれの料理人のスキルが異なるのと同じように、プログラムの世界にもいくつか種類があり、それを作る人のスキルは異なります。
「どのような言語があるのか」や「なぜいろいろな言語があるのか」といったことは後ほど説明するとして、まずはコンピューター言語がどのような場面で使われているのか、例を紹介します。
例1 : Webサイト
ITにおいてソフトウェア、プログラム、アプリケーションと呼ばれるものはすべてコンピューター言語で作られています。
この記事をご覧になっている皆さんにとって、プログラムの最たる例は、本サイト「IT Search+」ではないでしょうか。Webサイトはすべてプログラムとして作られています。本サイトでは、「HTML」「JavaScript」「CSS」「PHP」などのコンピューター言語が使われています。
例2 : パソコン/スマートフォン
LINEやSiriなど、皆さんがパソコンやスマートフォンで使っている「アプリ」、すなわちアプリケーションも身近な例の一つでしょう。使われているコンピューター言語は、「Java」や「C#」などさまざまです。
また、WindowsやMac OS、iOS、AndroidといったOS(オペレーティングシステム)も同じようにコンピューター言語で作られています。OSは、CPU、メモリ、ディスプレイ、マウス、キーボードなどのハードウェアを制御するための基本ソフトウェアです。OSがあるおかげで、画面をタップなどの基本的な操作を一からプログラミングする必要がないのです。
では、コンピューター言語にはどのような種類があるのでしょうか。次章でそれをご説明します。
コンピューター言語の紹介
一般的なWebアプリケーションの場合、皆さんがWebブラウザなどを通して触れる「フロントエンド」部分と、裏側でさまざまなデータを処理する「バックエンド」部分で異なる種類のコンピューター言語が使われます。
両者の違いについて例を用いて説明しましょう。
フロントエンドとバックエンド
突然ですが、ここで一旦ハンバーガーショップに行ったことをイメージしてみてください。
- あなたはレジの前に立ち、レジ担当の店員さんに「チーズバーガーをください」と言い、お金を渡します。
- レジ担当の店員さんは、ハンバーガーを作る店員さんに注文を伝えチーズバーガーを作ってもらい受け取ります。
- レジ担当の店員さんは、レジにお金を入れレシートを受け取ります。
- あなたはレジ担当の店員さんから、チーズバーガーとレシートを受け取ります。
この一連のやりとりを図にすると以下のとおりです。
ただ、「チーズバーガーを買いたいあなた」からすれば 、次の2行で事足りるはずです。
- あなたはレジの前に立ち、レジ担当の店員さんに「チーズバーガーをください」といい、お金を渡します。
- あなたはレジ担当の店員さんから、チーズバーガーとレシートを受け取ります。
図にするとこうなります。
あなたからすると、店員さん同士のやりとりや、店員さんのレジ操作などはどうでもいいわけです。
さて、プログラミング言語の話に戻ります。上記ハンバーガーショップのやりとりでは、「フロントエンド」「バックエンド」の役割が明確に分かれていました。
「レジ担当の店員さん」がフロントエンド、「ハンバーガーを作る店員さん」や「レジ」がバックエンドに当たります。
「あなた」に該当するのは「ユーザー」、すなわちWebサイトに触れる人です。
ユーザー(あなた)は自分の目的をフロントエンド(レジの店員さん)に指示します。すると、フロントエンドのプログラムは、バックエンド(ハンバーガーを作る店員さん)にあなたの指示を伝えます。そして、バックエンドのプログラムはあなたの指示を処理します(ハンバーガーを作る)。
バックエンドで処理した結果(ハンバーガー)は、フロントエンドのプログラムに渡され、ユーザーはフロントエンドから結果を受け取ります。
この例からわかるとおり、フロントエンドとバックエンドのプログラムは役割がまったく異なります。一般に、フロントエンドはユーザーとのやりとりを円滑に進めることに重きが置かれ、バックエンドはユーザーから求められた処理を実行する役割を担います。双方でコンピューター言語は異なるものが使われ、開発作業も分けて進められます。
フロントエンド開発で使われるコンピューター言語
フロントエンド開発で使われるコンピューター言語は主に次の3つです。
- HTML
- CSS
- JavaScript
HTMLは、マークアップ言語と呼ばれるものになります。文字の色や大きさを変えたり、画像を配置したりと、Webページを作るときに必要な機能が備わっています。詳しくは次章で説明します。
CSSは、HTMLと組み合わせて使う記述形式と覚えておいてください。現在ではHTML単体でWebページを作ることはなく、HTMLとCSSが標準になっています。
JavaScriptは、HTML/CSSだけでは難しい複雑な処理を実現するプログラミング言語です。現在では、フロントエンド開発だけでなくバックエンド開発にも使えるような進化を遂げています。ちなみに後述する「Java」というプログラミング言語と名前が似ていますが、まったく異なるプログラミング言語なので、注意しておきましょう。
バックエンド開発で使われるプログラミング言語
バックエンド開発で使われるプログラミング言語は多岐にわたりますが、大きく分けて「コンパイラ型」と「インタープリタ型」の2種類にわけることができます。
「コンパイラ型」の代表的な言語としてJava、C/C++、Scalaなどが挙げられます。これらの言語は事前に「コンパイル」と呼ばれる処理を行う必要があります。実行速度は速いですが、学習難易度は比較的難しいものが多いです。
「インタープリタ型」の代表的な言語としては、Ruby、Python、PHPなどが挙げられます。コンパイラ型と異なり事前に処理を行う必要はありませんが、実行速度は比較的遅めで、学習難易度は易しいものが多いです。
言葉だけではわかりづらいかもしれませんが、実際に触れてみるとご理解いただけるはずです。そのあたりは追ってご紹介していきましょう。
マークアップ言語とは
マークアップ言語とは、文章などにタグ形式のMark(印)を付け、装飾したり特別な意味を与えたりすることができるコンピューター言語です。「情報を見やすいかたちにする」ものとお考えいただければよいでしょう。
代表的なものとしては、先のHTMLや、XMLなどがあります。
HTMLはWebページを作るための言語として開発されました。文字の大きさ、リンク、画像などを指定でき、情報を人が見やすいかたちで表示することができます。
一方、XMLは情報を整理するために開発された言語です。XMLを使うと、例えば、「りんごは、色は赤で3個ある」「みかんは、色はオレンジで5個ある」といった情報を決まったかたちで記述できるようになります。
コンピューターが扱うデータにおいて、私たちが普段書く文章のように表現方法に決まりがないと、コンピューターにとって情報を探す手がかりがなく、高度な文章解析処理が必要になります。しかし、XMLのように記述形式が決まっていれば、コンピューターが情報を探しやすくなり、処理がスムーズに進められます。
マークアップ言語は目的をイメージしやすいため学習難易度は低く、またプログラミング言語をこれから学ぶ人でも入りやすい言語です
特にHTMLは、Webブラウザとテキストエディタさえあれば開発することができ、さらにCSSやJavaScriptと連携することでより柔軟なフロントエンド開発を学ぶことができるでしょう。
次回は、この記事で紹介したマークアップ言語の「HTML」について解説する予定です。
著者紹介
TechAcademy (https://techacademy.jp/)
プログラミングやWebデザイン、アプリ開発が学べるオンラインスクールを運営。
TechAcademyマガジンでは、プログラミングやWebデザインなど技術に関する最新トレンド、ツールの使い方を紹介しています。開発作業や学習に役立つコンテンツがご覧になれます。
なお、本稿はTechAcademy の「はじめてのプログラミングコース」を元に解説しています。