Question

C’est quelque chose que je me suis toujours demandé, et je ne trouve aucune mention de cela nulle part en ligne. Quand un magasin du Japon, par exemple, écrit du code, pourrais-je le lire en anglais? Ou est-ce que les langues, comme C, PHP, n'importe quoi, ont des traductions japonaises écrites?

Je suppose que ce que je demande, c’est que chaque codeur du monde connaisse suffisamment l’anglais pour utiliser les mêmes mots réservés que ceux que je connais?

Ce code serait-il:

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

affiche exactement la même chose que ce que je vois actuellement en anglais, ou une autre personne non anglophone verrait-elle les mots & "si &"; & "; changer < !> ";"; & "; cas &"; & "par défaut &", & "imprimer &", et & "sinon quot; dans leur langue maternelle?

EDIT - oui, c'est grave. Je ne savais pas si différentes localisations d'une langue avaient des mots-clés différents. ou s'il existe même des localisations différentes.

Était-ce utile?

La solution

Si j'ai bien compris, la question qui se pose réellement est la suivante: & "chaque codeur du monde connaît suffisamment l'anglais pour utiliser exactement les mêmes mots réservés que moi? &";

Bien .. L’anglais n’est pas le sujet ici, mais le langage de programmation est réservé aux mots. Je veux dire, quand j'ai commencé il y a environ 10 ans, je n'avais aucune idée de l'anglais et j'ai quand même réussi à programmer des choses simples en apprenant le langage de programmation, même quand je ne savais pas ce qu'elles voulaient dire (en anglais). En fait, cela m'a aidé à apprendre l'anglais.

Par exemple. Je sais faire un & Quot; iteraci & # 243; n & Quot; (itération bien sûr) je devais écrire:

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

Pour moi, le " pour & ";, le &" ;;; & "; et le " ++ " où de simples mots ou symboles étrangers. Plus tard, j'apprends que & "Pour &"; signifiait " para " et " tandis que " signifiait " mientras " etc. mais dans l’intervalle, je n’avais pas besoin de connaître l’anglais, mais dans mon cas, j’avais besoin de savoir & "C &";.

.

Bien sûr, quand j’ai eu besoin d’apprendre plus de choses, j’ai dû apprendre l’anglais, car la documentation est rédigée dans cette langue.

Donc, la réponse est: non, je ne vois pas si, tant que, pour, etc. dans ma langue maternelle. Je les vois en anglais, mais ils ne voulaient rien dire d’autre part du langage de programmation.

Est comme une instruction switch dans bash: case .. esac. Qu'est-ce que & "; Esac &"; ... pour moi la fin de l'instruction switch dans bash?

Je suppose que c'est ce que nous appelons & "l'abstraction &";

.

Autres conseils

J'ai du mal à trouver des références, mais trois histoires me sont rappelées.

Un pirate informatique Lisp défend des fonctions sans signification telles que & "; cdr &"; et " voiture " en les comparant à la programmation dans votre langue non native: http://people.csail.mit.edu/gregs /ll1-discuss-archive-html/msg01171.html

Lorsque Yukihiro Matsumoto (& "Matz &") a commencé à développer Ruby, il a utilisé des mots clés anglais alors qu'il écrivait toute la documentation en japonais! . Il n’ya pas eu de documentation en anglais pour Ruby pendant quelques années et très peu d’Américains ont utilisé cette langue. Mais maintenant, c'est un langage de classe mondiale, et le fait qu'il soit né au Japon n'a qu'un intérêt historique. Si la langue avait utilisé des mots clés en hiragana, elle aurait eu beaucoup plus de mal à gagner en popularité.

J'ai lu un essai une fois - peut-être que quelqu'un d'autre peut le trouver, Google ne m'aide pas aujourd'hui - qui laissait entendre que la traduction de mots-clés était erronée car les mots n'étaient pas réellement anglais - ils étaient du jargon. Non seulement (pour utiliser les exemples ci-dessus) para et pour pas tout à fait la signification exacte que pour est disponible en anglais pour les non-programmeurs la phrase & "; pour la boucle &"; c'est du jibberish. Même les Américains doivent apprendre un nouveau sens. Traduire le sens superficiel des mots dans une autre langue revient donc à faire un jeu de mots multilingue, plutôt qu’à être réellement utile.

