목차
"HTML은 프로그래밍 언어가 아닌 마크 업 언어입니다"
"HTML에는 논리가 없습니다"
"HTML은 'Turing-Complete'가 아닙니다."
그렇다면 HTML은 프로그래밍 언어입니까?
웹 프론트엔드 CSS 튜토리얼 HTML은 프로그래밍 언어가 아닌가?

HTML은 프로그래밍 언어가 아닌가?

Mar 21, 2025 am 09:52 AM

HTML은 프로그래밍 언어가 아닌가?

HTML은 프로그래밍 언어가 아닙니다.

나는이 문장이 수많은 시간을 들었습니다. 지루합니다. 종종 "논리가 없다"또는 "튜링이 완료되지 않는다"와 같은 단어가 뒤 따릅니다. 따라서 프로그래밍 언어가 아닙니다. 마치 상황이 끝나는 것처럼 보였고 토론이 멈추어야했습니다.

그러나 정말 이렇게되어야합니까?

나는 종종 HTML을 평가 절하 하고이 진술이 완전히 옳지 않다는 것을 보여주기 위해 내 자신의 반박을하는 주장을 탐구하고 싶습니다.

저의 목표는 HTML이 프로그래밍 언어이거나 프로그래밍 언어가 아니라는 것을 증명하는 것이 아니라 프로그래밍 언어가 아니라고 주장하는 데 사용 된 세 가지 주요 주장이 결함이 있거나 잘못되었으므로 논리적 관점에서 결론을 무효화합니다.

"HTML은 프로그래밍 언어가 아닌 마크 업 언어입니다"

성명서 자체는 좋은 것 같습니다. 그러나 잘못되었습니다. 마크 업 언어는 프로그래밍 언어가 될 수 있습니다. 모든 마크 업 언어가 (주로 그렇지 않음)는 아니지만 가능할 수 있습니다. 우리가 프로그래밍 언어와 마크 업 언어의 벤 다이어그램을 그린다면, 그것은 두 개의 별도의 원이 아니라 약간 교차하는 원이 아닙니다.

변수를 사용하거나 제어 구조, 루프 등이 있거나 프로그래밍 언어가 될 수있는 마크 업 언어. 그들은 상호 배타적 인 개념이 아닙니다.

Tex와 Latex는 마크 업 언어와 프로그래밍 언어의 예입니다. 그들과 함께 발전하는 것은 실용적이지는 않지만 가능합니다. 기본 통역사 또는 Mars Rover Controller (2008 ICFP 프로그래밍 경쟁에서 배심원 상을 수상한)와 같은 온라인에서 몇 가지 예를 찾을 수 있습니다.

일부 마크 업 언어는 프로그래밍 언어로 간주 될 수 있지만 HTML이 그 중 하나라고 말하는 것은 아닙니다. 핵심은 초기 진술이 잘못되었다는 것입니다. 마크 업 언어는 프로그래밍 언어가 될 수 있습니다 . 따라서 HTML은 마크 업 언어이기 때문에 HTML이 프로그래밍 언어가 아니며 거짓 진술에 기초하고 있으며이 전제에서 얻는 결론은 절대적으로 잘못 될 것입니다.

"HTML에는 논리가 없습니다"

이 진술은 정의가 당신을 놀라게 할 수 있기 때문에 "논리"의 의미를 명확히해야합니다.

튜링 완전성 (곧 우리가 확실히 이야기 할 것임)과 마찬가지로,이 주장을 한 사람은 정확한 의미를 오해하는 것 같습니다. 나는 사람들에게 "논리"의 의미를 말해달라고 요청했고 아래에서 흥미로운 답변을 얻었습니다.

논리는 합리적인 추론이나 사고 방식입니다.

논리의 사전 정의를 찾고 있다면 괜찮습니다. 그러나 우리는 논리를 일반적인 용어 로서만 프로그래밍 논리에 대해 이야기하고 있습니다. 나는 또한 다음과 같은 답변을 받았습니다.

프로그래밍 언어에는 변수, 조건, 루프 등이 포함됩니다. HTML은 변수 나 조건을 사용할 수 없기 때문에 프로그래밍 언어가 아닙니다. 논리가 없습니다.

