프로그래밍 언어는 영어를 기반으로하는 데 어떤 이점이 있습니까? [닫은]


14

저는 현재 세계는 역사적 / 경제적 상황뿐만 아니라 특히 영어 형태가 알고리즘 사고에 가장 적합한 속성을 가지고 있기 때문에 영어 기반 프로그래밍 언어로 프로그램한다고 생각합니다. 그러나 어쨌든 특히 다국어를 사용하는 경우 이에 대한 의견을 듣는 것이 흥미로울 것입니다.

나는 독일 기반 언어에 대한 언급을 보았습니다 (예 : Plankalkul 참조 실제로 WW2 덕분에 우리가 거의 알지 못하는 최초의 프로그래밍 언어). 이진으로 존재하는지 아닌지 확실하지 않은 종이에. EN 기반 언어 에서처럼 전체 단어보다 짧은 단어와 이상한 약어가 더 많았 기 때문에 둘 다 조금 느리게 보였습니다. 따라서 다른 언어 기반 PL을 알고 있다면 오늘날에도 완전히 고풍스럽고 관련이없는, 심지어 이론적이거나 다른 것들을 살펴보면 흥미로울 것입니다.

그리고 주요 질문으로 돌아갑니다. 그렇다면 셰익스피어의 언어가 프로그래밍에 왜 그렇게 좋을까요?

(실제로 Wikipedia에는 영어 이외의 언어로 작성된 프로그래밍 언어 목록이 있지만 해당 국가의 프로그래밍 언어가 실제로 어떻게 느끼는지에 대해 해당 언어의 원어민의 의견을 듣는 것이 흥미로울 것입니다 처럼.)


3
@ 마이클 : 그는 "나는 생각한다"고 말했다. 그는 자신의 의견을 표현하고 있습니다. 그가 어떻게 그 의견에 도달했는지 물을 수도 있지만, 그가 출처를 인용 할 필요는 없다고 생각합니다. 우리는 그가 그의 의견이라고 말하면 그의 의견이라는 그의 말을들을 수 있습니다. 또한 그는 역사적 또는 경제적 상황이 없다고 말하지 않았으며, 이것이 유일한 요인이 아니라고 믿고 다른 것들에 대해 더 관심이 있다고 믿었습니다.
HedgeMage

1
@ 마이클 : 당신은 "컴퓨터는 주로 영어권 국가에서 발명되고 설립되었습니다"라고 말합니다. 지금은 역사적 / 경제적 상황입니다. 예를 들어 영국에서는 19 세기에 산업 혁명을 일으켰고 (실제로 전체 제국), 2 차 세계 대전 중 / 후 미국의 "두뇌 유출"또는 미국이 2 차 세계 대전 중 가장 적은 손실을 입었을 수 있습니다 산업 국가 등
mojuba

3
언어가 무엇이든 문법적으로는 중립적이어야합니다.
JeffO

1
@Jeff O : 성별뿐만 아니라 절대적으로. 기본적으로 모든 동사는 중립적이어야합니다. 영어로 된 동사의 형태는 다른 많은 유럽 언어와 비교할 때 매우 편안하므로 다른 무엇보다도 영어를 프로그래밍에 매우 좋게 만드는 요소라고 생각합니다.
mojuba

2
또한 이탈리아에서 음악에 대한 키워드를 제공하는 이유를 물을 수도 있습니다. 거기에 통찰력이있을 수 있습니다.
David Thornley

답변:


17

면책 조항 : 모국어는 독일어입니다.

키워드를 사용 하는 언어로서 영어 다른 자연어보다 더 좋은 이유는 없다고 생각 합니다. 나는 그것이 언어 적 특성 때문에가 아니라 IT 분야에서 가장 중요한 언어라고 생각합니다. 그러나 대부분의 기술 사람들이 어느 정도 언어를 사용하기 때문에, 그것은 분야에서 꽤 중요한 사람들의 대부분인 기술적 인 용어입니다. 이미 영어 등입니다

