107

これは私がいつも疑問に思っていることであり、オンラインのどこにも言及されていません。たとえば日本のお店がコードを書いたら、英語で読めるでしょうか?それとも、C や PHP などの言語には日本語訳がありますか?

私が尋ねているのは、世界中のすべてのコーダーが、私とまったく同じ予約語を使用するのに十分な英語を知っているということですか?

このコードは:

If (i < size){
    switch
        case 1:
            print "hi there"
        default:
            print "no, thank you"
} else {
    print "yes, thank you"
}

私が今見ているのとまったく同じものを英語で表示するか、英語を話さない他の人が「if」、「switch」、「case」、「default」、「print」、および「他に"彼らの母国語で?

編集 - はい、これは深刻です。言語のローカライズごとにキーワードが異なるかどうかはわかりませんでした。または、ローカリゼーションがまったく異なる場合でも。

4

26 に答える 26

161

私がよく理解していれば、質問は実際には「世界中のすべてのコーダーは、私とまったく同じ予約語を使用するのに十分な英語を知っていますか?」です。

ええと..ここでは英語は主題ではありませんが、プログラミング言語の予約語です。つまり、10年ほど前に始めたときは英語の手がかりがなく、プログラミング言語を学んで簡単なことをプログラムすることができました(英語で)。実際のところ、これは私が英語を学ぶのに役立ちました。

例えば。私は「iteración」(もちろん反復)を行うことを知っています。私は次のように書かなければなりませんでした。

 for( i = 0 ; i < 100 ; i++ ) {}

私にとって「for」、「;」単純な外国語または記号の「++」。後で、「for」は「para」、「while」は「mientras」などを意味することを知りましたが、その間に英語を知る必要はありませんでしたが、私の場合、必要なのは「C」を知ることでした。

もちろん、もっと多くのことを学ぶ必要があるときは、英語を学ばなければなりませんでした。ドキュメントはその言語で書かれているからです。

ですから、答えは次のとおりです。いいえ、母国語であるかどうか、その間などはわかりません。私はそれらを英語で見ますが、それらがプログラミング言語のために順番に意味する他のことを私には意味しませんでした。

bashのswitchステートメントのようなものです:case..esac。「esac」とは...私にとっては、bashのswitchステートメントの終わりです。

それが私たちが「抽象化」と呼んでいるものだと思います

于 2008-10-14T21:08:31.573 に答える
28

参考文献を見つけるのに苦労していますが、3つの話を思い出しました。

Lispハッカーは、「cdr」や「car」などの無意味な関数を、非母国語のプログラミングと比較することで防御します:http: //people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171。 html

まつもとゆきひろ(「マッツ」)がRubyの開発を始めたとき、彼はすべてのドキュメントを日本語で書いていたにもかかわらず、英語のキーワードを使用していました。。数年間、Rubyの英語のドキュメントはなく、その言語を使用しているアメリカ人はほとんどいませんでした。しかし、今では世界クラスの言語になり、日本で生まれたという事実は歴史的な関心事にすぎません。もしその言語がひらがなでキーワードを使っていたら、人気を得るのははるかに困難だったでしょう。

私は一度エッセイを読みました-多分誰かがそれを見つけることができます、グーグルは今日助けにはなりません-単語が実際には英語ではないのでキーワードの翻訳が誤った方向に進んだことを示唆しました-それらは専門用語です。(上記の例を使用するために) parapourを行うだけでなく、 forが英語で持つという正確な意味を持っていないだけでなく、プログラマー以外の人にとっては「forloop」というフレーズはぎこちないものです。アメリカ人でさえ、新しい意味を学ばなければなりません。したがって、単語の表面的な意味を別の言語に翻訳することは、実際に役立つというよりも、言語をまたがるしゃれを作るようなものです。

于 2008-11-15T21:19:45.277 に答える
28

Java言語では、JavaBeansの規則により、一部のメソッドには英語を使用して(少なくとも部分的に)名前を付ける必要があります。

この規則では、getX()メソッドとsetX()メソッドのペアを介してプロパティXを確立する必要があります。ここフランス語-カナダでは、一部の開発者はフランス語でコーディングする必要があり、これは次のような悲劇につながります。

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}
于 2008-10-14T21:07:18.423 に答える
25