En langage Java, certaines méthodes doivent être nommées (au moins partiellement) en anglais à cause de la convention JavaBeans.

Cette convention nécessite qu'une propriété X soit établie via une paire de méthodes getX () et setX (). Ici au Canada français, où certains développeurs sont obligés de coder en français, cela conduit à la parodie suivante:

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}

Je n'avais pas vraiment beaucoup réfléchi à la programmation en japonais auparavant, mais on y va, en utilisant l'exemple de code de la question.

Utiliser uniquement les instructions de langue en japonais avec les variables en anglais:

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

Comme de nombreuses personnes l’ont déjà fait remarquer, dans la plupart des langages de programmation, il suffit d’apprendre quelques mots-clés. Par conséquent, peu importe qu’ils soient en anglais (ou dans une autre langue que la vôtre). C'est juste un symbole que vous associez à une construction. Par exemple, dans VB, vous avez & "THEN &"; Qui, dans de nombreuses langues de style C, serait & "; {&"; et cela ne fait pas une grande différence en termes de lisibilité (enfin, du moins, c'est ce que je vois, étant un locuteur natif non anglais).

Mais là où les choses peuvent parfois devenir poilues et où le choix du langage (naturel) est important, c’est en nommant les identificateurs. Si les noms des variables, fonctions, classes, etc., ne vous ont pas été explicites à cause d'une barrière linguistique, il peut être assez difficile de suivre le code le plus simple.

Je me souviens que quelqu'un m'avait donné un extrait d'ActionScript tiré d'un blog. Les noms étaient en allemand et comme je ne parle pas un mot de cette langue, on aurait pu également appeler var_123, var_562 ou func_333 (et il aurait probablement été plus facile pour moi de me souvenir des noms ou du moins de chance de les épeler correctement sans copier-coller). S'agissant d'un extrait court et autonome, j'ai utilisé un traducteur en ligne pour donner à ces vars et fonctions des noms évocateurs dans ma langue maternelle (l'espagnol). Après cela, tout était clair. Le fait est que le code était en réalité simple, mais je n’étais capable de comprendre que sans trop d’efforts supplémentaires (inutiles) au moment même où j’avais surmonté la barrière de la langue.

Depuis lors, je me suis tourné vers l'anglais pour nommer les identifiants. Que cela vous plaise ou non, c'est le & "Koine &"; pour la programmation, l'ingénierie et généralement des choses techniques. La plupart des API sont écrites en anglais, de même que la plupart des documents (et les meilleures ressources que vous pouvez trouver sont probablement aussi en anglais). Soit dit en passant, il garde votre code plus cohérent avec celui avec lequel vous êtes susceptible d’interagir, et je pense qu’il a tendance à être plus compact et succinct que d’autres langues comme l’espagnol (qui serait par ailleurs mon choix naturel).

Bien sûr, si vous ne comprenez pas au moins un peu d’anglais, le problème reste le même, ce n’est donc pas une solution parfaite. Mais, étant donné le nombre de développeurs de nombreux pays différents, il est fort probable que la langue commune de communication (par le code et bien d’autres moyens) sera l’anglais. Ainsi, choisir l'anglais est peut-être la meilleure option, même si ce ne serait pas la solution parfaite à ce problème.

Le langage de programmation définit les mots-clés et les noms de classe standard. Il est recommandé de donner aux types, variables et fonctions définis par l'utilisateur, ainsi que les noms anglais (je peux le dire en tant que locuteur non natif; -).

Alors oui, si tout va bien, vous pourrez lire le code.

Cependant, des langages tels que Java et Perl autorisent le jeu complet Unicode pour les identificateurs. Par conséquent, si quelqu'un écrit ses noms de classe en kanji, vous aurez probablement un problème.

Mise à jour: pour Perl, il existe un blague qui vous permet écrire Perl en latin. Mais c'est vraiment juste ça, une blague. Personne n’utilise ce genre de chose avec sérieux.

