HTML과 CSS가 프로그래밍 언어가 아닌 것이 왜 중요합니까?


158

예를 들면 다음과 같습니다.

웹 응용 프로그램 작성에 관심이있는 경우 어떤 언어를 알아야합니까?

예, HTML과 CSS가 Turing-complete가 아님을 이해합니다. 예, 나는 명령형 언어가 아니라 선언적이라는 것을 이해합니다. 그러나 사람들이 왜이 언어들에 대해 질문 할 때 이처럼 놀랍고 명백한 사실로 머리를 숙이고 있습니까?


32
사람들이 이력서에 넣을 때만 버그가 발생합니다. "언어 경험 :"에서 jQuery를 JavaScript 옆에 두는 것은 더 나쁩니다.
Josh K

19
나에게 꽤 명백한 것 같습니다. 누가 어떻게 고용해야하는지 또는 특정 작업에 누가 할당해야하는지 파악해야하는 경우 본인은 어떤 기술을 보유하고 있는지 알아야합니다. 과제에 알고리즘 구현이 포함되어 있으면 HTML / CSS에 대한 배경 지식이있는 사람에게는 알고리즘을주지 않을 것입니다. 백그라운드 작성 명령 줄 C 프로그램 만있는 사람을 여러 브라우저에서 작동해야하는 복잡한 웹 페이지를 작성하도록 지정하지 않겠습니다. 나는 당신이 사람들을 고용하거나 관리하는 지위에 있었는지 모르겠지만, 당신은 이러한 작업이 상호 교환 가능하다고 맹세하는 많은 사람들을 만납니다.
Charles E. Grant

8
데이터는 단순한 코드이고 코드는 스마트 한 데이터입니다 : stackoverflow.com/questions/871833/…
Christoffer Hammarström

14
사람들은 OP의 질문을 이해하는데 실패했다. "일반적인 '언어'에 대한 토론에서 특정 유형의 재치가 CSS가 프로그래밍 언어가 아니라고 지적 할 필요성을 느끼는 이유는 무엇인가? ? " 우선, 어이. 감사합니다. 약간의 어리석은 JavaScript 트릭을 아는 사람이라면 누구나 얻을 수 있습니다. CSS의 숙달은 프로그래머가 거기에 있고 그것을 마스터 한 무언가를 의미합니까? 바로 이거 야. 그렇습니다. 우리가 다음 화성 로버를 프로그래밍하고 있는지 상관하지 않습니다. 그것은 확실한 타이 브레이커입니다.
Erik Reppen

7
XSLT는 이러한 맥락에서 생각해
볼만한

답변:


300

실제로 차이점은 무엇입니까?

프로그래밍 언어와 다른 언어 간의 실제적이고 중요한 차이점은 다음과 같습니다.

HTML과 CSS는 프리젠 테이션을 설명 하지만 프로그래밍 언어는 함수를 설명 합니다

나는 왜이 차이가 중요한지 설명하려고하지만이 문제에 대한 논란은 때때로 잘못되었습니다.

실화 :

한 번은 "적절한"프로그래밍 언어를 사용하여 복잡한 성능 관리 시스템을 개발하는 데 몇 달을 보냈습니다. 다양한 다른 시스템에서 데이터를 수집하는 프로세스를 자동화하고 해당 데이터에 대한 다양한 조작을 수행 한 다음 결과를 간단한 테이블로 표시했습니다.

실무 관리자는 비슷한 비즈니스를 위해 작성된 도구를보고 대체 도구를 사용하여 작성한 것을 대체 할 수 있는지 물었습니다. 또한 그는 몇 주 동안이 새로운 앱이 작성된 솔루션을 개발하는 데 몇 주를 보냈다는 사실에 화를 냈습니다.

추가 조사에 따르면 관리자가 선호하는 옵션은 모두 물질이없는 프레젠테이션이었습니다. 색상과 아이콘 및 그래프가 많았지 만 그 뒤에는 논리없었 습니다. 모든 데이터는 수동으로 수집하고 조작해야했습니다. 예쁜 인터페이스에도 불구하고 응용 프로그램은 본질적으로 쓸모가 없었습니다.

문제의 관리자가 본인의 접근 방식이 실제 비즈니스 요구를 충족시키는 방법이라고 설득했습니다.

프레젠테이션의 중요성 :

HTML, CSS 등의 기술이 "실제"프로그래밍 언어의 기술보다 열등하다는 의미가 종종 있습니다. 이것은 심각한 실수입니다.

