HTMLProgramming Language이냐 아니냐는 꽤 오래된 프로그래밍 업계 밈(meme)입니다. 커뮤니티에서 해당 밈을 밈으로는 즐기지만 막상 이유를 궁금해하는 분들을 어렵지 않게 볼 수가 있습니다. 이게 왜 밈이 되었고, 논란이 많은 알아보고자 합니다.

HTML은 약자를 풀어보자면 Hyper Text Markup Language입니다. 이름에서 부터 HTML은 자신의 분류를 밝히고 있었습니다. 즉 Markup Language 마크업 언어입니다. 마크업 언어에는 HTML말고 XML, LaTeX 등이 있습니다. 그런데 우리는 왜 마크업 언어를 프로그래밍 언어인지 아닌지로 싸우고 웃고 떠드는 것일까요?

diagram
Fig.1 Compuer Language Tree

결론 부터 이야기하자면 HTML이 속한 마크업 언어는 Computer Language라는 상위 카테고리에 속해 있습니다. 컴퓨터 언어의 하위 카테고리에 프로그래밍 언어, 마크업 언어, CSS가 속해 있는 스타일 언어 등이 있습니다. 이 언어들의 공통점은 사람보다는 컴퓨터가 이해하기 쉬운 형태로 구성되어 있습니다. 프로그래밍을 시작하면서 C, Java 등 프로그래밍 언어를 먼저 배우고 웹 페이지 등을 구성하기 위해서 HTML을 배우거나 웹 프로그래밍으로 시작하는 경우가 대부분이라고 생각합니다. 이 때 어떤 순서로 HTML을 접해도 어떤 카테고리에 속해있고, 대분류가 무엇인지 알려주지 않습니다. 제가 이렇게 이야기하면 많은 책 저자 분들이 억울함을 이야기 하실 수도 있습니다. 우리는 분명 마크업 언어라고 이야기했는데 무슨 이야기냐고 억울해 하실 수도 있지만 그걸로 충분했다면 흥한 밈이 될 수 없었겠죠.

diagram
Fig.2 Language Tree

위 다이어그램(fig.1)은 영문판 위키피디아의 Computer Language를 레퍼런스로 그려진 그림입니다. 좀 더 확장하면 Fig.2 처럼 컴퓨터 언어 위에 인공어, 인공어를 감싸고 있는 언어로 트리를 그릴 수 있습니다. 위 계층도 정확한 계층도는 아닙니다. 중간 단계가 더 있기도 하고 분류 기준에 따라서 같은 내용도 다르게 그릴 수 있기 떄문이다.

저는 어떤 개념을 배울 때 계층도를 그리면서 범주를 나누는 것을 중요시 여깁니다. “HTML로 프로그래밍 합니다” 밈은 이런 계층 구조에 대한 학습이 없어서 퍼진 밈이라고 생각합니다.

결론: HTML은 컴퓨터 언어 하위 카테고리의 마크업에 속하며, 프로그래밍 언어와는 사촌이다.