그러나 우리는 문서 / API / 이름 등이 아닌 프로그래밍 언어에 대해 이야기하기 때문에 다음과 같이 반대해야합니다. 프로그래밍 언어는 그 문제에 대해 영어 또는 다른 자연 언어를 기반으로하지 않습니다. 프로그래밍 언어는 공식 언어입니다. 그들은 (보통) 영어의 소수의 단어를 다양한 정도로 사용합니다. 어떤 사람들은 문법을 흉내 내려고하지만, 영어와 상관없이 완전히 읽지 못합니다. 부상에 대한 모욕을 더하기 위해, 그들은 빌린 각 단어와 단 하나의 의미 (단지 소수의)를 연관시킵니다. 종종,이 의미는 매우 전문적이고 전문적이거나 의심스러운 비유에 근거합니다. 따라서 프로그래밍 언어에서 빌린 단어의 무수한 자연어 의미를 아는 것이 키워드 뒤에있는 프로그래밍 개념을 이해하는 데 실제로 도움이되지는 않습니다. 내 머리 꼭대기의 예 : array,type, goto, class, void. 내가 다시 읽고 질문으로 마음에 튀는 (재미있는 사실 :이 모든을 제외하고는 goto대부분의에서 한 문자 이상 독일어 번역이 : Feld, Typ, Klasse, Leere. 그들은 나에게 이상한 모든 사운드, 그러나 아마 습관의 문제가 .)


2
수업 종류는 영어로 의미하는 것을 의미합니다. "class"는 "객체의 클래스"인 Type을 정의합니다. 모든 Int 값 또는 모든 Person 레코드는 특정 기능을 공유하므로 클래스에 속한다고 말할 수 있습니다. 그러나 대부분의 C 유사 프로그래머는 범주 용어로 생각하지 않으므로 "클래스"는 단지 "오브젝트 청사진"을 의미합니다.
CodexArcanum

7
영어가 우수합니다
Allen

동료 독일인으로서 나는 당신에게 전적으로 동의한다고 말해야합니다. 당신이 언급했듯이, 주된 이유는 영어가 IT 세계 언어라는 것입니다. 전 세계의 사람들이 매일 영어로 말하고 토론하고 프로그램하므로 거의 모든 관련 기사가 영어로 처음 게시됩니다. 책에도 동일하게 적용됩니다. 게다가 독일어로 번역되는 대부분의 책은 다소 잘못 읽었습니다. 일부 문구와 키워드가 번역됩니다. 그것은 흐름을 완전히 죽 입니다.
mhr

나는 영어 문법을 프로그래밍 언어로 변형시키는 것은 완전한 실수라는 것에 전적으로 동의합니다. 나는 "이 의미는 매우 전문적이고 전문적이다"라는 것에 동의하지 않습니다. 영어를 모국어로 사용하는 사람들은 개념을 기존 용어와 유사하게 묘사하는 것이 일상적인 의사 소통의 전형입니다. 언어로서의 영어는 느슨하게 해석되며 일반적으로 상황에 따라 다릅니다. 독일과 동등한 것은 큰 놀라움이 아닙니다. 영어는 독일어의 구조를 많이 빌려주고 다른 언어의 어휘를 많이 빌립니다. 그것은 자연어의 '미스터리 고기'와 같습니다.
Evan Plaice 2013

@EvanPlaice 그래, 이것들이 실제로 얼마나 부 자연스러운지는 논란의 여지가있다. 그들 에게는 분명히 장점이 있습니다. 그렇지 않으면 그들은 오래 전에 폐지되었을 것입니다. 나는 그들이 영어를 모국어로 사용하는 사람들에게 일반적으로 도움이되는지 판단 할 수 없으며, 그에 상응하는 것 (가장 가까운 번역을 선택한 다음 그 번역과 동등한 유추를 구성하는 것)이 학생들의 두뇌에 잘못된 연관성 을 형성하는 경향이 있음을 알고 있습니다. 번역 : 예, 비슷한 단어가 있다는 것은 놀라운 일이 아닙니다. 나는 "전체 단어보다 더 짧은 단어와 이상한 약어가있다"라는 문제를 목표로하고 있었다.

8

영어는이다 공용어 프로그래밍 언어입니다.

같은 기사에서 :

기술 토론을 위해 영어를 고수하는 것이 일을 더 쉽게 처리 할 수 ​​있다는 것을 총체적으로 깨닫는 것은 위대한 해커 일뿐입니다.


