プログラミング言語は、英語に基づいていることからどのような利点がありますか?[閉まっている]


14

現在、世界は英語ベースのプログラミング言語でプログラミングされているのは、歴史的/経済的状況のためだけでなく、特に英語の形態にはアルゴリズム的思考に最も適した特性があるためだと思います。しかし、とにかく、これについてあなたの意見を聞くことは興味深いでしょう、特にあなたが多言語であるならば。

私はドイツ語ベースの言語について言及しているものを見ました(たとえば、WW2のおかげで私たちがほとんど知らない最初のプログラミング言語であるPlankalkulを参照してください)、80年代に存在していたロシア語ベースのAlgolも少なくとも紙の上では、バイナリで存在したかどうかはわかりません。ENベースの言語のように完全な単語よりも短縮された単語や奇妙な略語があるため、どちらも少し鈍いように見えました。したがって、他の言語ベースのPLを知っていれば、今日は完全に古風で無関係なものであっても、純粋に理論的なものであっても、それらを見てみると面白いでしょう。

そして、主な質問に戻りましょう。もしあれば、シェークスピアの言語をプログラミングに非常に良いものにしているのは何ですか?

(実際、Wikipediaには非英語ベースのプログラミング言語のリストがあります(もちろん、他にどこに?))お気に入り。)


3
@マイケル:彼は「思う」と言った。彼は自分の意見を述べています。彼がどうやってその意見に至ったのかと尋ねるかもしれませんが、彼は出典を引用する必要はないと思います。彼が彼の意見だと言うなら、それは彼の意見だという彼の言葉で彼を取ることができます。さらに、彼は歴史的または経済的状況がないとは言わず、これらが唯一の要因ではないと信じただけで、他のことを議論することにもっと興味を持っています。
HedgeMage

1
@Michael:あなたは「コンピューターは主に英語圏の国々で発明され確立された」と言いますが、今はそれが歴史的/経済的状況です。たとえば、19世紀の英国(および実際には帝国全体)で産業革命を引き起こしたり、第二次世界大戦中またはその後の米国への「脳流出」を引き起こしたり、第二次世界大戦中の米国の損失が最も少なかった先進国など
mojuba '11

3
言語が何であれ、文法的には性的に中立であるべきです。
ジェフ

1
@ジェフO:性別だけでなく、絶対に。基本的に、すべての動詞は中立である必要があります。そうしないと、「while ... do ...」の「do」を正確な形式(時制、性別など)で考えることになります。英語の動詞の形態は他の多くのヨーロッパ言語と比較して非常に緩和されているため、とりわけ英語がプログラミングに非常に優れているのはそれだと思います。
mojuba

2
また、イタリア語で音楽のキーワードを提供しているのに、その理由を尋ねる場合もあります。そこにはいくつかの洞察があるかもしれません。
デイヴィッドソーンリー

回答:


17

免責事項:私の母国語はドイツ語です。

キーワードを取得する言語としての英語が他の自然言語よりも優れている理由はないと思います。ITで最も重要な言語の1つであると思いますが、言語特性のためではありませんが、ほとんどの技術者はある程度それを話すため、この分野のかなりの数の重要な人々、最も技術に関連した用語のネイティブ言語ですすでに英語などです

しかし、ドキュメンテーション/ API /名前/などではなくプログラミング言語について話しているので、私は反対しなければなりません。プログラミング言語は、英語やその他の自然言語に基づいているわけではありません。プログラミング言語は正式な言語です。彼らはさまざまな程度で、(通常は)英語からの一握りの言葉を使います。文法を真似しようとする人もいますが、それでも英語のようにまったく読めません。傷害にto辱を加えるために、彼らは借用する各単語に1つの(まれに少数の)意味を関連付けます。多くの場合、この意味は非常に専門用語であるか、専門的であるか、疑わしい類似性に基づいています。したがって、プログラミング言語が借用する単語の無数の自然言語の意味を知ることは、キーワードの背後にあるプログラミング概念を理解するのに実際には役立ちません。私の頭の上の例:arraytypegotoclassvoid。私は再読み込みの問題として気にはね(楽しいファクト:これらのすべてを、除くgoto、最大でも1つの文字長いドイツ語の翻訳を持っている:FeldTypKlasseLeere。彼らは私には奇妙なすべてのサウンド、おそらく習慣の問題だという)


