ネット技術の初心者がよく思う疑問、いわゆる初級者のFAQとして次の質問がよく出ます。
「HTMLってプログラム言語なの?」
「むむっ……」
おそらく、教える立場のプロフェッショナル・現場経験の豊富な職人でも、思わずうなってしまう質問ではないでしょうか。
今回は、HTMLはプログラム言語なのか、それともプログラム言語ではないのか、について、できるだけシンプルに考えてみます。
雰囲気的にはNO?:HTMLは、マークアップ言語
HTMLとは、「HyperText Markup Language」(ハイパーテキスト マークアップ ランゲージ) の略語です。
つまり、「マークアップ言語」なので、この時点で「プログラム言語」とは区別されている印象です。
実際のところ、HTMLをプログラム言語と呼んでいるのを聞くことはほとんどありません。HTMLがプログラムだと書かれた記事は少数派であるようです。
世の中の雰囲気、空気を読む限りでは、HTMLはプログラム言語ではなさそうです。
「ソフトウェアが解釈して実行表示する」という意味では同じ?
ソフトウェアが解釈して実行・表示する、という意味では、どちらも同じに見えます。
HTMLの初心者が練習する場合、たいてい以下の手順で行うでしょう。
- エディターでHTMLタグを書いて、保存
- 保存したファイルを、ブラウザ(Chrome、Edge、IE、Safari など)に読み込ませて表示
ブラウザというソフトウェアが、保存されたHTMLを読み込み、解釈して、表示します。
プログラム言語の代表的な例として「JavaScript」を考えてみると、まったく同じ構造であることがわかります。つまり、
- エディターでJavaScriptのプログラムを書いて、保存
- 保存したファイルを、ブラウザに読み込ませて実行・表示
HTMLの場合と、まったく同じです。
HTMLに計算する機能はない?!
HTMLタグの一覧表をあらためてみてみると、計算する機能がありません。
つまり、足し算や引き算などができません。ブラウザというソフトウェアが解釈して表示するなら、HTMLに計算式を書いて計算できてもよさそうなものですが、そういう機能はありません。
これに対して、プログラム言語と呼ばれるものには、必ず計算する機能があります。
プログラム言語は、数学を表現して計算できることがそもそものニーズ・目的であったために、複雑な数式をプログラムに書いて計算させることができるようになっています。
HTMLは計算できないから、プログラム言語ではないのでしょうか。
最終的な表示、ユーザーにみえるところで判別するなら…?
もう少し掘り下げて、最終的に表示するところ、ユーザーにみえるところを考えてみます。
HTML・マークアップ言語の場合、表示する側の自由
マークアップ言語の場合、表示する側が自由に表示します。
つまり、読み込んだHTMLをどのように表示するかは、ブラウザの自由、というのが基本です。
たとえば、h1 タグが書かれていた時に、それをどのような大きさで、どのようなフォント(書体)で表示するかはブラウザ(表示するソフトウェア)にまかされていて、自由です。プログラムによって、あるいは、ブラウザがそのとき判断した画面の大きさなどによって、好き勝手に表示します。
さらに、マークアップの記述が多少間違っていたとしても、ブラウザが「こーなんじゃねーの?」と思ったらそのように表示する考え方です。これはメリットにもデメリットにもなります。
ただし、HTMLの見た目は、「CSS」という技術によって細かく指定することができます。
プログラム言語の場合、プログラムがすべて制御
これに対して、「プログラム言語」といった場合、プログラム側・プログラムを書いた人がすべて制御することが普通です。
さらに、プログラムが少しでも間違っている場合、エラーが出て実行できなくなります。書かれたプログラムが意図しない動作を許さないのが基本姿勢です。
ただし、JavaScriptやPHPなどのプログラム言語では、プログラムがHTMLを出力する場合があるので、混乱は深まります。
まとめ
学術的な定義、専門的な話しを極限まで使わずに、「HTMLはプログラム言語なのか?」について解説しました。
お役に立てば幸いです。
コメント