9
lingua franca-(오늘날) 프랑스어를 의미하는 라틴어 문구. 그러나 우리는 영어를 의미하는 데 사용합니다.

6
@Graham Lee : 아이러니 한 말은 "다양한 배경을 가진 사람들이 서로 의사 소통하기 위해 사용하는 일반적인 언어"를 의미합니다.
greyfade

이탈리아어가 음악 표기법의 언어이거나 라틴어가 과학의 음악인 이유는 무엇입니까? 기술은 영어입니다. 'lingua franca'로 국제적으로 인정을 받으면 영어가 가장 광범위한 기술 관련 어휘를 갖게 될 것입니다. 효과적인 (그리고 보편적 인) 의사 소통을 위해서는 풍부한 어휘가 필수적이므로 사람들은 언어를 기꺼이 받아 들일 것입니다.
Evan Plaice 2013

5

다음과 같은 이유로 영어가 유리합니다.

  1. 현재 주변 장치의 제한 사항에 더 적합합니다.

유형의 용이성. 표준 키보드를 사용할 수 있습니다. "llama dung"처럼 들리지만 중국어로 입력 해 보셨습니까? 문자 수는 1000 개이며 중국어에는 키보드 개념에 적합한 "문자"작성 기술이 없으므로 전 세계 사용자에게 배우기 쉽지 않습니다.

  1. 동일하게 인식 가능한 비 단어로 변형 될 수 있습니다. 영어는 악센트 부호가 없기 때문에 약어를 선호합니다.

단축 된 영어 단어는 인식 가능한 기호입니다. 코드 작성을 위해 전체 영어를 배울 필요가 없으므로 언어 ​​외부의 사람들이 빨리 배울 수 있습니다.

  1. 그리고 일반적인 프로그래밍 언어는 더 많은 수학적 기호와 적은 단어를 특징으로합니다.

의회는 문장 구조가없는 작은 단어를 사용했습니다. 그런 다음 COBOL 및 FORTRAN과 같은 언어로 영어 문장 구조를 최대한 수용하려고 시도했습니다. 새로운 언어는 더 나은 예측 가능성을 가지고 있기 때문에 보편적 대수 기호에 더 의존합니다. (COBOL에서 X를 Y에 더하기, X에서 Y를 빼기, 계산 Y = X + A; 계산은 이전 명령문을 불필요하게 만들고 언어 구문 분석 복잡성을 줄입니다). C ++과 같은 언어가 언어 기반보다 더 상징적이라고 생각하는 데 훨씬 더 많은 시간이 걸리지 않습니다. C #을 사용한 단어 기반 프로그래밍에는 약간의 수익이 있지만, 대부분 인기있는 프로그래밍 패턴을 지원하기 위해 구워졌습니다.

결론:

궁극적으로 주변 장치는 문자 기반 언어 (예 : 영어)로 제한됩니다. 또한 서구 언어는 수학 개념을 더 잘 지원합니다 (특히 0 개념). 중국은 숫자가 더 작기 때문에 숫자를 더 잘 전달하기 위해 숫자 값을 표현하는 대신 숫자를 빌립니다 (평균적으로는 더 짧음). 숫자 값 외에, 대부분의 현대 언어는 이미 기호를 사용하므로 기호 기반 언어 (중국어)는 영어보다 프로그래밍 언어 형태에 더 적합하다고 생각하며 보편적으로 배우는 것과 같습니다. 그러나 C ++과 같은 구조를 적용해야하는데, 세계 대부분의 사람들이 기호 블록을 읽기가 쉽지 않을 것입니다.


4
코드를 작성하기 위해 전체 영어를 배울 필요가 없으므로 언어 ​​외부의 사람들은 빨리 배울 수 있습니다 . 좋은 주장처럼 들리지 않습니다. 의학에는 많은 라틴어가 있으며, 의학을 공부하려면 라틴어를 알아야합니다.
mojuba

2
당신이 중국어에 대해 말한 것은 거짓입니다. 표준 키보드로 중국어를 입력 할 수 있습니다.
grokus