이것은 훌륭합니다 (그리고 진실/거짓/및/또는 등으로가는 것보다 확실히 낫지 만 잘못되었습니다. HTML에는 속성 형태의 변수가 있으며 이러한 변수/속성 및 제어 구조를 사용하여 표시되는 내용을 결정할 수 있습니다.

그러나 이러한 변수를 어떻게 제어합니까? JavaScript가 필요합니다!

다시 오류. 일부 HTML 요소에는 내부 제어 로직이 있으며 JavaScript 또는 CSS가 필요하지 않습니다 . 나는 그것에 대해 말하는 것이 아닙니다<link> 또는 그런 것 - 그들은 수십 년 동안 표준의 일부인 기본 제어 구조입니다. 요소의 현재 상태와 변수의 값에 따라 사용자 입력에 응답하고 조건부 작업을 수행하는 요소를 의미합니다. 에 의해 <details>/<summary></summary></details> 튜플 또는<dialog></dialog> 요소는 예입니다. 사용자가 클릭하면 열린 속성이 존재하면 닫힙니다. JavaScript가 필요하지 않습니다. 따라서 HTML은 논리가 부족하기 때문에 프로그래밍 언어가 아닙니다. 우리는 HTML이 실제로 사용자 입력을 기반으로 결정을 내릴 수 있다는 것을 알고 있습니다. HTML에는 논리가 있지만 데이터를 조작하도록 설계된 다른 언어의 논리와 본질적으로 다릅니다. 우리는 HTML이 프로그래밍의 형태가 아니라는 것을 증명하기 위해 이것보다 더 강력한 주장이 필요합니다.

"HTML은 'Turing-Complete'가 아닙니다."

좋아, 이것은 우리 가이 토론에서 가장 많이 보는 주장입니다. 기술적으로 (가장 좋은 종류의 정확), HTML이 틸트 포일이 아니라고 말하는 것은 옳습니다. 그러나 이것은 단지 그것을 최종 성명서로 사용하는 것보다 더 큰 논쟁을 일으킬 것입니다.

이 주제에 대한 많은 자원이 있기 때문에 튜링 완전성의 의미에 빠지지 않을 것입니다. 실제로, Lara Schenck은 CSS가 완전하다고 주장하는 그녀의 기사 중 하나에서 이것을 잘 요약합니다.

간단히 말해서, 언어 나 기계의 경우, 완벽 함은 튜링 머신이 할 수있는 일을 할 수 있음을 의미합니다. 즉, 계산, 즉 일반적인 계산을 수행하십시오. 결국, 프로그래밍은 수학 작업을 수행하기 위해 발명되었으며 물론 우리는 지금 더 많은 일을하고 있습니다!

대부분의 현대 프로그래밍 언어는 튜링에 완료되므로 사람들은이를 프로그래밍 언어의 정의로 사용합니다. 그러나 튜링 완전성은 사실이 아닙니다. 시스템 (또는 규칙 세트)이 튜링 머신을 시뮬레이션 할 수 있는지 여부를 식별하는 표준입니다. 프로그래밍 언어를 분류하는 데 사용될 수 있습니다. 프로그래밍 언어로만 작동하지 않습니다. 예를 들어, 게임 마인 크래프트 (이 표준을 충족) 또는 카드 게임 마법 (이 표준을 충족). 둘 다 튜링에 완료되지만 누구나 프로그래밍 언어로 분류 할 것 같지 않습니다.

일부 사람들이 편집 된 언어와 해석 된 언어의 차이가 좋은 표준이라고 생각했던 것처럼, 완전성은 이제 인기가 있습니다. 예. 개발자 (주로 백엔드)가 프론트 엔드 프로그래밍 (JavaScript 및 PHP 포함)이 "실제 프로그래밍"이 아님을 과소 평가할 때 걱정할 필요가 없습니다. 비록 지금도 퇴색하고 모호하고 속삭이는 때때로 당신은 여전히 ​​그것을 듣습니다.

프로그래밍 (또는 그렇지 않음)의 정의는 시간이 지남에 따라 변경됩니다. 피어싱 카드를 분류하는 누군가가 어셈블리 언어로 코드를 입력하는 것이 실제 프로그래밍이 아니라고 불평 할 것입니다. 돌에 보편적이거나 쓰여진 것은 없습니다. 실제 정의는 없습니다.

완전성은 공정한 기준이지만, 나는 그 형태가 아니라 선택의 방식으로 편향되고 주관적입니다. 튜링 컴퓨터를 생성 할 수있는 한 언어가 "프로그래밍 언어"로 간주되는 이유는 무엇입니까? 유한 상태 머신을 생성 할 수있는 다른 언어는 그렇지 않습니까? 이것은 주관적입니다 . 이것은 다른 사람이 "실제 개발자"(이 진술을하는 사람)와 그들만큼 좋지 않은 사람들을 구별하는 것과 같은 변명입니다.

설상가상으로, "HTML을 반복하는 많은 사람들이"핑크가 완료되지 않는다 "주문은 튜링-완성성이 무엇을 의미하는지 알거나 이해하지 못한다는 것은 분명합니다. 수상이나 품질의 표식이 아닙니다. 그것은 명예의 배지가 아닙니다. 프로그래밍 언어를 분류하는 방법 일뿐입니다 . 언어를 정의하는 대신 그룹을 그룹화하십시오. 프로그래밍 언어는 해석 또는 편집, 명령 적 또는 선언적, 절차 적 또는 객체 지향적 인 것처럼 프로그래밍 언어가 완료 될 수 있습니다.

그렇다면 HTML은 프로그래밍 언어입니까?

HTML이 프로그래밍 언어가 아니라고 주장하는 주요 인수를 평가 절하 할 수 있다면, 이것이 HTML이 프로그래밍 언어라는 것을 의미합니까? 아니, 그렇다고해서는 안됩니다. 따라서이 논쟁은 HTML 표준 개발 또는 프로그래밍 언어의 "현재 정의"가 변경 될 때까지 계속 될 것입니다.

그러나 개발자로서, 우리는 많은 경우에 심각한 토론에 영감을주지 않고 지하 동기를 숨기는 동안 논쟁을 불러 일으키는 데 사용되기 때문에이 문제에 대해 조심해야합니다. 편안한 인터넷 반응을 얻는 것에서 위험에 처한 사람들의 개발 생태계에 대한 사람들의 기여도를 줄이는 것입니다.

또는 Ashley Kolodziej가 HTML에 대한 그녀의 Ode에서 훌륭하게 요약 한 것처럼 :

그들은 당신이 다른 언어와 같은 실제 프로그래밍 언어가 아니라고 말하고, 당신은 단지 마크 업 언어이며 기술적으로는 그것이 옳다고 생각합니다. 기술적으로 JavaScript와 PHP는 스크립팅 언어입니다. 나는 그 당시 JavaScript를 이해하는 것이 시원하지 않았으며 "실제"언어도 아니었다는 것을 여전히 기억합니다. 때때로, 나는 우리가 당신 (그리고 개발자로서 우리 자신을 방해하는 어휘를 만들었던 것처럼 의미가 없다는 것을 알게됩니다. 마크 업 언어로서 귀하의 고유 한 가치와 장점이 있습니다. 당신을 가장 잘 사용하는 방법을 아는 것은 종종 간과되는 진정한 전문 지식입니다.

"HTML은 프로그래밍 언어가 아닙니다"라는 논의에서 우리의 입장이 무엇이든, 그 중요성을 부정하지 않고 축하합시다. HTML은 인터넷의 중추이다. 그것은 많은 문서화와 광범위한 문법을 ​​가진 아름다운 언어이지만 오후에는 배우기가 매우 간단하고 복잡하여 마스터하는 데 몇 년이 걸립니다. 프로그래밍 언어이든 아니든, 실제로 중요한 것은 우리가 HTML을 가지고 있다는 것입니다.

위 내용은 HTML은 프로그래밍 언어가 아닌가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WordPress 블록 및 요소에 상자 그림자를 추가합니다 WordPress 블록 및 요소에 상자 그림자를 추가합니다 Mar 09, 2025 pm 12:53 PM

WordPress 블록 및 요소에 상자 그림자를 추가합니다

Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성 Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성 Mar 07, 2025 am 11:33 AM

Smart Forms 프레임 워크로 JavaScript 연락처 양식 작성

내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다 내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다 Mar 02, 2025 am 09:03 AM

내용 부호 ​​속성으로 인라인 텍스트 편집기를 만듭니다

첫 번째 맞춤형 전환을 만듭니다 첫 번째 맞춤형 전환을 만듭니다 Mar 15, 2025 am 11:08 AM

첫 번째 맞춤형 전환을 만듭니다

node.js 및 Express의 Multer와 함께 파일 업로드 node.js 및 Express의 Multer와 함께 파일 업로드 Mar 02, 2025 am 09:15 AM

node.js 및 Express의 Multer와 함께 파일 업로드

5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교 5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교 Mar 04, 2025 am 10:22 AM

5 개의 최고의 PHP 양식 빌더 (및 3 개의 무료 스크립트) 비교

Codecanyon 2025에 대한 최고의 CSS 애니메이션 및 효과 (무료) Codecanyon 2025에 대한 최고의 CSS 애니메이션 및 효과 (무료) Mar 01, 2025 am 09:32 AM

Codecanyon 2025에 대한 최고의 CSS 애니메이션 및 효과 (무료)

스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례 스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례 Mar 08, 2025 am 09:45 AM

스크린 독자를 탈취시킵니다. 액세스 가능한 양식 및 모범 사례

See all articles