Deuxième mise à jour: L’idée des langages de programmation localisés n’est pas si ridicule. La macro-langue d'Excel est localisée, mais heureusement, elle est stockée dans une langue canonique (l'anglais) dans le fichier. La localisation n'est donc qu'une couche au-dessus de la normale. De telles choses n’ont de sens que pour les & "; Petits programmes &" ;, pour & "Les vrais! &"; programmes, il devient difficile de maintenir.

En fait, il existe des certains Langages de programmation non basés sur l'anglais (Wikipedia)

Je suis norvégien mais j'ai toujours utilisé l'anglais pour tous les codes sauf le code de sortie (en ignorant certains codes idiots de l'école). En fait, j’écris généralement tout en anglais, puis je le traduis dans ma langue maternelle, à l’aide de gettext (ou de quelque chose).

Je suis britannique et un des problèmes que nous rencontrons souvent est le conflit d’orthographe américano-britannique. Cela se produit souvent avec des termes liés à la programmation, tels que Initialise () ou Initialize (), Analyze () ou Analyze (), etc.). Cela peut entraîner des problèmes lors de la tentative de substitution de méthodes et est parfois difficile à repérer.

Étant donné que le cadre (dans notre cas, C #) a été conçu par des Américains, nous avons constaté qu’il était préférable d’être cohérent et d’utiliser des orthographes américaines. Nous adoptons même la couleur.

Nous avons un mélange de nationalités dans nos équipes de développement et la plupart des non-Britanniques tendent naturellement vers l'orthographe américaine.

AppleScript était autrefois disponible dans les dialectes français et japonais. Je ne sais pas pourquoi il a été retiré.

Pour en venir au niveau supérieur, qu'en est-il de pouvoir remplacer les symboles?

Après avoir vu des langues telles que Brainf ** k et Espace blanc J'ai pensé créer un langage comme celui-ci: il serait identique à C sauf que vous utiliseriez des accolades fermantes pour ouvrir, ouvrir des accolades pour fermer, permutez les significations de + et -, * et /,; et:, > et < ;, etc.

Le concept n’est rien d’autre qu’un compilateur C altéré par des gadgets. Mais, tout comme penser les mots clés différemment, il vous incite à repenser certaines hypothèses de base si vous n’avez jamais pensé à de telles choses auparavant. Ex:

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

Je suis dans une équipe française qui développe un logiciel en C #. Malgré le fait que les mots-clés du langage de programmation soient ostensiblement anglais, j'imagine que vous auriez beaucoup de difficulté à lire le code car tous les noms de fonction, variables, commentaires de code, tables et colonnes de base de données, spécifications techniques, protocoles, etc., sont tous présents. Français, y compris ces adorables caractères accentués & # 231 ;, & # 233 ;, & # 232 ;, & # 249 ;, etc. Je ne suis même pas certain que le système fonctionne même ailleurs en raison de bugs de localisation, tels que la virgule utilisée comme séparateur décimal par défaut.

Sinon, WinDev est une plate-forme de programmation populaire en France et son langage de programmation, WLangage, comporte des mots-clés en français ou en anglais. Voir l'exemple à cet endroit: texte du lien

J'ai vu VBA traduit en commandes similaires à l'espagnol. c'est l'une des choses les plus laides jamais vues. J'aurais honte d'avoir quelque chose comme ça sur mon ordinateur.

PD: Je pense que l’espagnol est une langue bien plus agréable que l’anglais; mais traduire est FAUX

Eh bien, comme d'autres l'ont souligné, les mots-clés et les appels système resteraient probablement en anglais.

Cependant, comprendre les mots-clés du langage n’est qu’une petite partie de la compréhension du code. Les noms de variable, les noms de fonction et les commentaires risquent tous d’être dans la langue maternelle de l’auteur.

Modifier : je viens de rappeler à ma jeunesse que je suis allé dans les tables de mappage de mon BASIC intégré TRS-80 pour basculer les mots clés en français. Je pouvais changer tous les mots-clés mais je ne pouvais pas les agrandir. Fait pour les programmes drôles.

Ne vous moquez pas de ça. Il y a quelques années, Microsoft avait annoncé G # (allemand Sharp) - C # avec des mots-clés et une API allemands. Bien sûr, c’était une blague du poisson d’avril, mais l’ensemble du site à ce sujet avait l’air si réel et professionnel (et le était sur microsoft.com). Effrayant.

Au travail, nous utilisons deux systèmes de bus de terrain, tous deux développés dans des pays germanophones, qui utilisent un mélange inquiétant d’allemand et d’anglais pour les identifiants, y compris de charmants faux amis. C'est un gâchis.

Non, les mots-clés et les identifiants anglais conviennent. Bien que certains puissent se demander si ce devrait être Couleur ou Couleur:)

