C'est quelque chose que je me suis toujours demandé et je ne trouve aucune mention en ligne. Lorsqu'un magasin du Japon, par exemple, écrit du code, pourrais-je le lire en anglais? Ou est-ce que les langues, comme C, PHP, quelque chose, ont des traductions japonaises qu'elles écrivent?
Je suppose que ce que je demande, c'est que tous les codeurs du monde connaissent suffisamment l'anglais pour utiliser exactement les mêmes mots réservés que moi?
Est-ce que ce code:
If (i < size){
switch
case 1:
print "hi there"
default:
print "no, thank you"
} else {
print "yes, thank you"
}
afficher exactement le même que je le vois actuellement en anglais, ou une autre personne non anglophone verrait-elle les mots "if", "switch", "case", "default", "print" et " else "dans leur langue maternelle?
EDIT - oui, c'est sérieux. 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.
Réponses:
Si j'ai bien compris, la question est en fait: "est-ce que chaque codeur dans le monde connaît suffisamment l'anglais pour utiliser exactement les mêmes mots réservés que moi?"
Bon .. L'anglais n'est pas le sujet ici mais les mots réservés au langage de programmation. Je veux dire, quand j'ai commencé il y a environ 10 ans, je n'avais aucune idée de l'anglais, et j'étais quand même capable de programmer des choses simples en apprenant le langage de programmation, même si je ne savais pas ce qu'elles signifiaient (en anglais). En fait, cela m'a aidé à apprendre l'anglais.
Par exemple. Je sais que pour faire une "itération" (itération bien sûr) j'ai dû écrire:
Pour moi, le "pour", le ";" et le "++" où de simples mots ou symboles étrangers. Plus tard, j'apprends que "pour" signifiait "para" et "while" signifiait "mientras", etc.
Bien sûr, quand j'avais besoin d'apprendre plus de choses, je devais apprendre l'anglais, car la documentation est écrite dans cette langue.
Donc la réponse est: non, je ne vois pas si, pendant, pour etc. dans ma langue maternelle. Je les vois en anglais, mais ils ne signifiaient pas pour moi autre chose qu'ils signifiaient à leur tour pour le langage de programmation.
Est comme l'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 «abstraction»
la source
Dans le langage Java, certaines méthodes doivent être nommées (au moins partiellement) en anglais en raison de la convention JavaBeans.
Cette convention requiert 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:
la source
J'ai du mal à trouver des références, mais je me souviens de trois histoires.
Un hacker Lisp défend des fonctions dénuées de sens comme "cdr" et "car" en les comparant à la programmation dans votre langue non native: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171. html
Quand 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'y avait pas de documentation en anglais pour Ruby pendant quelques années, et très peu d'Américains utilisant la langue. Mais maintenant, c'est une langue de classe mondiale, et le fait qu'elle soit née 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 n'est d'aucune aide aujourd'hui - qui suggérait que la traduction de mots-clés était malavisée parce que les mots ne sont pas réellement anglais - ce sont du jargon. Non seulement (pour utiliser les exemples ci-dessus) para et pour n'ont pas tout à fait la signification exacte que for has en anglais, pour les non-programmeurs, l'expression "for loop" est un jibberish. Même les Américains doivent apprendre un nouveau sens. Donc, traduire le sens superficiel des mots dans une autre langue, c'est plus faire un jeu de mots en plusieurs langues plutôt que d'être réellement utile.
la source
Je n'ai vraiment pas trop réfléchi à la programmation en japonais auparavant, mais nous y voilà, en utilisant l'exemple de code de la question.
En utilisant uniquement les instructions de langue en japonais avec les variables en anglais:
la source
Comme beaucoup de gens l'ont déjà souligné, dans la plupart des langages de programmation, il vous suffit d'apprendre quelques mots-clés, donc peu importe qu'ils soient en anglais (ou dans une langue autre que la vôtre, d'ailleurs). C'est juste un symbole que vous associez à une construction. Par exemple, dans VB, vous avez "THEN", qui dans de nombreux langages de style C serait "{" et cela ne fait pas une grande différence en termes de lisibilité (enfin, du moins c'est comme ça que je le vois, étant un non-anglais locuteur natif).
Mais là où les choses peuvent parfois devenir velues, et où le choix du langage (naturel) compte, c'est dans la dénomination des identifiants. Si les noms de variables, de fonctions, de classes, etc. n'ont pas de nom significatif pour vous en raison d'une barrière de langue, suivre même le code le plus simple peut être assez difficile.
Je me souviens que quelqu'un m'a donné une fois un court extrait d'ActionScript tiré d'un blog. Les noms étaient en allemand et comme je ne parle pas un mot de cette langue, les choses auraient pu s'appeler var_123, var_562 ou func_333 aussi (et il aurait probablement été plus facile pour moi de me souvenir des noms ou du moins d'avoir un chance de les épeler correctement sans copier-coller). Comme il s'agissait d'un court extrait autonome, j'ai utilisé un traducteur en ligne pour donner à ces variables et fonctions des noms significatifs dans ma langue maternelle (espagnol) et après cela, tout était clair. Le fait est que le code était en fait simple, mais je n'ai pu en comprendre le sens que sans trop d'effort supplémentaire (inutile) au moment où j'ai surmonté la barrière de la langue.
Depuis, je suis passé à 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 les trucs techniques. La plupart des API sont écrites en anglais, tout comme la plupart de la documentation (et probablement les meilleures ressources que vous pouvez trouver sont également en anglais). En passant, cela maintient votre code plus cohérent avec le code 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 (ce qui serait autrement mon choix naturel).
Bien sûr, si vous ne comprenez pas au moins un peu d'anglais, le problème reste le même, donc ce n'est pas une solution parfaite. Mais, étant donné un certain nombre de développeurs de nombreux pays différents, il y a de fortes chances que la langue commune pour eux de communiquer (par le biais de code et bien sûr d'autres moyens) soit l'anglais. Donc, choisir l'anglais est peut-être la meilleure option, même si ce ne serait pas la solution parfaite à ce problème.
la source
Le langage de programmation définit des mots-clés et des noms de classe standard, et il est recommandé de donner des types, des variables et des fonctions définis par l'utilisateur également des noms anglais (en tant que locuteur non natif, je peux le dire ;-).
Alors oui, si tout va bien, vous pourrez lire le code.
Cependant, des langages comme Java et Perl autorisent le jeu Unicode complet pour les identificateurs, donc si quelqu'un écrit ses noms de classe en Kanji, vous aurez probablement un problème.
Mise à jour: Pour Perl, il existe un module de blague qui vous permet d'écrire Perl en latin. Mais c'est vraiment juste ça, une blague. Personne n'utilise de telles choses au sérieux.
Deuxième mise à jour: L'idée de langages de programmation localisés n'est pas si ridicule. La langue des macros d'Excel est localisée, mais heureusement, elle est stockée dans une langue canonique (anglais) dans le fichier, de sorte que la localisation n'est qu'une couche au-dessus de la chose normale. De telles choses n'ont de sens que pour les petits "programmes", pour les "vrais" programmes, cela devient difficile à maintenir.
la source
En fait, il existe des 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 la 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, en utilisant gettext (ou quelque chose).
la source
Je suis britannique et un problème que nous rencontrons souvent est le conflit orthographique américain / britannique. Cela se produit souvent avec des termes liés à la programmation tels que Initialise () ou Initialize (), Analyze () ou Analyze (), etc.
Puisque le framework (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 ont naturellement tendance à utiliser l'orthographe américaine.
la source
AppleScript était autrefois disponible dans les dialectes français et japonais. Je ne sais pas pourquoi il a été retiré.
la source
En prenant cela au niveau suivant, qu'en est-il de pouvoir substituer des symboles?
Après avoir vu des langages comme Brainf ** k et Whitespace, j'ai pensé à créer un langage comme celui-ci: ce serait identique à C sauf que vous utilisez des accolades fermantes pour ouvrir, des accolades ouvrantes pour fermer, permutez les significations de + et -, * et / ,; et:,> et <, etc.
Le concept n'est rien de plus qu'un compilateur C modifié gimmicky. Mais, comme pour penser les mots-clés différemment, cela vous met au défi de repenser certaines hypothèses de base si vous n'avez jamais pensé à de telles choses auparavant. Ex:
la source
Je fais partie d'une équipe française développant un système logiciel en C #. Malgré le fait que les mots-clés du langage de programmation soient ostensiblement anglais, j'imagine que vous auriez de grandes difficultés à lire le code car tous les noms de fonctions, variables, commentaires de code, tables et colonnes de base de données, spécifications techniques, protocoles, etc. Français, y compris ces jolis caractères accentués ç, é, è, ù, etc. Je ne suis même pas certain que le système fonctionnerait même ailleurs en raison de bogues de localisation, comme le fait de se fier à la virgule comme séparateur décimal par défaut.
Sinon, WinDev est une plateforme de programmation populaire en France, et son langage de programmation WLangage a des mots-clés en français ou en anglais, voir et exemple ici: lien texte
la source
La seule langue que j'ai vu localisée est Excel avec ses macros. Si vous essayez de additionner une colonne à l'aide d'une version italienne d'Office, vous devez écrire
SOMMA(A1:A10)
et non SUM. C'est une honte.Au fait, juste parce que c'est amusant, voici à quoi devrait ressembler votre code avec des mots-clés italiens:
la source
J'ai vu VBA traduit en commandes de type 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 beaucoup plus agréable que l'anglais; mais traduire est MAUVAIS
la source
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 variables, les noms de fonctions et les commentaires risquent tous d'être dans la langue maternelle de l'auteur.
Edit : Je viens de rappeler ma jeunesse où je suis allé dans les tableaux de cartographie de mon TRS-80 intégré BASIC pour passer les mots-clés en français. Je pourrais changer tous les mots-clés, mais je ne pourrais en agrandir aucun. Conçu pour des programmes amusants.
la source
Ne vous moquez pas de ça. Il y a quelques années, Microsoft avait annoncé G # (allemand Sharp) - C # avec des mots clés allemands et une API. Bien sûr, c'était une blague du poisson d'avril, mais tout le site à ce sujet avait l'air si réel et professionnel (et é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 ont un mélange effrayant d'allemand et d'anglais pour les identifiants, y compris de charmants faux amis. C'est le bordel.
Non, les mots-clés et identifiants anglais conviennent. Bien que certains pourraient se demander si cela devrait être Couleur ou Couleur :)
la source
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 d'Office qui était installée sur la machine de l'utilisateur et changer les formules utilisées dans les speradsheets 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 d'autre a-t-il souffert de ce problème?
la source
Certaines langues ont des mots-clés traduits. Des 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 générale, et même les non anglophones comme moi remercient Dieu qu'il existe une langue standard pour les mots-clés:
Et où s'arrêter? Pouvez-vous imaginer un C en grec ancien?
Les mots clés doivent rester dans une seule langue, et bien, cela a commencé par l'anglais, laissez-le rester ainsi. Cela aurait pu être le pire (langue asiatique?). Nous devons donc rédiger des méthodes et des commentaires en anglais. Ok, plus de travail pour nous, mais au moins la base de code internationale reste congruente.
Il existe cependant un cas où l'utilisation de noms de méthodes et de commentaires en langue maternelle peut être une bonne pratique: dans un pays du tiers monde. Je pars au Sénégal dans quelques mois pour gérer un projet Django. Le Sénégal a un taux d'analphabétisation énorme, et c'est pourquoi il est déjà formidable qu'ils consacrent de l'énergie à améliorer leurs connaissances en programmation. Le français est la langue maternelle ici, il serait donc inefficace de les forcer à apprendre l'informatique ET une nouvelle langue en même temps.
BTW, ce serait votre code avec des mots-clés français:
Non pas que la traduction des mots-clés n'ait rien à voir avec la traduction des chaînes. Bien sûr, nous avons traduit «salut, là» dans notre langue. Les codeurs européens ont même tendance à utiliser I18N beaucoup plus que les américains pour que leur service puisse toucher un public plus large.
la source
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 de droite à gauche) et sans anglais, ce qui en a fait une expérience assez fascinante.
Le problème que vous rencontrez généralement concerne la documentation, les variables et les noms de fonctions. J'ai vu ma part de variables dans d'autres langues en utilisant l'alphabet anglais.
La seule langue que je connais et qui a été traduite était le bon vieux logo (toujours étonnant à ce jour).
la source
Quand j'étais enfant, nous sommes allés en France, et dans un musée où nous sommes allés, je me souviens avoir trouvé un écran 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, et ainsi de suite. J'avais 7 ans et je venais tout juste d'apprendre le BASIC, et il me semblait tout à fait naturel que les Français aient leur propre dialecte comme celui-ci !!
Je suppose que c'est peut-être LSE que j'ai vu?
la source
Le langage de script de Filemaker est localisé. Les scripts (et les données!) Sont stockés sous une forme terrible "sorta canonique".
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 noms de fonctions intégrés seront en français. Mais pourquoi ne fonctionne-t-il pas?! Ah! La version française utilise "," comme point décimal, et donc pour éviter toute ambiguïté utilise ";" pour séparer les arguments de fonction - où la version américaine utilise "." et "," respectivement. Cette conversion, vous devez la faire vous-même.
Vous travaillez donc avec une interface d'édition de script incroyablement mauvaise (vous ne pouvez pas écrire de scripts sous forme de fichiers texte) pour corriger toutes ces choses. Ça court! Génial! Les résultats sont tous faux! Oh non! Ah! La date du 7 janvier 2004 que vous avez entrée dans la version américaine est interprétée comme du 1 juillet 2004 - apparemment, les dates ne sont pas seulement affichées mais stockées dans l'ordre dépendant des paramètres régionaux. Je plaisante ? Non.
[Remarque: Filemaker 8 et 9 peuvent être sains d'esprit - je n'ai jamais travaillé qu'avec 3 - 7.]
la source
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 la tâche plus difficile pour les non anglophones ...
Bien sûr, Perl et Perlers refusent de jouer selon les règles conventionnelles. Le savant fou Damian Conway a écrit le module Lingua :: Romana :: Perligata qui utilise la magie noire des filtres sources pour vous permettre d'écrire Perl en latin!
la source
Ici en Australie, nous devons encore épeler la couleur comme la 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 épelés à l'américaine.
la source
Il serait inutile, à mon humble avis, d'i18n une syntaxe de langage . Cela tuerait tout type de portabilité.
La seule exception concerne les langues éducatives, telles que LOGO. Ils ont été conçus pour faciliter l'apprentissage, donc la portabilité n'est pas un problème.
la source
Je lis beaucoup de code, mais le problème est toujours au niveau des noms de variables / méthodes et des commentaires, s'ils commentent leur code sur leur propre langue, en utilisant des caractères spéciaux de langue comme le japonais ou le cyrillique, nous avons des problèmes! mais les mots-clés je pense qu'ils resteront en anglais tels quels.
la source
en italien
Pour confirmer les inquiétudes de certaines affiches précédentes, j'ai vu un code Fortran avec une macro include pour traduire tous les mots-clés de l'anglais vers le français. Permettez-moi de ne pas continuer sur ce point.
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 a été développé dans de nombreux endroits différents, mais aussi parce que le développeur principal a pensé que c'était amusant et l'a aidé à ne pas dupliquer les noms d'identifiants ( bien sûr, avec une routine de 2000 lignes ...)
la source
Je pense que WordBasic a été localisé. WordBasic a été utilisé pour écrire des macros dans Word avant l'utilisation de VBA.
Si je me souviens bien, seul WordBasic écrit dans la version anglaise s'exécuterait sur toutes les versions localisées. Si vous écrivez une version néerlandaise, vous ne pouvez l'exécuter que sur un mot néerlandais.
la source