필자의 이야기에서, 선임 관리자는 디자인이 그에게 유리한 기능을 간과 할 수있을 정도로 디자인이 그에게 매우 중요 하다고 느꼈다 . 만약 이것이 고립 된 사건이라면, 매니저가 어리석은 짓이라고 제안 할 수 있습니다. 그러나 그렇지 않았습니다. 화려한 그래픽과 엉뚱한 위젯에 감명을 받았지만 원시 기능과 기술적 성과에 감명을받지 않은 사용자를 계속해서 만났습니다. 나는 여기서 배울 몇 가지 교훈이 있다고 생각합니다.

  • 사람들은 자신이 이해하는 기준에 따라 소프트웨어를 평가합니다. 그들은 종종 미모와 미운의 차이점을 이해하지만 기술적 인 뉘앙스에 대해서는 거의 감사하지 않습니다.
  • 사람들은 외모에 속아 있습니다. 이것은 좋은 것은 아니지만 우리가 함께 살아야하는 현실입니다.
  • 모양은 사람들이 소프트웨어에 대해 느끼는 방식에 영향을줍니다. 사람들이 소프트웨어에 대해 느끼는 방식이 그들에게 중요합니다. 실제로 사람들은 때때로 기능적으로 우수한 소프트웨어보다 기분이 좋은 소프트웨어를 선호합니다 . 실제로 기술적으로 우수한 도구보다 기분이 좋은 도구를 사용하면 생산성이 높아질 수 있습니다. 이 정도로 우리 사용자는 속지 않습니다. 그들은 실제로 현명하고 신중한 선택을하고 있습니다.
  • 프로그래머로서, 우리는 종종 기능에 집중할 때 프리젠 테이션의 역할을 무시합니다. 어느 정도까지는 이것이 옳고 적절합니다. 그러나 우리 업무에는 고객에게 중요한 또 다른 차원이 있다는 것을 인식하는 것이 중요합니다.

따라서 프리젠 테이션 지향 언어 (HTML, CSS)가 중요합니다. 이러한 도구를 효과적으로 사용할 수있는 사람들이 추가 한 가치를 과소 평가해서는 안됩니다.

실제 프로그래밍 언어의 중요성

OP가 지적했듯이 "실제"프로그래밍 언어는 Turing Complete입니다. 적절한 슬픈 괴짜로서, 나는 이것이 굉장히 매력적이라고 ​​생각합니다. 그것은 들어 있다는 것을 의미 어떤 최우수 언어로 작성된 프로그램, 기능적으로 상응하는 프로그램을 작성할 수 있습니다 다른 TC 언어입니다. 물론 모든 언어가 동일하다는 것은 아닙니다. 그들은 각각의 강점과 약점을 가지고있어 특정 작업에 다소 적합합니다. 그러나 I / O를 제외하고는 모든 프로그램이 모든 실제 프로그래밍 언어로 작성 될 수 있음을 의미합니다.

(우연히 중요한 것은 TC입니다. 선언적 대 명령형은 여기서 청어입니다. 예를 들어 SQL은 선언적이지만 TC이기 때문에 적절한 프로그래밍 언어입니다.)

물론 HTML이나 CSS와 같은 마크 업 언어도 마찬가지입니다. 실제로 이러한 언어로는 해결할 수없는 문제가 있습니다. 내가 프로그래밍 할 수 있습니다 어디에서 무엇이든 내가 원하는 레이아웃 엔진을 포함하여 - - 진정한 프로그래밍 언어로 그냥 TC하지 않은 언어와 같은 일을 달성 할 수 없습니다.

내 이야기에서 강조한 것처럼 HTML과 그 ilk는 프리젠 테이션을 생성하는 데 사용됩니다. 실제 프로그래밍 언어는 기능을 생성하는 데 사용됩니다.

프로그래머가 왜 모든 것에 대해 놀랄만합니까?

  1. 프로그래머는 기술 개발에 많은 시간과 노력과 돈을 씁니다. 사람들은 자연스럽게 자신이 투자하는 것을 중요하게 생각합니다 ( "당신의 마음은 당신의 돈이있는 곳입니다").
  2. 프로그래머는 종종 UI 디자이너가 얻은 빠른 결과와 비교하여 결과를 만드는 데 걸리는 시간을 정당화해야 할 필요성을 느낍니다. 이를 위해서는 두 그룹이 실제로하는 일을 구분 해야 합니다.
  3. 고용주는 올바른 사람들을 올바른 직업에 적용해야하기 때문입니다. 우리가 (종종 기술적) 차이점을 명확히하지 않으면, 관리자는 쉽게 잘못된 전화를 걸 수 있습니다.
  4. 위에서 설명한 것처럼 실제 적이고 근본적인 차이 가 있기 때문입니다 .

pedantic하는 것이 항상 적절합니까?

프로그래머로서 우리는 당연히 pedantic lot 입니다. 그것은 영토와 함께 간다. 프로그래머가 아닌 사람들이 우리가하는 일을 이해하지 못했을 때 많은 사람들이 화상을 입었다는 것은 도움이되지 않습니다.

그럼에도 불구하고 (그리고 솔직히 말하면, 이것은 내 본능에 위배됩니다), 사람들이 모든 작은 구별을 넘어때마다 사람들을 불러야한다고 생각하지 않습니다 .

여기서 중요한 것은 맥락관점 입니다.

생물학 자의 관점에서 토마토는 과일이라고 들었습니다. 하지만 슈퍼마켓에서 사면 야채 중에서 찾아요. 왜? 때문에 기술적 구분이 중요하지 않습니다 특정 상황에서. 더구나, 그 구별은 실제로 그들의 유용성을 방해 할 것입니다 : 예를 들어 과일 샐러드에 토마토를 담을만큼 멍청하다면.