Dans plusieurs projets VBA sur lesquels j'ai travaillé (oui, très tôt dans ma carrière), nous avons dû détecter la version de bureau installée sur la machine de l'utilisateur et modifier les formules utilisées dans les feuilles de calcul en conséquence.

Comme je programme en portugais " SUM " devrait être traduit en & "SOMA &"; et ainsi de suite. Je ne peux tout simplement pas imaginer le travail nécessaire pour que cela se produise dans plusieurs langues. Quelqu'un at-il souffert de ce problème?

La seule langue que j'ai vue localisée est Excel avec ses macros. Si vous essayez de faire la somme d'une colonne en utilisant une version italienne d'Office, vous devez écrire SOMMA(A1:A10) et non pas SUM. C'est dommage.

Au fait, juste parce que c'est amusant, voici à quoi devrait ressembler votre code avec des mots clés en italien:

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

Certaines langues ont traduit des mots-clés. Formules Excel, par exemple. Si vous écrivez des calculs dans une feuille de calcul, ce sera dans votre langue.

Heureusement, ce n'est pas une pratique courante, et même les non-anglophones comme moi remercient Dieu d'avoir un langage standard pour les mots-clés:

  • il est plus facile de partager votre travail.
  • Cela évite que la documentation ne devienne un plus grand cauchemar qu’elle est déjà.
  • Les mots et les phrases en anglais sont généralement courts et syntaxiquement pragmatiques. Dans la littérature, les langues latines sont beaucoup plus belles, mais pour l’essentiel technique, l’anglais est une pierre.

Et où s'arrêter? Pouvez-vous imaginer un C en grec ancien?

Les mots clés doivent rester dans une langue et, bien, cela a commencé par l'anglais, laissez-le rester. Cela aurait pu être pire (langue asiatique?). Nous devons donc écrire des méthodes et des commentaires en anglais. Ok, plus de travail pour nous, mais au moins la base de code international reste cohérente.

Il existe cependant un cas où l’utilisation de noms et de commentaires de méthode en langue maternelle peut être une bonne pratique: dans les pays du tiers monde. Je vais au Sénégal dans quelques mois pour gérer un projet Django. Le Sénégal a un taux d'analphabétisme énorme et c'est pourquoi il est déjà formidable qu'ils dépensent de l'énergie pour améliorer leurs connaissances en programmation. Le français étant la langue maternelle, il serait inefficace de les obliger à apprendre l’informatique ET à apprendre une nouvelle langue en même temps.

BTW, ce serait votre code avec les mots clés français:

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

Cela ne veut pas dire que la traduction des mots-clés n’a rien à voir avec la traduction des chaînes. Bien sûr, nous avons & «Bonjour, il y a &»; traduit dans notre langue. Les codeurs européens ont même tendance à utiliser I18N bien plus qu’un service américain, leur service pouvant toucher un public plus large.

De manière générale, la plupart des programmeurs s’adaptent à la forme anglaise. J'ai appris à programmer quand j'avais 7 ans et je ne parlais que l'hébreu (qui est juste à gauche) et sans l'anglais, ce qui en a fait une expérience fascinante.

Le problème que vous rencontrez généralement est lié à la documentation, aux variables et aux noms de fonction. J'ai vu ma part de variables dans d'autres langues en utilisant l'alphabet anglais.

La seule langue que je connaisse qui a été traduite est un bon vieux logo (toujours aussi étonnant à ce jour).

