質問

これは私がいつも疑問に思っていたものであり、オンラインではどこにも言及していません。日本などのショップがコードを書くとき、英語で読むことができますか?または、C、PHPなどの言語には日本語の翻訳がありますか?

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

このコード:

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

今見ているものとまったく同じ英語を表示するか、英語を話さない人に<!> quot; if <!> quot ;, <!> quot; switch < !> quot;、<!> quot; case <!> quot;、<!> quot; default <!> quot;、<!> quot; print <!> quot ;、および<!> quot; else <! > quot;母国語で?

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

役に立ちましたか?

解決

私がよく理解していれば、質問は実際には次のとおりです。

まあ..ここでは英語が主題ではなく、プログラミング言語の予約語です。私が10年ほど前に始めたとき、私は英語の手がかりを持っていなかったのですが、それが何を意味するのか分からなくても(英語で)プログラミング言語を学ぶことで簡単なことをプログラミングすることができました。実際のところ、これは英語を学ぶのに役立ちました。

たとえば。 <!> quot; iteraci <!>#243; n <!> quot; (もちろん反復)私は書く必要がありました:

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

私には<!> quot; for <!> quot;、<!> quot ;; <!> quot;および<!> quot; ++ <!> quot;単純な外来語または記号。後で<!> quot; for <!> quot; <!> quot; para <!> quot;および<!> quot; while <!> quot; <!> quot; mientras <!> quot;などですが、それまでは英語を知る必要はありませんでしたが、私の場合は<!> quot; C <!> quot;を知る必要がありました。

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

したがって、答えは次のとおりです。いいえ、母国語で、while、forなどが表示されません。私はそれらを英語で見ますが、それらはプログラミング言語のために順番に意味する他のことを意味しませんでした。

bashのswitchステートメントに似ています:case .. esac。 <!> quot; esac <!> quot;とは... bashのswitchステートメントの終わりです。

それが<!> quot; abstraction <!> quot;と呼ばれるものだと思います

他のヒント

参考文献の検索に問題がありますが、3つのストーリーを思い出しました。

Lispハッカーは<!> quot; cdr <!> quot;のような無意味な機能を防御します。および<!> quot; car <!> quot;それらをあなたの非母国語のプログラミングと比較することにより: http://people.csail.mit.edu/gregs /ll1-discuss-archive-html/msg01171.html

松本幸宏(<!> quot; Matz <!> quot;)がRubyの開発を始めたとき、彼はすべてのドキュメントを日本語で書いていたにもかかわらず、英語のキーワードを使用しました!。数年の間、Rubyに関する英語のドキュメントはなく、その言語を使用しているアメリカ人はほとんどいませんでした。しかし、今ではそれは世界クラスの言語であり、日本で生まれたという事実は歴史的な興味だけです。言語がひらがなでキーワードを使用していた場合、人気を得るのははるかに困難な時期でした。

私はエッセイを一度読みました-他の誰かがそれを見つけることができるかもしれません、Googleは今日助けになりません-それは単語が実際に英語ではないので、キーワードの翻訳が見当違いであると示唆しました-それらは専門用語です。 para pour が(上記の例を使用するために) for が英語ではなく、非プログラマーにとって正確な意味を持たないフレーズ<!> quot; for loop <!> quot;ジバリーです。アメリカ人でさえ新しい意味を学ばなければなりません。そのため、単語の表面的な意味を別の言語に翻訳することは、実際に役立つのではなく、言語間のしゃれを作ることに似ています。

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

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

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}

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

日本語の言語ステートメントと英語の変数のみを使用する:

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