2
クラスの種類とは、英語での意味を意味します。「クラス」は、「オブジェクトのクラス」であるタイプを定義します。特定の機能を共有しているため、すべてのInt値またはすべてのPersonレコードはクラスであると言えます。ただし、ほとんどのCライクなプログラマーはカテゴリ用語では考えないため、「クラス」は単に「オブジェクトブループリント」を意味します。
CodexArcanum

7
あなたの英語は素晴らしいです
アレン

仲間のドイツ人として、私はあなたに完全に同意すると言わなければなりません。私は番目のemain理由が英語であることを、あなたが述べたように、である、と考えるITの世界で言語。世界中の人々が毎日英語で話し、話し合い、プログラムしているので、ほとんどすべての関連記事が最初に英語で公開されています。同じことが本にも当てはまります。加えて、ドイツ語に翻訳される本のほとんどは、ちょっと間違えています。一部のフレーズとキーワードが翻訳されています。それは流れを完全に殺します。
mhr

私は、英語の文法をプログラミング言語に変えようとすることは完全な間違いであることに完全に同意します。「この意味は非常に専門用語で、専門化されている」ことに同意しません。ネイティブスピーカーとして、概念を既存の用語の類似物として説明することは、日常的なコミュニケーションの典型です。言語としての英語は、おおまかに解釈されており、一般的に非常に文脈固有です。ドイツの同等品に関しては、それは大きな驚きではありません。英語はその構造の多くをドイツ語から借用し、多くの語彙は他の言語から借用しています。それは自然言語の「謎の肉」のようなものです。
エヴァンプライス

@EvanPlaiceええ、これらが本当に不自然なのかは議論の余地があります。明らかに彼らにはいくつかのメリットがありますが、そうでなければずっと前に廃止されていただろう。彼らが一般的に英語のネイティブスピーカーを助けるかどうかは判断できませんが、同等のもの(最も近い翻訳を選択してから、その翻訳と同等の類似物を構築する)が学生の脳に間違った関連を構築する傾向があることを知っています。翻訳について:はい、似たような単語があるのは驚くことではありません。質問の「完全な単語よりも短い単語と奇妙な略語があった」というビットを目指していました。

8

英語はプログラミングの共通語です。

同じ記事から:

技術的な議論のために英語に固執することで、物事を成し遂げることが容易になることを、集団的に認識している素晴らしいハッカーに過ぎません。


9
lingua franca-(今日)フランス語を意味するラテン語のフレーズ。それでも、私たちは英語を意味するためにそれを使用します。

6
@Graham Lee:皮肉なことに、このフレーズは「借用された英語の用語として」「さまざまなバックグラウンドを持つ人々が互いに通信するために使用する共通言語」を意味するようになりました。
greyfade

なぜイタリア語は楽譜の言語なのか、ラテン語は科学の音楽なのか?技術に関しては英語です。「lingua franca」として国際的に受け入れられているため、英語がテクノロジーに特化した最も広範な語彙を持つことは避けられません。豊富な語彙は、効果的な(そして普遍的な)コミュニケーションに不可欠であるため、人々は喜んでこの言語を採用します。
エヴァンプライス

5

以下の理由により、英語が有利です。

  1. 現在の周辺機器の制限によりよく適合します。

タイプのしやすさ。標準キーボードを使用できます。これは「ラマ糞」のように聞こえますが、中国語で入力してみましたか?数千の文字があり、中国語にはキーボードの概念に適合する適切な「文字」構築技術がないため、世界中の聴衆にとって簡単に学ぶことはできません。

  1. 等しく認識可能な非単語にモーフィングできます。英語は、アクセント記号がないために略語を好みます。

