HTMLとCSSはプログラミング言語ではない!正解は何言語?

Webプログラミングを学ぶ上で、HTMLとCSSはプログラミング言語といえるのか、疑問に感じたことはありませんか?
そこで今回は、プログラミング言語の定義やHTMLとCSSが何言語なのかについて解説していきます。Webプログラミングの経験を積むだけでなく、こういった疑問を知識に変えて、一つ上のレベルのITエンジニアを目指しましょう。

HTMLとCSSはプログラミング言語ではない

Webプログラミングには欠かせない言語といえば、HTMLとCSSです。しかし、他のプログラミング言語の経験者には、コードの書き方が違い過ぎて混乱した人も多いでしょう。

それもそのはず、実はHTMLとCSSはプログラミング言語ではありません。それでは、HTMLとCSSは一体何者なのでしょう。
まずは、プログラミング言語の定義について学んでいきましょう。

プログラミング言語とは動作する言語

プログラミング言語とは、プログラム上で動作処理が行われる言語のことです。つまり、プログラミング言語の定義は次の通りです。

  • プログラムを作成するための言語
  • 計算ができて、データ処理が容易

プログラミング言語といえば、「Java」「C言語」「JavaScript」「PHP」「Ruby」などが有名です。各プログラミング言語は、プログラムを作成するために作られた言語です。

プログラミング言語は、いずれも足し算、引き算、掛け算、割り算などの計算ができ、効率的にデータ処理することでプログラムを作成します。

しかし、HTMLは「タグ」で指定された情報をWebサイト上に出力するだけで、CSSはHTMLを装飾するだけの言語です。ちなみに、Web上でデータ処理のできるWebサイトがありますが、そういったサイトは、HTMLから呼び出されたJavaScriptやPHPなどのプログラム言語がデータ処理をしています。

つまり、HTMLはプログラム言語が処理した結果を、出力しているだけで、HTML上でプログラムは動作していません。

HTMLはマークアップ言語

HTMLは、「マークアップ言語」といいます。マークアップ言語とは、HTMLのようにタグを使って、文字情報をクラス名などでマークする言語のことです。
マークアップ言語では、「見出し」「段落」「リンク」「画像」などの文章構造をテキストデータで定義します。

マークアップ言語には、HTMLの他にも、SGMLやXML、SVG、XHTMLなどがあります。一般的に使われているのは、HTMLですね。

CSSはスタイルシート言語

CSSは、「スタイルシート言語」といいます。スタイルシート言語とは、CSSのようにHTMLでマークされた文章のスタイルを整える言語のことです。
HTMLなどのマークアップ言語だけでもWebページのスタイリングは可能です。しかし、マークアップ言語は文章構造を定義するための言語であり、装飾に関してはスタイルシート言語を使って行うべきです。

実際、マークアップ言語のタグをどう出力するかは、ブラウザによって異なる場合があります。そのため、マークアップ言語を本来の役割とは違った使い方をしたWebサイトは、PCや検索エンジンに理解されない構造となる可能性があります。

スタイルシート言語には、CSSの他にも、SASSやLESSなどがあります。ただし、HTMLと組み合わせて使う場合には、CSSしか使われていません。単にスタイルシートと言われれば、CSSのことだと認識して良いでしょう。

プログラミングとコーディングの違い

プログラミングとコーディングは、同じような意味で使われている場合が多いですが、実は、明確な違いがあります。覚えておいて損はないでしょう。

  • プログラミング:プログラム完成までの全行程のこと
  • コーディング:コードを書く工程のこと

プログラミングとは、プログラムを作成する作業のことをいいます。プログラムの作成は、設計から始まり、プログラミング言語の記述、プログラムの動作テスト、バグの修正など、多くの工程を経て完成します。この完成までの全ての工程を「プログラミング」といいます。
一方、コーディングはコードを書く作業のことをいいます。つまり、プログラミングの中で「プログラミング言語の記述」の工程のみをコーディングといいます。

JavaやC言語で、プログラムを作っているのであれば、コーディングのことをプログラミングといっても間違いではありません。

しかし、HTMLやCSSは、プログラムを作っているわけではないので、コーディングをプログラミングといった場合、間違いだといえますね。
実際、コーディングといえば、HTMLとCSSの記述に使われる機会が多く、わかりやすいようにHTMLコーディングといったりもします。

まとめ

いかがでしたか?
今回は、HTMLとCSSがプログラミング言語でない理由と、マークアップ言語、スタイルシート言語の解説をしてきました。
チームでのサイト制作では、正しい役割分担をできているかが重要になります。そして、各言語の役割を認識することは、各言語で対応すべき処理を正しく分別できるようになります。

つまり、チーム開発のリーダー的な立場の人にとっては、今回学んだ知識は、重要スキルのベースとなる考え方だといえるでしょう。今回解説した内容を、ぜひ、サイト制作に役立ててくださいね。