これまで日本語でのプログラミングについてあまり考えたことがありませんでしたが、質問のコード サンプルを使用して説明します。

英語の変数を使用して日本語の言語ステートメントのみを使用すると、次のようになります。

// In Japanese, it makes more sense to put the keywords/modifiers as
// postfix expressions rather than prefix expressions.
(i < size)か {
     (l[i])は {
     1だ:
         「もしもし。」を書く;
     省略時値:
         「いいえ、いいですよ。」を書く;
     }
} ない {
     「はい、ありがとうございます。」を書く;
}
于 2008-11-14T15:39:54.623 に答える
13

多くの人がすでに指摘しているように、ほとんどのプログラミング言語では、いくつかのキーワードを学ぶ必要があるだけなので、英語(またはあなた以外の言語)であるかどうかはそれほど重要ではありません。これは、ある構成に関連付ける単なるシンボルです。たとえば、VBには「THEN」があります。これは多くのCスタイルの言語では「{」であり、読みやすさには大きな違いはありません(少なくとも、私はそれを英語以外の言語であると考えています)。母語話者)。

しかし、物事が時々厄介になる可能性がある場所、および(自然)言語の選択が重要な場所は、識別子の命名にあります。言語の壁のために変数、関数、クラスなどの名前に意味のある名前がない場合は、最も単純なコードでさえ従うのはかなり難しい場合があります。

あるブログから抜粋したActionscriptの短いスニペットを誰かが私にくれたのを覚えています。名前はドイツ語で、私はその言語の単語を話さないので、var_123、var_562、func_333とも呼ばれる可能性があります(おそらく、名前を覚えたり、少なくともコピーして貼り付けることなく、正しくつづる可能性があります)。これは短い自己完結型のスニペットだったので、オンライントランスレータを使用して、これらの変数と関数に母国語(スペイン語)で意味のある名前を付けました。その後、すべてが明確になりました。重要なのは、コードは実際には単純だったということですが、言語の壁を乗り越えたとき、あまり(不必要な)余分な労力をかけずにしかコードを理解できませんでした。

それ以来、識別子の命名に英語を使用するようになりました。あなたがそれを好むかどうかにかかわらず、それはプログラミング、エンジニアリング、そして一般的に技術的なもののための「コイネー」です。ほとんどのAPIは英語で書かれており、ほとんどのドキュメントも同様です(そして、おそらくあなたが見つけることができる最高のリソースは英語でもあります)。余談ですが、コードを操作する可能性のあるコードとの一貫性を保つことができ、スペイン語などの他の言語よりもコンパクトで簡潔になる傾向があると思います(そうでなければ私の自然な選択です)。

もちろん、少なくともある程度の英語が理解できない場合でも、問題は同じままなので、完璧な解決策ではありません。しかし、多くの異なる国からの多くの開発者を考えると、彼らが(コードやもちろん他の手段を介して)通信するための共通言語は英語になる可能性があります。したがって、英語を選択することは、この問題の完全な解決策ではありませんが、おそらく最良の選択肢です。

于 2008-10-15T02:24:23.073 に答える
10

プログラミング言語はキーワードと標準クラス名を定義します。ユーザー定義の型、変数、関数にも英語の名前を付けるのがベスト プラクティスです (非ネイティブ スピーカーとしてはわかります ;-)。

はい、すべてが順調であれば、コードを読み取ることができます。

ただし、Java や Perl などの言語では識別子に完全な Unicode セットを使用できるため、クラス名を漢字で書くと問題が発生する可能性があります。

更新: Perl には、ラテン語で Perl を記述できるジョーク モジュールがあります。しかし、それは冗談です。このようなものを真剣に使用する人はいません。

2 番目の更新: ローカライズされたプログラミング言語のアイデアは、それほどばかげているわけではありません。Excel のマクロ言語はローカライズされていますが、幸いなことに、ファイルには 1 つの正規言語 (英語) で格納されているため、ローカライズは通常のものの上にあるレイヤーにすぎません。そのようなことは小さな「プログラム」に対してのみ意味があり、「実際の」プログラムに対しては保守が難しくなります。

于 2008-10-14T20:49:25.807 に答える
7