短縮英語の単語は認識可能な記号です。コーディングするために英語全体を学習する必要はありません。したがって、言語の外部の人々は素早く学習できます。

  1. また、一般的なプログラミング言語では、数学記号が多く、単語が少ないことを考慮してください。

アセンブリは、文構造のない小さな単語を使用しました。次に、COBOLやFORTRANなどの言語が登場しました。これらの言語は、可能な限り英語の文構造に対応しようとしました。新しい言語では、予測可能性が向上したため、ユニバーサル代数シンボルへの依存度が高まりました。(COBOLでは、XをYに追加、XからYを減算、Y = X + Aを計算します。Computeは前のステートメントを不要にし、言語解析の複雑さを軽減します)。C ++のような言語を、言語ベースの言語よりもシンボリックであると考えることは、それほど多くは必要ありません。C#を使用した単語ベースのプログラミングには少し戻りがありますが、それは主に人気のあるプログラミングパターンをサポートするためのものです。

結論:

最終的に、周辺機器は文字ベースの言語(英語など)に制限されます。また、西洋の言語は数学的概念をよりよくサポートしています(特に0の概念など。中国では、数値の表記を短くするために、数値を伝えるために、独自の数値表現の代わりに数字を借用しています)。数値以外では、シンボルベースの言語(中国語)は英語よりもプログラミング言語の形態に適していると思います。ほとんどの現代言語は既にシンボルを使用しており、学習と普遍的に同等だからです。ただし、C ++のような構造を課す必要があります。シンボルのブロックは、世界中のほとんどの人にとって読みにくいものです。


4
コーディングするために英語全体を学ぶ必要はありません。したがって、言語の外部の人々速く学ぶことができます -良い議論のように聞こえません:医学では多くのラテン語があり、あなたはしません医学を学ぶにはラテン語を知る必要があります。
mojuba

2
あなたが中国語について言ったことは間違っています。中国語は標準キーボードで入力できます。
-grokus

2
@mojuba私が意図したものではありません。私が意味したのは、英語は単語、MOV、cpystrなどを短縮するのが得意だということです。中国語の記号の半分、または日本語の単語(通常は単語の組み合わせ)の半分を切り捨てて同じことを意味することはできません。一方、英語の単語を短くして同じ意味を伝える余地はたくさんあります。他の職業が他の言語の単語を組み込んでいないと言っているわけではありません。プログラム構文に組み込まれている単語は簡単にトークンに簡単化できると言っています。
リールーヴィエール

@grokus PinYinを意味する場合を除き、中国語を直接入力することはできません。キーストロークを使用するか、PinYinを使用して、最も近い一致するシンボルを選択する必要があります。どちらの場合も、標準キーボードは4つの中国語トーンをサポートしていないため、選択プロセスを組み込む必要があります。標準キーボードを変更しない限り、要件に違反します。
リールーヴィエール

-1、0は西洋の概念ではなく(中東が最初)、アセンブリは単語をまったく使用しません(通常はオフライン/レジスタ名に基づいており、LDAである0x86の代わりに3-5文字のコマンドを使用)、英語の構造英語は「西洋」言語で最悪の構造のセットの1つであるため、プログラミングを停止します。「認識可能な」非単語は地域性および主題固有のアイデアであり、理解するための「英語以外」の単語セットと同じくらい悪い場合があります。すべての言語は、あなたがそれらの形式言語作る方法のそれの一部象徴です:intは整数を表し、ダブルは、倍精度浮動小数点数...表し
ジェフLangemeier

5

英語がコンピューティングで広く使用されている唯一の理由は、たまたま広く普及している言語であることです。

2000年前にコンピューターが発明された場合、ギリシャ語を使用していたでしょう。200年前に発明された場合、彼らはフランス語を使用していたでしょう。もし200年で発明されていたら、おそらく中国語を使うでしょう...


3

