HTMLはプログラミング言語か?
結論としては
- HTMLはマークアップ言語である
- 広義の意味ではプログラミング言語と捉えることもある
という感じ。
普通のエンジニアは「HTMLができる=プログラミングができる」とは考えていないです。
※Webサイト制作系エンジニアの方は、プログラミング言語と認識している方も多いかも
目次
HTMLはプログラミング言語か?
HTMLはプログラミング言語か?という話題はエンジニアのQ&Aサイトでも何度か取り上げられた話題です。
いわゆるHTMLはプログラミング言語ではありません。 一部のプログラミング的性質を持ちますが、プログラミング言語と言っても多くの同意は得られないと思います。
それは、その名前がHyperTextMarkupLanguageであることからもわかります。 Markupとは、印刷出版業界において体裁などの指示伝達を指す単語です。
つまり、HyperTextの表現、どのように表示するかということを伝えるだけの言語で、それはいわゆるプログラミング言語のような汎用的な処理を行うことができません。
しかし、プログラミング言語の定義のうち、コンピュータに指示を伝える言語という事について、表示指示と言う限定的な指示であっても伝達するのでプログラム言語の性質を持ちます。
あるいは海外でも同様の議論はありまして、
No, HTML is not a programming language. The “M” stands for “Markup”. Generally, a programming language allows you to describe some sort of process of doing something, whereas HTML is a way of adding context and structure to text.
という話が一番票を集めていました。
HTMLはマークアップ言語
そもそもコンピュータへ指示を出す言語は
- プログラミング言語
- マークアップ言語
- スタイルシート言語
など多数あります。
HTMLはマークアップ言語でして、体裁を整えるための用途です(見た目を変えるのがメイン)。
有名なマークアップ言語としては「TeX」というものもありまして、こちらも科学技術の論文を書く際に「見た目を整形する(数式やグラフをキレイに出力する)」ために使われています。
誤解を恐れず言いうと、ワードの高性能版みたいなものです。
HTMLは広義のプログラミング言語
一旦整理すると、
- HTMLはマークアップ言語である
- HTMLをプログラミング言語に含めるかどうかはQ&Aサイトでも賛否分かれる(含めない声の方が多い)
という状況。
ただ、下記の意見が一番バランス取れているかな、と思います。
ということで、辞書上の意味としてもともと境界は曖昧な話ですが、とりあえずは
マークアップ言語であり「広義の」プログラミング言語でもある。少なくともプログラミングに用いる言語でもある。
と言っておけば、一定の合意が取れるでしょう。
そもそも「プログラミング言語の定義」が曖昧です。
人によって解釈が違います。
「コンピュータへ指示する言語=プログラミング言語」という考えならば、HTMLもプログラミング言語です。
JavaScriptやPHPを使ったWeb系プログラミングをする際に使うから、HTMLもプログラミング言語だ、という考えもあるでしょう。
まとめ:知らないと恥をかく&相手によって変えるべき
ということでHTMLはマークアップ言語だとまずは理解しましょう。
そして、人によってはプログラミング言語に含めている人がいるという現状も把握しておくと良いです。
現実的には「どんなプログラミング言語できる?」と聞かれたときに
- 普通のエンジニアに対して→HTMLができるとは答えない(恥をかく)
- 面接でプログラミングがわからない人に対して→HTMLができると答える(しっかり言わないと理解されない)
というのが落としところでしょう。
「結局どんな言語がプログラミング言語なの?」
という疑問をお持ちの方は、下記の本を読むと大体全体像が網羅できます。