컴퓨터 언어와 동일합니다. 프로그래밍 언어와 다른 언어의 차이가 실제로 중요한 경우가 있습니다. 그러나 종종 우리 모두가 함께 모일 때 완벽하게 효과적으로 의사 소통 할 수 있습니다. OP와 관련된 질문의 경우 실제로 어떤 언어가 진정한 프로그래밍 언어였으며 어떤 언어가 아닌지는 중요 하지 않았습니다. 구별을 지적해도 어떤 식 으로든 토론이 진행되지 않았습니다. 고맙게도, 약간의 소음을 추가하는 것 (그리고 흥미로운 토론을위한 자극이되는 것 외에) 외에 OP에 의해 연결된 페던 트리는 거의 영향을 미치지 않았다. 그러나 최악의 경우, 페 도리는 적어도 내 아내에 따르면 부정적인 감정을 불러 일으키고 관계를 손상시킬 수 있습니다.
:-)

프로그래머들 사이에서 pedantry를 다루는 방법

설교자 친구가 한 번 설교를했습니다 :

이것은 죽어 갈 가치가있는 언덕입니까?

그는 어떤 전투가 ​​싸울 가치가 있는지에 대한 전략적 평가를하는 장군을 언급하고있었습니다.

  • 이 구별을 만들기 위해 토론의 흐름을 방해 할 가치가 있습니까?
  • 내 pedantry는 오만이나 과거의 상처에서 비롯됩니까?
  • 내 의견은 내 자신뿐만 아니라 다른 사람의 기술을 중요하게 생각합니까?

물론, 구별해야 할 때가 있습니다. 저의 목표는 기부 할 때 우리의 공동 노력에 가치를 더할 것입니다.

결국, 모든 실제 프로그래머 의 직업입니다 .


4
T-SQL 또는 PL / SQL에 대해 이야기하지 않는 한 SQL이 Turing-complete라고 생각하지 않았습니다.
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner : 당신이 맞아요! 저를 데리러 주셔서 감사합니다. (그러나 내가 주장하는 요점-선언적 언어는 TC가 될 수 있음)
Kramii

1
아주 좋은 답변입니다. 웹 개발자로서 저는 제안 된 기능보다 "화려한"디자인으로 클라이언트가 훨씬 더 감동하는 상황을 반복해서 목격했습니다. 이것이 순수 프로그래머 프로그래머의 본능을 손상시킬 수는 있지만 (기능이 왕이어야 함) 우리의 위험에서 무시하는 것입니다.
Dan Diplo

4
+1 : Joel Spolsky에는 기능과 화려한 GUI의 문제를 다루는 흥미로운 블로그 게시물이 있습니다. 특히 기능이없는 경우 100 % 완성되고 매우 화려한 GUI를 표시 할 위험이 있습니다. 읽지 않았다면 잘 읽어보십시오. joelonsoftware.com/articles/fog0000000356.html
Leo

3
"기술적으로 우수한 도구보다 기분이 좋은 도구를 사용하면 생산성이 높아질 수 있습니다."-진실, 진실, 진실! 애플은 이것에 대한 사업을 구축했다. 나도 틀리지 말아라. 맥도 실체가 있지만, 어떤 사람들은 리눅스 나 윈도우보다 맥 컴퓨터에 대해 거의 두 배나 많은 돈을 지불하게 한 것은 시원해 보이고 사용 하기 쉽다 는 것이다.
GlenPeterson 2016

116

토목 또는 기계 엔지니어에게 "소프트웨어 엔지니어링"을 공부했다고 말하면 "소프트웨어 엔지니어링"이 실제 엔지니어링 이 아니라고 말할 것입니다 .

F-16 조종사에게 Cessnas를 재미있게 보내라고 말하면 실제 조종사 가 아니라고 말할 것 입니다.

의사에게 당신이 척추 지압사라고 말하면 그는 당신에게 말할 것입니다 ... 글쎄, 가지 마라 :-)

나는 대부분 사람들이 자신의 직업이 미숙 한 사람이나 실제로 "가치가없는"사람들에게 침투하는 것을 좋아하지 않는다고 생각합니다.

이제는 HTML과 CSS가 프로그래밍 언어 가 아니라는 것이 분명합니다 . .docx 형식이 프로그래밍 언어 인 더 이상 프로그래밍 언어가 아니며 HTML과 CSS가 모두 정확하다고 생각하는 경우 프로그래머라고 주장 할 수 있습니다. 그러나 답장의 일부 맹목은 내가 위에서 말한 것에 기인한다고 생각합니다.

또한 연결 한 질문에서 질문자는 HTML과 CSS를 "프로그래밍 언어"가 아니라 "언어"라고했습니다. HTML은 마크 업 언어이고 CSS는 언어이기도합니다 (CSS라고 부르는 언어의 "종류"를 모르십니까?) "...


7
"하지만 CSS라는 언어의"종류 "를 모르겠습니다." -꼬집어 "스타일 설명 언어"는 그것을 할 것입니다.
ocodo

28
@ acidzombie24 : "HTML"의 "L"은 무엇을 의미합니까?
Dean Harding

8
구문과 의미가 있으면 언어가 아니라고 주장하기가 어렵습니다. HTML과 CSS는이 기준에 따라 언어입니다 (영어, 에스페란토, 클링 온 및 틀림없이 UML). 그러나 그들 중 어느 것도 "프로그래밍"언어가 아닙니다.
Zach