2
@mojuba 내가 의미하는 바가 아닙니다. 내가 의미하는 바는 영어가 단어, MOV, cpystr 등의 약어에 능숙하다는 것입니다. 중국어 기호의 절반 또는 일본어 단어 (일반적으로 단어의 조합 임)를 잘라낼 수 없으며 같은 의미입니다. 영어 단어를 줄이고 같은 의미를 전달할 여지가 많이있는 반면. 다른 직업에 다른 언어의 단어가 포함되어 있지 않다는 의미는 아닙니다. 프로그램 구문에 포함 된 단어를 쉽게 토큰으로 단순화 할 수 있습니다.
리 루비 에르

@grokus PinYin을 의미하지 않는 한 직접 중국어를 입력 할 수 없습니다. 키 입력을 사용하거나 PinYin을 사용하고 가장 일치하는 기호를 선택해야합니다. 어느 쪽이든 표준 키보드는 4 개의 중국 톤을 지원하지 않기 때문에 선택 과정을 통합해야합니다. 표준 키보드를 수정하지 않으면 요구 사항을 위반하지 않습니다.
리 루비 에르

-1, 0은 서구 개념이 아니었고 (중순), 어셈블리는 단어를 전혀 사용하지 않습니다 (일반적으로 오프라인 / 등록 이름을 기반으로하며 0x86 대신 LDA는 3-5 자 명령), 영어 구조 영어는 "서양"언어에서 최악의 구조 집합 중 하나를 가지고 있기 때문에 프로그래밍을 중단시킵니다. "인식 할 수있는"비 단어는 지역 및 주제 특정 아이디어이며 이해할 수있는 "영어가 아닌"단어 집합만큼 나쁠 수 있습니다. 모든 언어는 상징적이며, 공식 언어로 만드는 방법의 일부입니다 : int는 정수를, Double은 배정 밀도 부동 소수점을 나타냅니다 ...
Jeff Langemeier

5

영어가 컴퓨팅에 널리 사용되는 유일한 이유는 현재 널리 퍼져있는 언어이기 때문입니다.

컴퓨터가 2000 년 전에 발명 되었다면 그리스어를 사용했을 것입니다. 그들이 200 년 전에 발명 되었다면 프랑스를 사용했을 것입니다. 만약 그들이 200 년 안에 발명 되었다면 아마도 중국을 사용했을 것입니다 ...


3

다음은 영어-라틴 알파벳을 가정했을 때 가상 프로그래밍 언어에 어떤 이점이 있는가입니다.

  1. 한자와 달리 작은 문자 세트입니다.
  2. 일반적으로 발음 구별 부호를 사용하지 않습니다 (프랑스어, 스페인어, 독일어 등과 달리).
  3. 모든 대문자에는 소문자가 있습니다 (독일 Eszett와 달리)
  4. 데이터 정렬이 간단합니다

이 모든 것은 여전히 ​​모든 장치에서 제대로 해결되지 않은 문제입니다. 예를 들어 분음 부호가있는 곡 제목은 여러 음악 플레이어에서 올바르게 표시되지 않습니다


5
컴퓨터가 중국에서 발명되었는지 궁금합니다. 모든 문자가 더 짧은 이름을 허용하기 때문에 중국어로 작성되지 않은 코드를 작성하는 방법에 대해 토론하고 있습니다.
CodexArcanum

3
동의하지 않습니다. 예를 들어 그리스 알파벳은 작습니다. 분음 부호는 독일 ß와 동일하게 프로그래밍을 위해 제거되었을 수 있습니다. 데이터 정렬은 현재 정규화되어 있습니다. 즉, 거의 모든 기존 언어로 컴퓨팅 / 데이터베이스 등을위한 "직접적인"형태가됩니다. 영어 "the"및 "a"기사가 기본적으로 컴퓨팅에서 사용되거나 회피되지 않는 것처럼 다른 언어도 최적화를 거칠 수 있습니다.
mojuba

3
대문자와 소문자가 프로그래밍 언어와 관련이 있다는 것을 알지 못합니다.
David Thornley 19

1
@David Thornley 아하지만 컴파일러에게는 프로그램이 데이터입니다.
콘래드 프릭스