以下は、英語-ラテンアルファベットを仮定した場合の仮想プログラミング言語の利点です。

  1. 漢字とは異なり、小さな文字セットです
  2. 通常、発音区別符号は使用しません(フランス語、スペイン語、ドイツ語などとは異なります)
  3. すべての大文字には小文字があります(ドイツのエゼットとは異なります)
  4. 照合は簡単です

これらはすべて、まだすべてのデバイスで適切に解決されていない問題です。たとえば、発音区別符号付きの曲のタイトルは、多くの音楽プレーヤーで正しく表示されません


5
中国でコンピューターが発明されたのではないかと思いますが、すべての文字が短い名前を許可しているため、誰もが中国語ではないコードをどのように書くことができるかを議論しているでしょう。
CodexArcanum

3
同意しません。たとえば、ギリシャ語のアルファベットは小さいです。ドイツ語のßの場合と同様に、特に発音記号はプログラミング用に削除できました。現在の照合は正規化されています。つまり、事実上すべての既存言語でのコンピューティング/データベースなどの「単純な」形式になります。英語の「the」および「a」の記事が基本的にコンピューティングで使用または回避されないのと同様に、他の言語でも最適化が行われた可能性があります。
mojuba

3
大文字と小文字がプログラミング言語に関係があるとは思えません。
デビッドソーンリー

1
@David Thornleyああ、コンパイラにとってはプログラムはデータです。
コンラッドフリックス

1
@Ingoどういう意味かわかりません。たとえば、という名前の変数を使用したとしますétudiant。Unicodeを使用した最初の文字は次のように表すことができるU+00E9 LATIN SMALL LETTER E WITH ACUTEか、それができることeが続きますU+0301 COMBINING ACUTE ACCENT。あなたがこれらの言語のコンパイラ作成者であれば、このような変数の命名をサポートしたいでしょうか?\u00e9tudiantand という名前の同じスコープ内の2つの変数を正確にどのように扱いe\u0301tudiantますか?
コンラッドフリックス

2

プログラミング言語自体が英語に基づいていることで利益を得るかどうかはよくわかりません。説明で:

  • メソッド、変数、オブジェクトなどの名前はコンピューターには関係ありません
  • コメントの内容はコンピューターには関係ありません
  • プログラミングのロジックは、ほとんどの(そして私がすべてと仮定する)話し言葉で表現できます。

したがって、英語がプログラミング言語にとって有益である場合、より多くの人々がプログラミング言語を使用するのを助けることになります。その点で、ここにいくつかの考えがあります:

  • 外国の多くの人々は、プログラムしたいかどうかにかかわらず英語を学びます
  • コンピュータ言語を設計し、多くの人に使用してもらいたい人は、一般的に最もよく知られている話し言葉を選択してそれを説明します。

これらの考えをまとめると、英語は、多くの人々がそれを話すことを除いて、他のほとんどの言語が提供できる重要な方法でプログラミング言語を実際に助けるとは思わない。


あなたがコメントに言及するのは興味深いです。私は、コメントが日本語であるため、すべてのCファイルがUnicodeで保存されている日本の企業で働いていました。
マークアベニウス

1

私の意見では、英語は他の多くの言語(すべてではない)よりも技術的および数学的な語彙が豊富です。そのような語彙を欠いている言語は、仕事を成し遂げるために英語の借用語を使用します。これだけが、プログラミング言語を英語に向ける説得力のある理由です。

常に英語の借用語に頼らずに記述する必要があるすべてを記述するのに十分な語彙を持っている言語に関して、科学の共通語としての英語の伝統はそれ自体魅力的ですが、私たちのアルファベットは私たちに与えます別の小さな足:

  • 英語は、たとえば中国語、日本語、キリル文字、またはアクセント付きラテン文字を使用するロマンス言語よりも小さい文字セットで表すことができます。
  • 英語のアルファベットは、主にアクセント付き文字がまったくないため、視覚的に非常に明確です。括弧の不一致やセミコロンの欠落による十分なバグがあります。「ē」、「ĕ」、「ě」を区別する問題を追加するのは愚かなことです。