6
@Dean Harding-하이퍼 텍스트 마크 업 레고?
VirtuosiMedia

4
CSS는 스타일을 설명하기위한 DSL (Domain Specific Language)입니다 (예 : 도메인은 시각적 미학 임)
Paul

9

그것은 나에게별로 중요하지 않습니다.

그러나 HTML, CSS, XML 등과 Real Programming Languages ​​™ 의 차이는 건축 자재로서 나무와 페인트의 차이와 비슷 하다고 생각합니다. 나무로 할 수있는 것처럼 페인트로 물건을 만들 수 없으며 , 마찬가지로 RPL로 할 수있는 것처럼 HTML로 프로그래밍 할 수 없습니다 .

그러나 일부 대화의 경우 그러한 구별을 만드는 것은 관련이 없으므로 농담스럽고 성가신 일입니다.


1
XML은 HTML / CSS보다 일반적이기 때문에 나쁜 예입니다. 예를 들어, XSLT는 XML이며 Turing-complete입니다. XML은 실제로 구문만큼 언어가 아니라고 생각합니다. 토큰이 정의되는 방식을 나타내지 만 의미는 아닙니다.
Tikhon Jelvis

@TikhonJelvis 나는 우리가 기본적으로 같은 말을하고 있다고 생각하지만 그렇게하는 동안 내 요점을 증명하고 있습니다. XML (eXtensible Markup Language)이 "언어"인지 "구문"인지에 대해 머리카락을 나누는 것은 제가 만드는 시점과 관련이 없으며, 따라서 ...
Eric King

6

프로그래밍 부분 에서처럼 일부 웹 사이트의 html / css 부분에서 많은 작업이 진행되기 때문에 "중요한"구분이 아닐 수도 있습니다.

그러나 그것은 이다 는 말은 무엇을 모르는 사람이 웹 개발을하는 팀에 자리가 없기 때문에, 상당한 차이.

디자이너가 HTML이 프로그래밍이라고 생각하면 Adobe 도구를 사용하여 디자인을 유지하고 인쇄 관련 디자인을 수행 할 수 있습니다. 그러나 그가 웹 앱에 대해 할 말을 믿지 마십시오.

개발자가 '자신의'언어가 Turing-complete이기 때문에 자신이 디자이너보다 높다고 생각하는 경우, 디자이너와 잘 어울리거나 코드가 완성 된 후 '예비'될 수 있다고 기대하지 마십시오.


@Javier : "프로그래밍 언어"에 대한 정의는 무엇입니까?
Christoffer Hammarström

@ Christoffer Hammarström : 공식적인 정의를 제공하기 위해 눌렀다면, 튜링 완성과 함께 갈 것입니다. 그러나 비공식적으로 나는 단지 어떤 입력에 응답하여 프로그램 일을 한다고 말합니다 . 일반적으로 런타임 if ... then구성 이없고 이전에 알 수없는 횟수만큼 반복 할 수있는 방법이 있다면 프로그래밍 언어가 아니라고 생각합니다. 물론, 정의를 복잡하게하는 일부 언어가 있습니다. 그러나 HTML / CSS 와는 거리멀다 .
Javier

@ 하비에르 : 표준 "Hello World"는 입력이 없다면 프로그램이라고 말할 수 있습니까?
Christoffer Hammarström

@Javier : Wikipedia ( en.wikipedia.org/wiki/… ) 에 대한 토론에 따르면 , 초기 버전의 Pixel Shader 언어는 Turing-complete가 아니 었습니다 ( "일반화 된 반복 기능"없음). 알 수없는 횟수 "). 이들은 유명한 게임에서 그래픽 처리 장치를 프로그래밍 할 때 프로그래머 만 사용하는 언어입니다. 여전히 프로그래밍 언어가 아니라고 말할 수 있습니까?
Christoffer Hammarström

@Christoffer : Hello world에는 입력이 필요합니다. 실행시작 해야합니다 . 그러나 Pixel Shader에 대한 귀하의 관찰은 흥미 롭습니다.
Robert Harvey

5

"명령 적이 지 않고 선언적"이라고 말했을 때 머리에 닿았습니다. 마크 업 (HTML, CSS 등)이 설명합니다. 프로그래밍의 요점은 일 을 하는 것입니다.

마크 업을 사용하는 데 필요한 기술 세트는 프로그래밍하는 데 필요한 기술 세트와 완전히 다릅니다.

마크 업을 작성하여 해결되는 문제 유형은 프로그래밍으로 해결 된 문제 유형과 완전히 다릅니다.


16
순수한 기능적 프로그래밍 언어는 본질적으로 선언적입니다. Linq, Python의 목록 이해, XAML, XSLT, SQL 및 Prolog도 마찬가지입니다. 모두 선의의 프로그래밍 언어 및 / 또는 개념입니다. 하지만 대부분의 프로그래밍 언어가 필수적이며,이는 하지 정의하는 기능입니다. 조금도.
Konrad Rudolph