1
@ Ingo 무슨 말인지 잘 모르겠습니다. 예를 들어,라는 변수를 사용했다고 가정 해 봅시다 étudiant. 유니 코드 첫 문자로 표시 될 수 U+00E9 LATIN SMALL LETTER E WITH ACUTE있거나 될 수는 e하였다 U+0301 COMBINING ACUTE ACCENT. 이러한 언어 중 하나에 대한 컴파일러 작성자 인 경우 다음과 같이 변수 이름 지정을 지원 하시겠습니까? 정확히 어떻게 당신은 같은 범위에서 두 변수라는 치료 것 \u00e9tudiante\u0301tudiant?
Conrad Frix

2

프로그래밍 언어 자체가 영어를 기반으로하는 것의 이점을 확신하지는 못합니다. 설명에서 :

  • 메소드, 변수, 객체 등의 이름은 컴퓨터에 중요하지 않습니다
  • 주석의 내용은 컴퓨터에 중요하지 않습니다
  • 프로그래밍 논리는 대부분의 언어로 표현할 수 있습니다.

따라서 영어가 프로그래밍 언어에 도움이된다면 더 많은 사람들이 프로그래밍 언어를 사용하도록 도와 줄 것입니다. 이와 관련하여 몇 가지 생각이 있습니다.

  • 외국의 많은 사람들이 프로그램을 원하든 원하지 않든 영어를 배웁니다
  • 컴퓨터 언어를 디자인하고 많은 사람들이 사용하기를 원하는 사람들은 일반적으로 가장 잘 알려진 언어를 선택하여 설명합니다.

이러한 생각을 요약하면, 영어가 실제로 많은 사람들이 말하는 것 이외의 다른 언어가 제공 할 수있는 중요한 방식으로 프로그래밍 언어를 돕는다 고 생각하지 않습니다.


당신이 의견을 언급하는 것이 흥미 롭습니다. 주석이 일본어로되어 있기 때문에 모든 C 파일이 유니 코드로 저장된 일본 회사에서 일했습니다.
Mark Avenius

1

제 생각에 영어는 다른 많은 언어들보다 더 풍부한 기술적이고 수학적인 어휘를 가지고 있습니다. 그러한 어휘가없는 언어는 영어 대출 단어를 사용하여 작업을 완료합니다. 이것만으로도 프로그래밍 언어를 영어로 향하게하는 강력한 이유입니다.

영어 대출 단어에 끊임없이 의존하지 않고 설명해야 할 모든 것을 설명하기에 충분히 풍부한 어휘가있는 언어와 관련하여 과학의 링구아 프랑카 (공용어)로서의 영어 전통은 강력하지만 알파벳은 우리에게 또 다른 작은 다리 :

  • 영어는 악센트가있는 라틴 문자를 사용하는 중국어, 일본어, 키릴 어 또는 로맨스 언어보다 작은 문자 집합으로 표현할 수 있습니다.
  • 악센트 문자가 완전히 없기 때문에 영어 알파벳은 시각적으로 매우 명확합니다. 일치하지 않는 대괄호 또는 누락 된 세미콜론으로 인해 충분한 버그가 있습니다. 'ē', 'ĕ'및 'ě'사이의 식별 문제를 추가하는 것은 어리석은 일입니다.

3
영어 기술 용어는 컴퓨팅이 주로 EN 언어권 국가에서 개발 되었기 때문에 풍부하지 않습니다. 닭 계란 문제의 종류 정말로;) 악센트 문자에 관해서는, 실제로 흥미로운 점.
mojuba

@mojuba 동의하지 않습니다. 영어 이전의 컴퓨터 기술이 주로 영어로 개발 되었기 때문에 영어 기술 어휘는 풍부합니다. 이러한 기술은 주로 경제적 인 이유로 영어로 개발되었지만 컴퓨터가 등장 할 때 이미 영어가 준비되어 있습니다.
HedgeMage