3
コンピューティングは主に英語圏の国で開発されたため、英語の技術用語は豊富であり、その逆ではありません。鶏卵問題の種類は本当に;)アクセントのついたキャラクターに関しては、確かに興味深い点です。
mojuba

@mojuba同意しない。英語の技術用語は豊富です。なぜなら、コンピューターよりもずっと前から使用されていた技術は主に英語で開発されたからです。これらの技術は主に経済的な理由で英語で開発されましたが、コンピューターが登場する頃には、英語はすでに準備が整っていました。
HedgeMage

2
Pulchra est lingua Latina!(「ラテン語は美しい!」)私は実際に古典的なラテン語を話し、コードでそれを使用してとても楽しんでいます。残念ながら、それは死んだ言語であるという端に絶えずハングアップしているので、プログラミング言語をベースにすることは実用的ではありません。(ただし、今は楽しみのためにデザインしたいと思っています。)英語以外の話者から多くの優れた技術が出てきましたが、どの言語でも、英語が提供する豊富な語彙に合うほど十分ではありません。私が言及した他の要因:小さく、明確なアルファベット。
HedgeMage

1
@mojuba + HedgeMage、テクノロジーがどこで開発されるかは本当に関係ありません。英語は借用された単語と語彙の非常に大きな寄せ集めであり、英語で開発されなかった用語はすぐに言語に丸lurみされます。英語の主な利点は、抽象概念を上手く説明できる複雑な時制を多く提供することです。これは非常に便利です。
-whatsisname

5
英語は、他の言語を暗い路地でmuり、すべての有用な単語を盗む習慣があるため、豊かです。それは単語のバザールほど貸出単語のソースではありません。
デビッドソーン

1

言語のコンテキストと、私たちがどうやって物事をやめてしまうかについての楽しい読書のために:

スティーブン・ピンカーによる思考のスタッフ

私たちは情報を伝える方法ではなく、言語構造について話していることを覚えておいてください(同じものではありません)、変数の主な言語がすべてドイツ語であるコードで作業したことがあります(コードは理解しやすかったです) )。英語には本質的にプログラミングに適したものはありません。言語の構造から直接外れると、悪化する可能性は低くなります。これは、多くの理由によるものです。

  1. 構造の欠如(どこでも好きなところに主語/述語/名詞/形容詞を置くことができます)、
  2. 私たちの言葉の可変性(私たちは何でも省略できると感じています)
  3. BIG ONE:英語を流knowに理解している人は、英語を理解していない人よりもコードのセクションをよく理解できません。

プログラミング言語が「英語」を使用する理由を尋ねるのは、周期表にタングステンを識別する「W」という文字がまだある理由を尋ねるようなものです。また、プログラミング言語の歴史が必要な場合は、パンチカード、バイト命令、およびアセンブリに戻る必要があります。

アセンブリには主要な「英語」の構造はありませんが、自分を嫌うことなくマシンコードに到達できるのと同じくらい近くにあります。さらに、高レベル言語のすべての構造要素は、それを楽しむのに十分なほどクレイジーに実装できます。LD、MV、ST、BRA、および命令セットの残りの部分は、英語のようには見えませんが、完全に読んで完全な意味を理解することができます。

アセンブリ内のLDまたはMVと同じ意味をより高いレベルの構成体に割り当てます。変数の意味を知る必要はありません。多くの場合、リストの#2のために英語である場合はそうではありません。int、str、enumなどの識別子のセットは、これ以上作業していないことを伝える方法です。intの代わりに識別子がseagullである場合、英語であるためではなく、コーディングコンテキストでseagullが何を意味するかをすべて知っているでしょうが、識別子がカバーするものです。

TL; DR:プログラミング言語は、他の言語と同様、理解するにはトレーニングが必要です。それらのコマンドがスペイン語、ドイツ語、ロシア語ではなく英語である理由は、英語の何らかの必要な構成が形式言語構成の識別子に多かれ少なかれ適していることよりも、おそらく難解で歴史的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.