すでに多くの人が指摘しているように、ほとんどのプログラミング言語では、いくつかのキーワードを習得するだけでよいので、それらが英語(またはあなた以外の言語)であれば、それほど重要ではありません。それはあなたが何らかのコンストラクトに関連付ける単なるシンボルです。たとえば、VBには<!> quot; THEN <!> quot;があり、多くのCスタイル言語では<!> quot; {<!> quot;読みやすさには大きな違いはありません(少なくとも、それは英語以外のネイティブスピーカーであるためです)。

しかし、物事は時に毛むくじゃらになることがあり、(自然な)言語の選択が重要なのは識別子の命名です。言語の障壁のために変数、関数、クラスなどの名前に意味のある名前がない場合、最も単純なコードを追うことはかなり難しい場合があります。

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

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

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

プログラミング言語はキーワードと標準クラス名を定義しますが、ユーザー定義の型、変数、関数にも英語名を付けることをお勧めします(私が話せる非ネイティブスピーカーとして;-)。

したがって、はい、すべてがうまくいけば、コードを読むことができます。

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

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

2番目の更新:ローカライズされたプログラミング言語のアイデアは、それほどばかげていません。 Excelのマクロ言語はローカライズされていますが、幸いなことにファイル内の1つの正規言語(英語)に格納されているため、ローカライズは通常のことの上のレイヤーにすぎません。このようなことは、小さな<!> quot; programs <!> quot;、<!> quot; real <!> quot、保守が困難になるプログラム。

実際にはいくつかの いくつかの非英語ベースのプログラミング言語(ウィキペディア)

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

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

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

私たちの開発チームには国籍が混在しており、イギリス人以外のほとんどの人は自然にアメリカの綴りを好みます。

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

これを次のレベルに上げて、シンボルを置換できるかどうか

Brainf ** k ホワイトスペースこのような言語を作成することを考えました:閉じ中かっこを使用して開き、開き中かっこを使用する以外はCと同じになります閉じるには、+と-、*と/、の意味を入れ替えます。および:、<!> gt;および<!> lt;など。

この概念は、巧妙に変更されたCコンパイラにすぎません。ただし、キーワードの考え方が異なるように、そのようなことを考えたことがない場合は、いくつかの基本的な仮定を再考するように求められます。例:

int foo)int i, char c( }
    int six = 2 / 3:
    int two = six + 4:
    if )i > 0( }
        printf)"i is negative"(:
    {
{

私はフランスのチームでC#でソフトウェアシステムを開発しています。プログラミング言語のキーワードは表面的には英語ですが、すべての関数名、変数、コードコメント、データベーステーブルと列、技術仕様、プロトコルなどがすべて含まれているため、コードを読むのが非常に難しいと思いますフランス語、これらの素敵なアクセント付き文字<!>#231;、<!>#233;、<!>#232;、<!>#249;など。システムが他の場所で実行されるかどうかさえわかりません。デフォルトの10進数区切り文字としてコンマを使用するなど、ローカライズのバグが原因です。

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

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

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

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

ただし、言語のキーワードを理解することは、コードを理解する上でほんの一部です。変数名、関数名、コメントはすべて著者の母国語で書かれている可能性があります。

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

これをからかってはいけません。数年前、MicrosoftはG#(German Sharp)-ドイツ語のキーワードとAPIを使用したC#を発表しました。もちろん、エイプリルフールのジョークでしたが、それについてのサイト全体はとてもリアルでプロフェッショナルに見えました(そしてmicrosoft.comにありました)。怖い。

職場では、ドイツ語圏で開発された2つのフィールドバスシステムを使用します。これらのシステムは、一部の素敵な偽の友人など、識別子にドイツ語と英語の恐ろしい組み合わせがあります。混乱です。

いいえ、英語のキーワードと識別子は問題ありません。色か色かを議論する人もいますが:)

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

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

ローカライズされた

言語 は、マクロを含むExcelのみです。イタリア語版のOfficeを使用して列を合計しようとすると、SUMではなくSOMMA(A1:A10)と記述する必要があります。それは残念です。

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

se (i < size){
    commuta
        caso 1:
            stampa "hi there"
        normalmente:
            stampa "no, thank you"
} altrimenti {
    stampa "yes, thank you"
}

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

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

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

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

キーワードは1つの言語のままである必要があり、まあ、それは英語で始まったので、そのままにしておきます。これは最悪だったかもしれません(アジア言語?)。そして、メソッドとコメントを英語で書く必要があります。わかりました、私たちのためにより多くの仕事が、少なくとも国際的なコードベースは一致したままです。

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

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

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

キーワードの翻訳は、文字列の翻訳とは関係ありません。もちろん、<!> quot; hi、there <!> quot;私たちの言語に翻訳されました。ヨーロッパのコーダーは、彼らのサービスがより多くの聴衆に届くように、アメリカ人よりもはるかに多くI18Nを使用する傾向があります。

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

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

実際に翻訳された言語に精通しているのは、古き良きロゴだけです(今日でも驚くべきものです)。

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

見たのは LSE だったと思いますか?

Filemakerのスクリプト言語はローカライズされています。スクリプト(およびデータ!)はひどい<!> quot; sorta canonical <!> quot;に格納されます。フォーム。

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

これらのすべてを修正するために、信じられないほど悪いスクリプト編集インターフェイス(スクリプトをテキストファイルとして書くことはできません)を介して作業します。走ります!すばらしいです!結果はすべて間違っています!あらいやだ!あぁ!アメリカ版で入力した2004年1月7日の日付は、2004年7月1日と解釈されます。明らかに日付は表示されるだけでなく、ロケール依存の順序で保存されます。 冗談だよ?いいえ。

[注:Filemaker 8と9は正気かもしれません-私は3-7でしか働いていません。]

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

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

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

言語を<18>構文することは無意味です。あらゆる種類の移植性を損なうだけです。

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

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

イタリア語

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

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

また、イタリア語、ドイツ語、英語、フランス語の識別子を同時に含むコードを操作しなければなりませんでした。多くの異なる場所で開発されただけでなく、メインの開発者が楽しいと思って、重複しないように助けたからです識別子名(もちろん、2000行のルーチン...)

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

正しく覚えていれば、英語版で書かれたWordBasicのみがすべてのローカライズ版で実行されます。オランダ語版を作成する場合、オランダ語のみで実行できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top