実際には、英語以外のプログラミング言語いくつかあります(Wikipedia) 。

私はノルウェー人ですが、出力を除くすべてのコードに常に英語を使用してきました (学校からのばかげたコードを無視しています)。実際、私は通常、すべてを英語で書き、それを gettext (または何か) を使用して母国語に翻訳します。

于 2008-11-12T13:40:34.153 に答える
6

私はイギリス人ですが、よく遭遇する問題は、アメリカ語とイギリス語のスペルの衝突です。これは、Initialise() または Initialize()、Analyse() または Analyze() などのプログラミング関連の用語でよく発生します。これにより、メソッドをオーバーライドしようとすると問題が発生する可能性があり、見つけるのが難しい場合があります。

フレームワーク (私たちの場合は C#) はアメリカ人によって設計されたので、一貫性を保ち、アメリカのスペルを使用するのが最善であることがわかりました。カラーも採用しています。

私たちの開発チームにはさまざまな国籍が混在しており、ほとんどの非英国人は自然にアメリカのスペルを使用する傾向があります.

于 2008-11-27T14:51:54.073 に答える
4

これを次のレベルに引き上げると、シンボルを代用できるようになるのはどうでしょうか?

Brainf**kWhitespaceなどの言語を見た後、私は次のような言語を作成することを考えました: C と同じですが、開くには右中括弧を使用し、閉じるには左中括弧を使用し、+ と -、* と / の意味を交換します。 、 ; と :、> と < など。

コンセプトは、ギミックに変更された C コンパイラにすぎません。しかし、キーワードを別の方法で考えるのと同じように、これまでにそのようなことを考えたことがない場合は、いくつかの基本的な仮定を再考する必要があります. 元:

int foo)int i, char c( }
    int six = 2 / 3:
    int two = six + 4:
    if )i > 0( }
        printf)"i is negative"(:
    {
{
于 2008-11-13T21:10:27.887 に答える
4

AppleScript はかつて、フランス語と日本語の方言で利用できました。なぜ撤回されたのかはわかりません。

于 2008-10-15T02:44:37.027 に答える
4

私が見たローカライズされた唯一の言語は、Excel とそのマクロです。Office のイタリア語版を使用して列を合計しようとするSOMMA(A1:A10)と、SUM ではなく、記述する必要があります。残念です。

ところで、面白いので、イタリア語のキーワードを使用したコードは次のようになります。

se (i < size){
    commuta
        caso 1:
            stampa "hi there"
        normalmente:
            stampa "no, thank you"
} altrimenti {
    stampa "yes, thank you"
}
于 2009-08-16T13:31:15.650 に答える
4

私は C# でソフトウェア システムを開発しているフランスのチームに所属しています。プログラミング言語のキーワードは表向きは英語ですが、関数名、変数、コードのコメント、データベースのテーブルと列、技術仕様、プロトコルなどがすべて含まれているため、コードを読むのは非常に難しいと思います。アクセント付きの素敵な文字 ç、é、è、ù などを含むフランス語です。コンマをデフォルトの小数点区切り記号として使用するなど、ローカリゼーションのバグにより、システムが他の場所で実行されるかどうかさえわかりません。

それ以外の場合、WinDev はフランスで人気のあるプログラミング プラットフォームであり、そのプログラミング言語である WLanguage にはフランス語または英語のキーワードがあります。こちらと例を参照してください:リンク テキスト

于 2008-11-17T08:41:20.957 に答える
3

私が取り組んだいくつかのVBAプロジェクトでは(そうです、私のキャリアの非常に早い段階で)、ユーザーのマシンにインストールされているOfficeのバージョンを検出し、それに応じてsperadsheetsで使用される式を変更する必要がありました。

私はポルトガル語でプログラムしているので、「SUM」は「SOMA」などに翻訳する必要があります。これをいくつかの言語で実現するために必要な作業を想像することはできません。他の誰かがこの問題に苦しんでいますか?

于 2008-10-14T21:31:04.757 に答える
3

これをからかわないでください。数年前、Microsoft は G# (German Sharp) - ドイツ語のキーワードと API を持つ C# を発表しました。もちろん、これはエイプリル フールの冗談でしたが、それに関するサイト全体が非常にリアルでプロフェッショナルに見えました (そして microsoft.com にありました)。怖い。

職場では、2 つのフィールド バス システムを使用しています。どちらもドイツ語圏で開発されたもので、識別子としてドイツ語と英語が恐ろしく混ざり合っており、素敵な偽の友達も含まれています。めちゃくちゃです。

いいえ、英語のキーワードと識別子は問題ありません。それがColorかColorかについて議論する人もいるかもしれませんが:)

于 2008-10-14T21:12:03.187 に答える
3

VBA がスペイン語のようなコマンドに変換されているのを見たことがあります。それは今まで見た中で最も醜いものの1つです。自分のコンピュータにこのようなものがあると恥ずかしいです。

PD: たまたま、スペイン語は英語よりもはるかに優れた言語だと思います。しかし、翻訳は間違っています

于 2008-10-14T20:48:56.340 に答える
3

まあ、他の人が指摘したように、キーワードとシステム コールはおそらく英語のままです。

ただし、言語のキーワードを理解することは、コードを理解する上でほんの一部にすぎません。変数名、関数名、およびコメントはすべて、作成者の母国語である可能性があります。

編集:TRS-80ビルトインBASICのマッピングテーブルに行って、キーワードをフランス語に切り替えた若い頃にフラッシュバックしました。すべてのキーワードを変更できましたが、大きくすることはできませんでした。面白いプログラムのために作られました。

于 2008-10-14T20:52:33.430 に答える
3

翻訳されたキーワードを持つ言語がいくつかあります。たとえば、Excel の数式。スプレッドシートにいくつかの計算を書く場合、これはあなたの言語になります。

幸いなことに、これは一般的な慣行ではなく、私のような非英語話者でさえ、キーワードの標準言語があることを神に感謝します :

  • 作業を簡単に共有できます。
  • それは、ドキュメンテーションがすでにあるよりも大きな悪夢になるのを防ぎます。
  • 英単語と文は通常短く、構文的に実用的です。文学ではラテン語の方がはるかに美しいですが、技術的なものでは英語の方がはるかに優れています。

そして、どこで停止しますか?古代ギリシャ語の C を想像できますか?

キーワードは 1 つの言語にとどまらなければなりません。最初は英語でしたので、そのままにしておきましょう。これは最悪だったかもしれません(アジア言語?)。そのため、メソッドとコメントを英語で書かなければなりません。わかりました、さらに多くの作業が必要ですが、少なくとも国際的なコード ベースは一致したままです。

ただし、ネイティブ言語のメソッド名とコメントを使用することが適切な場合が 1 つあります。それは、第三世界の国です。Django プロジェクトを管理するために、数か月後にセネガルに行きます。セネガルはアルファベット化率が非常に高いため、プログラミング知識の向上に力を注いでいることはすでに素晴らしいことです。ここではフランス語が母国語であるため、コンピューティングと新しい言語を同時に学習させるのは非効率的です。

ところで、それはフランス語のキーワードを含むコードになります:

Si (i < taille) {
    cas par cas :
        cas 1:
            afficher "salut"
        défaut:
            afficher "non merci"
} sinon {
    afficher "oui, merci"
}

キーワードを翻訳することは、文字列を翻訳することとは何の関係もないというわけではありません。もちろん、「こんにちは」は私たちの言語に翻訳されています。ヨーロッパのコーダーは、より多くのユーザーにサービスを提供できるように、アメリカよりもはるかに I18N を使用する傾向があります。

于 2009-08-16T13:34:12.827 に答える
2

Perl の構文は (英語の) 自然言語に従うように設計されているため、Perl に関する質問は興味深いものです。英語を話さない人にとっては、それがより難しくなるのだろうか...

もちろん、Perl と Perlers は従来のルールに従うことを拒否します。マッドサイエンティストのダミアン・コンウェイは、Lingua::Romana::Perligataモジュールを作成しました。このモジュールは、ソース フィルターの黒魔術を使用して、Perl をラテン語で記述できるようにします。

于 2008-11-20T03:47:49.173 に答える
2

一般的に言えば、ほとんどのプログラマーは英語の形式に適応します。私は 7 歳のときにプログラミングを学びましたが、ヘブライ語 (右から左) しか話せず、英語はまったく話せなかったので、非常に魅力的な経験になりました。

通常発生する問題は、ドキュメント、変数、および関数名にあります。英語のアルファベットを使用して、他の言語で変数のシェアを見てきました。

私がよく知っている唯一の言語で、実際に翻訳されたのは古き良き Logo でした (今でも驚くべきことです)。

于 2008-10-15T03:09:29.580 に答える
2

ここオーストラリアでは、 color のように color を綴る必要あります。ただし、オーストラリアのプロジェクトに取り組んでいる他の (オーストラリアの) 開発者が、内部変数名のスペルをアメリカ式にする必要があると判断した場合、私は面倒だと思います。

于 2008-11-27T01:57:36.633 に答える
2

私が子供の頃、フランスに行ったとき、行った博物館で、コンピュータ プログラムの書き方を示す展示を見つけたのを覚えています。この言語はある種の BASIC バリアントであり、FOR の代わりに POUR を使用したことなどをはっきりと覚えています。BASICを習ったばかりの7歳の私には、フランス人にもこのような方言があるのは当たり前のことでした!!

私が見たのはLSEだったのではないでしょうか?

于 2008-11-13T06:02:37.040 に答える
2

Filemaker のスクリプト言語はローカライズされています。スクリプト (およびデータ!) は、ひどい「標準的な」形式で保存されます。

したがって、アメリカ版でスクリプトを作成し、それをフランス語版で開くと、すべてのキーワードと組み込み関数名がフランス語になります。しかし、なぜそれは実行されませんか?! あはは!フランス語版では小数点として「,」を使用するため、あいまいさを避けるために「;」を使用します。関数の引数を区切る -- アメリカ版では "." を使用 および "," それぞれ。この変換は自分で行う必要があります。

そのため、信じられないほど悪いスクリプト編集インターフェイス (スクリプトをテキスト ファイルとして記述できない) を使用して、これらすべてを修正します。走る!すごい!結果は全部ダメ!大野!あはは!米国版で入力した 2004 年 1 月 7 日の日付は、2004 年 7 月 1 日と解釈されています。明らかに、日付は表示されるだけでなく、ロケールに依存する順序で 保存されます。冗談ですか?いいえ。

[注: Filemaker 8 と 9 は問題ないかもしれません -- 私は 3 から 7 しか使ったことがありません。]

于 2008-11-14T14:59:28.683 に答える
1

私はたくさんのコードを読みましたが、問題は常に変数/メソッド名とコメントにあります。日本語やキリル文字などの言語の特殊文字を使用して、コードを自国語でコメントしている場合、問題が発生します。でもキーワードはそのまま英語のままだと思います。

于 2008-10-14T21:29:47.940 に答える
1

私見ですが、言語構文を i18n するのは無意味です。それは、あらゆる種類の移植性を損なうだけです。

唯一の例外は、ロゴなどの教育言語です。簡単に学習できるように設計されているため、移植性は問題になりません。

于 2008-10-14T20:51:07.380 に答える
1

イタリア語で

se (i < dimensione){
    scegli
        caso 1:
            stampa "ciao"
        mancante:
            stampa "no, grazie"
} altrimenti {
    stampa "sì, grazie"
}

以前の投稿者の懸念を確認するために、すべてのキーワードを英語からフランス語に翻訳するためのマクロ インクルードを含む Fortran コードを見てきました。これを続行しないでください。

また、イタリア語、ドイツ語、英語、フランス語の識別子を同時に含むコードで作業する必要がありました。これは、それがさまざまな場所で開発されただけでなく、主な開発者がそれを楽しいと考え、識別子名を複製しないように助けたからです (もちろん、ルーチンの長さは 2000 行です....)

于 2009-08-16T13:43:52.987 に答える
0

WordBasic はローカライズされていたと思います。VBA が使用される前は、WordBasic を使用して Word でマクロを記述していました。

私の記憶が正しければ、すべてのローカライズ版で実行できるのは英語版で書かれた WordBasic だけでした。オランダ語版を作成する場合、オランダ語の Word でのみ実行できます。

于 2008-11-13T20:48:24.220 に答える