HTML은 프로그래밍 언어에요?!??!
HTML
이 Programming Language
이냐 아니냐는 꽤 오래된 프로그래밍 업계 밈(meme)입니다. 커뮤니티에서 해당 밈을 밈으로는 즐기지만 막상 이유를 궁금해하는 분들을 어렵지 않게 볼 수가 있습니다. 이게 왜 밈이 되었고, 논란이 많은 알아보고자 합니다.
HTML
은 약자를 풀어보자면 Hyper Text Markup Language
입니다. 이름에서 부터 HTML
은 자신의 분류를 밝히고 있었습니다. 즉 Markup Language
마크업 언어입니다. 마크업 언어에는 HTML
말고 XML
, LaTeX
등이 있습니다. 그런데 우리는 왜 마크업 언어를 프로그래밍 언어인지 아닌지로 싸우고 웃고 떠드는 것일까요?
Fig.1 Compuer Language Tree
결론 부터 이야기하자면 HTML
이 속한 마크업 언어는 Computer Language
라는 상위 카테고리에 속해 있습니다. 컴퓨터 언어의 하위 카테고리에 프로그래밍 언어
, 마크업 언어
, CSS
가 속해 있는 스타일 언어
등이 있습니다. 이 언어들의 공통점은 사람보다는 컴퓨터가 이해하기 쉬운 형태로 구성되어 있습니다. 프로그래밍을 시작하면서 C
, Java
등 프로그래밍 언어를 먼저 배우고 웹 페이지 등을 구성하기 위해서 HTML
을 배우거나 웹 프로그래밍으로 시작하는 경우가 대부분이라고 생각합니다. 이 때 어떤 순서로 HTML
을 접해도 어떤 카테고리에 속해있고, 대분류가 무엇인지 알려주지 않습니다. 제가 이렇게 이야기하면 많은 책 저자 분들이 억울함을 이야기 하실 수도 있습니다. 우리는 분명 마크업 언어라고 이야기했는데 무슨 이야기냐고 억울해 하실 수도 있지만 그걸로 충분했다면 흥한 밈이 될 수 없었겠죠.
Fig.2 Language Tree
위 다이어그램(fig.1)은 영문판 위키피디아의 Computer Language
를 레퍼런스로 그려진 그림입니다. 좀 더 확장하면 Fig.2
처럼 컴퓨터 언어 위에 인공어, 인공어를 감싸고 있는 언어로 트리를 그릴 수 있습니다. 위 계층도 정확한 계층도는 아닙니다. 중간 단계가 더 있기도 하고 분류 기준에 따라서 같은 내용도 다르게 그릴 수 있기 떄문이다.
저는 어떤 개념을 배울 때 계층도를 그리면서 범주를 나누는 것을 중요시 여깁니다. “HTML
로 프로그래밍 합니다” 밈은 이런 계층 구조에 대한 학습이 없어서 퍼진 밈이라고 생각합니다.
결론: HTML
은 컴퓨터 언어 하위 카테고리의 마크업에 속하며, 프로그래밍 언어와는 사촌이다.