@KonradRudolph-순전히 기능적인 프로그래밍 언어가 어떤 의미에서든 선언적이라고 생각한다면, 그것들을 잘 이해해서는 안됩니다.
Jonathan Cast

@jcast 뭔가 잘못 이해했을 가능성이 있습니다. 그러나 그 분야의 전문가들도 마찬가지입니다. 일반적으로 Wikipedia는 함수형 프로그래밍 언어를 선언적으로 분류합니다. 구체적인 예로 순수 선언 언어 작업을위한 박사 학위를 소지 한 Paul Bone도이 정의를 따릅니다. 나는 당신이 그 정의에서 어떤 이유를 공격하는지 알고 싶어합니다.
Konrad Rudolph

5

표면에 로켓 과학이 없지만 실제로는 당신이 실제로 관심을 갖는 5 ~ 수십 개의 서로 다른 환경에서 다르게 구현되기 때문에 많은 사람들이 중요합니다. 이러한 종류의 예측 불가능 성과 공예에 대한 관심은 정량화 할 수없는 위험으로 인해 끔찍하고 학위를 확보 한 후 절대적으로해야 할 일을 배워서 더 끔찍한 특정 기술 전문가를 두려워합니다.

누군가 내가 알고있는 언어를 묻고 거기에서 CSS를 던지고 "실제 언어가 아닙니다"라고 말한 경우 IE 5, IE 6-8 및 IE9 +에서 div를 수직으로 중심으로 처리하는 방법을 묻습니다. 그런 다음 둥근 모서리, 알파 투명성 문제, REAL의 범인은 이제 막 진실한 관계가 없어지기 시작한이 엄청나게 많은 표-레이아웃 인수의 배후에있을 수 있습니다. 10 년 전에 대학에 진학해야했던 수업 때문에 거의 기능적으로 글을 읽지 못한다고 주장하는 언어.

그들은 분명히 '언어'입니다. 나는 그것들을 '프로그래밍 언어'라고 부르지 않을 것이다. 이 언어 '코딩'으로 작성하는 과정을 설명하는 것이 편합니다.

그러나 내가 걱정하는 한 CSS 마스터를 관리 한 사람은 chutzpa를 가지고 있으며 훌륭한 프로그래머가되기 위해 윤리적으로 일하고 있으며 이미 객체 지향적 사고에 대한 배경 지식을 가지고 있으며 그가 무엇을 어떻게 생각하는지 배우는 데 의심의 여지가 없습니다. 글은 이제 자신의 작업에 25 개의 프로젝트를 영향을 줄 수 있습니다.


2
+1. "프로그래머"가 HTML / CSS를 단순 프로그래밍이 아니라 단순 프로그래밍으로 사용한다고 들었습니다. 그런 다음 Firefox에서 글 머리 기호 목록이 올바르게 정렬되는 이유를 알 수 없으면 손을 잡고 전체 웹이 최신 소프트웨어에 적합하지 않다고 선언합니다. (
Graham

3

HTML과 CSS는 프로그래밍 언어가 아닙니다. 극복 해

그러나 JavaScript는 프로그래밍 언어입니다. 기계는 브라우저입니다. PHP는 프로그래밍 언어입니다. 머신은 서버에서 가상 머신입니다.

따라서 HTML 및 CSS 만 사용하는 경우 프로그래밍을 수행하지 않습니다 (엔지니어링을 수행하는 경우도 있음).

그러나 JavaScript, PHP 또는 다른 스크립팅 언어를 사용하는 경우 프로그래밍 중입니다.

실제 프로그래밍 언어에 관해서는. 머신 (실제 머신 또는 가상 머신)에서 작업중인 경우. 그리고 자신의 알고리즘을 사용하여 머신에게 작업을 지시합니다. 그런 다음 REAL 프로그래밍 언어를 사용하고 있습니다.


6
결국 HTML, CSS 및 SQL을 생략 할 수 있다고 생각 합니다. 결국 어쨌든 실제 프로그래밍 언어 가 아니기 때문입니다. 실제로, 솔직히 가치가있는 프로그래머라면 커맨드 라인 편집기로 할 수 있기 때문에 IDE도 생략 할 수 있습니다.
Robert Harvey

4
나는이 답변을 개인적으로 downvoted하지 않았습니다 (나는 -6이면 충분하다고 생각합니다). downvotes의 이유는 이것이 실제로 질문에 대답하지 않기 때문입니다. 문제는 "HTML & CSS 프로그래밍 언어입니까?"가 아니라 "왜 중요한가?"입니다.
Dean Harding

6
@Robert 그것은 완전히 의심 스럽다. "X는 쓸모가 없다"는 "X는 Y가 아니다"라는 Ricardo의 주장을 따르지 않는다.
Matthew 읽기

4
@Lennart Regebro @Robert Harvey : @Matthew Read의 입장은 대화의 핵심입니다. 당신은 거짓을 거부하면서 우월감을 느끼고 있습니다. HTML / CSS 매우 어려우며, 내가 할 수있는 곳이없고 기술이 부족하기 때문에 나를 위해 할 수있는 사람들을 고용합니다. 그것은 기술 설계 기술이며 프로그래밍 이 아닙니다 .
Orble

3
"프로그래밍"이라는 단어를 광범위하게 만드는 것은 거의 의미가없는 것입니다. 그 의미는 그것보다 좁으며, 당신은 다른 의견을 가질 수도 있지만, 언어는 대다수가 그것을 의미하는 것을 의미한다는 것이 밝혀졌습니다.
Matthew 읽기

3

프로그래밍 언어는 실무자와 일반인도 사용하는 일반적인 용어이므로 부정확 한 용어입니다. 개업의는 평신도가 아닌 그 용어의 미묘한 의미를 가지고 있습니다. 일반적으로 그들의 정의는 내가 즉시 이해하지 못하는 재미있는 단어 / 구문이 있고 프로그래머가 그것을 사용하는 경우 프로그래밍 언어 여야합니다. 마크에서 완전히 벗어난 것은 아니지만 정확하지 않다는 데 동의 할 수 있습니다.

선언적, 명령형 및 완전 완성과 같은 단어는 매우 구체적인 의미를 가진보다 정확한 용어입니다. HTML / CSS가 프로그래밍 언어가 아닌 이유와 같은 질문을 할 때 프로그래밍 언어가 실제로 무엇인지에 대한보다 정확한 정의를 요구합니다. 우리는 현혹 적이 지 않지만 귀하의 질문에 답변하려고합니다. 당신이 그들을 구글하더라도 그 단어의 의미를 이해하기 어려운 경우에 사용하기 가장 좋은 용어입니까? 다릅니다. 짧거나 긴 대답을 원하십니까? :-)