Quand j'étais enfant, nous sommes allés en France et dans un musée où je suis allé, je me souviens d'avoir trouvé une exposition qui vous montrait comment écrire des programmes informatiques. Le langage était une sorte de variante BASIC et je m'en souviens distinctement en utilisant POUR au lieu de FOR, etc. J'avais 7 ans et je venais juste d'apprendre le BASIC, et il me semblait tout à fait naturel que les Français aient leur propre dialecte comme ça !!

Je suppose que c’est peut-être LSE que j'ai vu?

Le langage de script de Filemaker est localisé. Les scripts (et les données!) Sont stockés dans une terrible & "; Sorte de canonique &"; forme.

Donc, si vous écrivez un script dans la version américaine, puis ouvrez-le dans la version française, tous les mots-clés et les noms des fonctions intégrées seront en français. Mais pourquoi ne pas courir?! Aha! La version française utilise & Quot;, & Quot; comme point décimal, et par conséquent pour éviter toute ambiguïté, utilise " ;;; " séparer les arguments de la fonction - la version américaine utilisant ". " et ", " respectivement. Cette conversion, vous devez le faire vous-même.

Vous travaillez donc à travers la très mauvaise interface d'édition de scripts (vous ne pouvez pas écrire de scripts sous forme de fichiers texte) pour résoudre tous ces problèmes. Ça court! Génial! Les résultats sont tous faux! Oh non! Aha! La date du 7 janvier 2004 que vous avez entrée dans la version américaine est interprétée comme le 1er juillet 2004 - apparemment, les dates ne sont pas seulement affichées mais sont stockées dans un ordre dépendant des paramètres régionaux. Je me moque de vous ? Non.

[Remarque: Filemaker 8 et 9 peuvent être sains d'esprit - je n'ai jamais travaillé qu'avec 3 - 7.]

Votre question est intéressante en ce qui concerne Perl car sa syntaxe est conçue pour suivre le langage naturel (anglais). Je me demande si cela rend les choses plus difficiles pour les non-anglophones ...

Bien sûr, Perl et Perlers refusent de jouer selon les règles conventionnelles. Le scientifique fou Damian Conway a écrit le module Lingua :: Romana :: Perligata . qui utilise la magie noire des filtres source pour vous permettre d’écrire Perl en latin!

Ici en Australie, nous devons encore épeler couleur comme couleur . Cependant, je trouve cela ennuyeux quand d’autres développeurs (australiens), travaillant sur un projet australien, décident que les noms de variables internes doivent être orthographiés à l’américaine.

Il serait inutile, à mon humble avis, d’adopter une syntaxe de langage . Cela tuerait tout type de portabilité.

La seule exception concerne les langages éducatifs, tels que LOGO. Ils ont été conçus pour faciliter l'apprentissage. La portabilité n'est donc pas un problème.

Je lis beaucoup de code, mais le problème réside toujours dans les noms de variable / méthode et dans les commentaires. S'ils commentent leur code dans leur propre langue, en utilisant des caractères spéciaux comme le japonais ou le cyrillique, nous avons des problèmes! mais les mots-clés je pense qu'ils resteront en anglais tels qu'ils sont.

en italien

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

Pour confirmer les inquiétudes d'une affiche précédente, j'ai vu un code Fortran avec une macro inclure la traduction de tous les mots-clés de l'anglais au français. Permettez-moi de ne pas continuer dans cette voie.

J'ai également dû travailler avec un code contenant simultanément des identifiants en italien, allemand, anglais et français, non seulement parce qu'il avait été développé à différents endroits, mais aussi parce que le développeur principal trouvait cela amusant et l'aidait à ne pas reproduire Noms d'identifiant (bien sûr, avec une routine de 2000 lignes ....)

Je pense que WordBasic était localisé. WordBasic était utilisé pour écrire les macros dans Word avant l'utilisation de VBA.

Si je me souviens bien, seul WordBasic écrit dans la version anglaise s’exécutait sur toutes les versions localisées. Si vous voulez écrire une version néerlandaise, vous ne pourrez l’exécuter que sur un mot néerlandais.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top