2
Pulchra est lingua Latina! ( "라틴어는 아름답습니다!") 저는 실제로 고전적인 라틴어를 사용하며 코드에서이 언어를 사용하는 것이 즐거웠습니다. 불행히도, 그것은 죽은 언어의 가장자리에 끊임없이 달려 있으므로 프로그래밍 언어를 기반으로하는 것은 실용적이지 않습니다. (그러나 지금은 재미를 위해 하나를 디자인하고 싶어합니다.) 영어를 많이 사용하지 않는 사람은 많은 훌륭한 기술을 사용했지만 한 언어에서는 충분하지 않은 언어로 영어가 제공하는 풍부한 어휘와 일치하지 않습니다. 내가 언급 한 다른 요소는 작고 명확한 알파벳입니다.
HedgeMage

1
@mojuba + HedgeMage, 기술이 개발되는 곳은 중요하지 않습니다. 영어는 빌려온 단어와 어휘가 많이 포함되어 있기 때문에 영어로 개발되지 않은 용어는 빠르게 언어로 번역됩니다. 영어의 주요 장점은 추상적 개념을 잘 설명 할 수있는 많은 복잡한 시제를 제공한다는 점인데, 이는 매우 유용합니다.
whatsisname은

5
영어는 어두운 골목에서 다른 언어를 섞고 모든 유용한 단어를 훔치는 습관 때문에 풍부합니다. 그것은 단어의 시장만큼 대출 단어의 원천이 아닙니다.
David Thornley

1

언어의 맥락에 대한 재미있는 독서와 우리가 일을 끝내는 방법에 대해 :

Steven Pinker 의 생각의 물건

우리는 언어 구조에 대해 이야기하고 있습니다. 정보를 어떻게 전달하는지 (동일하지는 않습니다) 변수에 대한 주요 언어가 모두 독일어 인 코드로 작업했습니다 (코드는 이해하기 쉽지 않았습니다) ). 영어에는 본질적으로 프로그래밍에 더 적합한 것이 없습니다. 언어가 어떻게 구성되는지 직접적으로 벗어나면 아마도 나쁘지 않을 것입니다 . 그리고 이것은 여러 가지 이유로 정직 할 수 있습니다.

  1. 구조 부족 (우리가 원하는 곳에 주제 / 술어 / 명사 / 형용사를 넣을 수 있음),
  2. 우리의 말의 변경 가능성 (우리는 아무 것도 생략 할 수 있다고 느낀다)
  3. BIG ONE : 영어를 유창하게 아는 사람은 영어를 이해하지 못하는 사람보다 코드 섹션을 더 잘 이해하지 못합니다.

프로그래밍 언어가 "영어"를 사용하는 이유를 묻는 것은 주기율표에 여전히 'W'라는 문자가 텅스텐을 나타내는 이유를 묻는 것과 같습니다. 대부분의 사람들은 역사를 알지 못하면 왜 그런지 말할 수 없습니다. 그리고 프로그래밍 언어의 역사를 원한다면 펀치 카드, 바이트 명령어 및 어셈블리로 돌아 가야합니다.

어셈블리에는 주요 "영어"구문이 없지만, 사용자 자신을 미워하지 않고 기계 코드에 접근 할 수있을 정도로 가깝습니다. 또한, 고급 언어의 모든 구조적 요소는 그것을 즐기기에 충분히 미친 사람들에 의해 정기적으로 구현 될 수 있습니다. LD, MV, ST, BRA 및 나머지 명령어 세트는 영어와 전혀 같지 않지만 완벽하게 읽고 완전한 의미를 얻을 수 있습니다.

우리는 어셈블리에서 LD 또는 MV의 동일한 의미를 더 높은 수준의 구문에 할당합니다. 변수의 의미를 알 필요가 없으며 많은 경우 내 목록의 # 2 때문에 영어로되어 있지 않은 경우가 많습니다. int, str, enum 등과 같은 식별자 세트는 더 이상 작업하지 않는 것을 알려주는 방법입니다. int 대신에 식별자가 갈매기 라면, 우리 는 영어가 아니라 갈매기가 코딩 문맥에서 갈매기가 무엇을 의미하는지 알 것입니다.

TL; DR : 프로그래밍 언어는 다른 언어와 마찬가지로 이해하기 위해 교육이 필요합니다. 명령이 스페인어, 독일어 또는 러시아어 대신 영어로 된 이유는 공식 언어 구문의 식별자에 다소 적합한 영어의 일부 필수 구문에 비해 난해하고 역사적 일 가능성이 높습니다.

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