프로그래밍 언어는 일반적으로 프로그래머가 완전히 완성한 것으로 생각되지만 그 의미는 무엇입니까? 그것은 언어가 행동이나 행동을 설명 할 수 있다는 것을 의미합니다. 우리는 그것을 공식적으로 논리라고 부릅니다. HTML / CSS는 오른쪽 상단 모서리에 버튼이 있거나 4 행 5 행, 처음 2 행은 노란색, 하단 행은 녹색 텍스트, 테이블의 각 셀에 5 픽셀이있는 테이블이 있다고 설명 할 수 있습니다. 내용 주위에 빈 공간이 있습니다.

HTML / CSS가 할 수없는 것은 단추를 클릭 할 때 발생하는 동작 또는 논리를 표현하는 것입니다. 버튼을 클릭하면 해당 테이블에서 값을 가져 와서 합산하고 테이블 하단의 새 행에 값을 씁니다. 묘사 행동은 지나치게 페데 틱하지 않고 터닝 완료와 거의 같습니다.

보다 정확하게 Turing-complete는 언어 자체를 구현할 수 있음을 의미합니다. 그것은 내가 자바 스크립트 문자열을 취하는 자바 스크립트 프로그램을 작성할 수 있고 eval () 함수를 사용하지 않고 그것을 실행할 수 있음을 의미합니다. 실제로, 나는 Turing 완전한 언어로 작성된 프로그램을 가지고 그것을 평가할 수있는 자바 스크립트 프로그램을 작성할 수 있습니다. 그것이 튜링 완료라는 의미입니다. 터닝이 완료된 모든 언어는 어떤 프로그램을 표현할 수 있는지와 동일합니다. 당신이 그것에 대해 생각하면 아주 놀라운 계시.


튜링 완료 는 언어를 사용하여 튜링 기계를 시뮬레이션하거나 튜링 계산 기능을 계산할 수 있음을 의미합니다.
mipadi

3
@pipadi-매우 정확하고 정확한 정의를 드리겠습니다. 그러나 이와 같은 질문을하는 사람은 "WTF는 Turing machine입니까? WTF는 Turing-computable function?"이라고 말할 것입니다. Turing Complete를 이해하지 못하면 Turing Machine 또는 Turing-computable 기능도 이해할 수 있습니까? 그것은 사전에서 수사라는 단어를 찾는 것과 같으며 "수사학에 관한 것, 수사에 관한 것 또는 관련된 것"이라고 말합니다. 그 정의는 수사법이 실제로 의미하는 바를 나타내지 않으며 이해하지 못하는 다른 단어를 가리 킵니다.
chubbsondubs

1

여기 내 센트가 있습니다. HTML과 CSS는 분명히 프로그래밍 언어가 아닙니다. 이런 이유로 "프로그래밍 언어"에서 누군가의 이력서에 HTML 또는 CSS가 표시되면이 사람이 자신이 말하는 내용을 모른다는 것입니다.

그 외에는 실제로 중요하지 않습니다.

그건 그렇고, 프로그래머는 일반적으로 pedantic 경향이 있습니다. 그것은 단순히 직업과 함께 제공됩니다.


4
따라서 다른 마크 업 언어 섹션이있는 공간을 낭비하고 싶지 않기 때문에 누군가가 그것에 대해 대략적인 여유를 갖지 못합니까? 나에게 그것은 유용한 것 이상으로 어려운 방법입니다.
Jon Hopkins

1
'프로그래밍'에서 HTML / CSS가있는 CV를 볼 때 +1하면 더 이상 읽지 않습니다. 그는 그 차이를 모르기 때문에 (나를 위해 쓸모가 없다) 또는 내가 그 차이를 알지 않기를 희망한다 (그래서 나는 그와 함께 일하고 싶지 않다)
Javier

2
@Jon Hopkins : 디테일에 대한주의는 프로그래머에게 필요한 품질입니다. 프로그래밍 언어에 HTML을 넣는 것은 대략적인 것이 아니며 조잡합니다. 프로그래머로서 직업을 신청하는 경우 첫인상이 매우 나빠집니다.
Dima

1
@ 디마 : 절대적으로. 비공식은 괜찮습니다. 때로는 서면으로도 거래의 기본 개념에 대한 부정확성은 용납 될 수 없습니다.
Javier

1
이건 말도 안돼 이력서 및 인터뷰는 현재 업계에서 가장 문제가되는 부분 중 하나입니다. 차이를 아는 사람이 여전히 "HTML"을 "프로그래밍 언어"에 넣었는지 알 수 없습니다. 일부 HR 드론은 "마크 업 / 디자인 / 등"에서이를 인식하지 못하고 이력서를 쫓아냅니다. 당신은 적어도 그것들을 불러 오거나 가져와야합니다. 그들이 당신에게 "HTML로 프로그램"한다고 말하면, 그것은 정말로 붉은 깃발입니다. 그러나 다시 HTML 5만으로 지금 무엇을 할 수 있는지 생각해보십시오! 정말 스트레칭입니까?
Graham

0

중요하지 않습니다. 또한 정의의 문제이기도합니다. 프로그래밍 언어 란 무엇입니까? 일부는 튜링이 완전해야 함을 의미합니다. 다른 것들은 HTML을 프로그래밍 언어로 만드는 다른 정의를 가지고 있습니다. (그리고 당신의 예에서, 그것들은 프로그래밍 언어 라 불리는 것이 아니라 단지 언어 일뿐입니다).

나의 추천 : 이런 종류의 무의미하고 많은 의미에서 잘못된 주장을 지적하는 사람들을 무시하려고 노력하십시오. 문법 나치즘의 변형 일뿐입니다. HTML을 프로그래밍 언어라고 부르는 것은 의미가 없습니다.


7
-1 HTML은 프로그래밍 언어 가 아니기 때문에 의미가 있습니다. HTML 의 기본 요소는 없습니다. 기술 드로잉에 관한 책이 프로그래밍 언어 인 같은 확장으로 페이지의 레이아웃을 설명 할뿐입니다.
Orbling

1
@Orbling : 의미하는 가장 일반적인 정의에 따라 도메인 별 선언적 프로그래밍 언어입니다. 예를 들어 , en.wikipedia.org/wiki/를 참조하십시오 . 죄송합니다. 실패합니다. 완벽하게 일반적이고 합리적인 정의에 따르면, 그들은 되는 프로그래밍 언어. 그리고 완전히 다르지만 똑같이 합리적이고 일반적인 정의에 따르면 이들은 프로그래밍 언어가 아닙니다. 두 가지 견해가 모두 맞습니다. 그러나 다른 사람들의 우두머리에 대한 견해를 밝히는 사람들은 안전하지 않으며 HTML 사용자보다 우월해야합니다.
Lennart Regebro 1

8
"프로그램"이라는 단어는 일반적으로 동의 된 정의 된 의미를 갖습니다. HTML로 프로그램을 만들 수 없으므로 HTML로 무언가를 만드는 것은 "프로그래밍"이 아닙니다. 다르게 주장하는 사람은 자신의 주장에 사용하는 단어의 의미가 임의로 변경 될 수 있으며,이 경우에는 아무 의미가없는 단어를 임의로 할당 할 수 있습니다.
Matthew 읽기

4
@Orbling : "HTML 사용자와 함께 일하는 것"이 ​​새로운 "내 친구 중 하나가 {insert minority group here}"입니까?
아논.

2
프로그래밍 언어의 모든 표준 정의 인 @Lennart Regebro는 Wikipeida에서도 프로그래밍 언어가 알고리즘을 설명 할 수 있다고 말합니다. HTML과 CSS에서 알고리즘을 어떻게 설명 할 수 있습니까?
Charles E. Grant 5

0

HTML과 CSS는 이것에 달려 있다고 생각합니다. HTML과 CSS는 약간의 정통성을 요구하기에 복잡하지만 프리젠 테이션 언어이며 생성 된 보고서의 형식에 가장 적합합니다. 따라서 이러한 작업 만 수행 할 수있는 사람은 코더로 간주되지 않습니다. 일부 코더는 평균 워드 프로세서가 HTML보다 텍스트 스타일을 지정하는 데 더 많은 명령 구문을 사용했을 때를 기억할만큼 오래 컴퓨팅에 참여해 왔다는 점을 염두에 두십시오.

'실제'언어라고하는 것은 보고서를 생성하기 위해 어떤 방식으로 데이터를 처리하는 것입니다. 또는 게임을 작성하는 데 사용될 수있는 것. HTML과 CSS를 안팎으로 아는 것은 귀중한 기술이지만 프론트 엔드에 대한 JS 지식과 백엔드에 Java, PHP, Perl, Ruby, Python, C / C ++ 또는 C #에 대한 지식과 훨씬 더 잘 결합되어 있습니다.

반대로 웹 프론트 엔드 기술이없는 '실제'언어 중 하나만 알고있는 사람은 코더로서의 유연성을 크게 제한하고 있습니다.


컴퓨터에서 완전히 실행되고 실행되는 언어를 제안합니다. C 코드를 디버깅하고 CSS 스타일을 디버깅했습니다. 나는 후자가 전자보다 오래 걸릴 수 있다고 확신 할 수 있습니다 (어떤 사람이 포인터로 어떤 끔찍한 일을했는지 ​​vs 당신이 작업하려고하는 사양의 일부를 모호하게하는 것에 달려 있습니다. % $ @ 브라우저가 잘못 보입니다). HTML만으로는 실제로 많은 것을 말하지는 않지만 CSS의 전체 표현과 결합하면 상당히 흥미로울 수 있습니다.
Danny Staple

2
어린이 놀이가 될 것이라고 생각한 개발자가 CSS와 마크 업을 다루는 것보다 나쁘지 않습니다.
Erik Reppen

0

논리적 인 "왼쪽 두뇌"또는 창조적 인 "오른 두뇌"비둘기 구멍 / 입체형은 많은 사람들의 기술을 정확하게 설명합니다. 내 경험상 "HTML / CSS는 프로그래밍 언어이다"는 HTML / CSS에 능통 한 사람들이 다른 프로그래밍 작업에도 능숙 할 수 있는지에 대한 것입니다.

지난 13 년 동안 제가 웹 개발을 해왔 던 대부분의 웹 디자이너는 HTML과 CSS를 만들 수 있었지만보다 까다로운 프로그래밍 문제 (가장 간단한 잘라 내기 및 그 이상)를 처리 할 수 ​​없었습니다. 붙여 넣은 JavaScript). 대부분의 핫 샷 프로그래머와 데이터베이스 디자이너는 HTML / CSS 또는 일반적으로 프레젠테이션을 잘 수행하기 위해 시각적 프레젠테이션에 관심이 없습니다. 대부분은 실제로 시도를 거부합니다.

HTML과 CSS는 실험, 문제 해결, 신중한 테스트, 상속에 대한 이해와 같은 프로그래밍 기술이 필요하지만 색상, 선, 간격, 균형에 대한 민감도와 같은 디자인 기술이 필요합니다. 좋은 사진을 만드는 시각적 구성 기술의 종류.

HTML / CSS는 레이아웃 또는 프리젠 테이션 언어이므로 데이터 플로우 다이어그램의 끝에 있습니다. 다운 스트림에 다른 코드는 없습니다. 좋은 API, 서비스 또는 데이터베이스 스키마를 디자인하기 위해 누군가가 필요로하는 더 큰 수준의 디자인 기술은 HTML 및 CSS에서 사용되지 않습니다. 일반적으로 HTML 또는 CSS와 관련된 것은 모듈화 할 필요가 없으며, 존재하는 경우 그래픽 디자이너가 할 필요가 없습니다. HTML / CSS로 모든 기능을 수행 하는 경우는 거의 없습니다 . 드롭 다운 메뉴는 가장 일반적인 예외 일 수 있지만 코드를 디자인하지 않고 웹에서 레시피를 잘라 붙여 넣을 수 있습니다.

프로그래머가 시각적 디자인이나 레이아웃 기술을 가지고 있거나 디자이너가 프로그래밍 기술을 갖고있는 것은 드문 일이지만 불가능하지는 않습니다. 이 사람들은 우리 대부분이 가진 격차를 해소하는 데 도움이되므로 웹 팀에서 특히 가치가 있습니다. 그러나 HTML / CSS를 할 수있는 것은 "실제 프로그래머"에게는 불가능하거나 그 반대의 경우도 종종 있습니다. 그러나이 기술 조합은 같은 프로그래머가 선원, 화가, 요리사 또는 여가 시간에 연습 할 다른 기술을 갖추는 것만 큼 불가능하지 않습니다.

다른 사람들이 말했듯이,이 구별은 고용 할 때 가장 집중됩니다. 크로스 오버 재능을 가진 사람들은 드물기 때문에 대부분의 구인 광고는 하나의 기술을 목표로해야합니다. 프로그래머가 "프로그래밍 언어"에 HTML / CSS를 표시하면 일반적인 프로그래밍 작업을 수행 할 수 없거나 프로그래밍 정의가 매우 좁다는 경고가 뜹니다. 어쩌면 그들은 할 수 있습니다, 그것은 단지 질문을 제기합니다. 디자이너가 HTML / CSS를 나열하면 포트폴리오를보고 원하는 시각 효과를 만들 수있는 예술적 능력이 있는지 확인해야합니다.

HTML / CSS는 실제 프로그래밍 언어가 아닌 것으로 반복해서 폐기 될 수 있습니다. HTML은 반구를 나누지 못하는 사람들을 폐기하는 것보다 안전하고 사회적으로 수용 가능하기 때문입니다. 물론 어떤 사람들은 그러한 억제가 없을 수도 있습니다. 실제로 한 관리자와 함께 일하면서 "그는 [백서 백본 기능 삽입]을 썼습니다. HTML을 방금 생각했다고 생각하십니까?"

좋은 질문입니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.