以其他(口语)语言编码
这是我一直想知道的,在网上任何地方我都找不到任何提及。 当一个来自日本的商店写代码时,我能用英文阅读吗? 或者像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”和“其他“用他们的母语?
编辑 – 是的,这是严重的。 我不知道一个语言的不同本地化是否有不同的关键字。 或者甚至根本不同的本地化。
如果我理解得好,其实问题是:“世界上每一个编码员都知道足够的英文,就可以使用和我一样的保留字吗?
那么英文不是这里的主题,而是编程语言的保留字。 我的意思是,当我大约10年前开始的时候,我没有任何英语的线索,即使我不知道他们的意思(用英语),我仍然可以通过学习编程语言来编程简单的东西。 事实上,这帮助我学习英语。
例如。 我知道要做一个“iteración”(迭代当然),我不得不写:
for( i = 0 ; i < 100 ; i++ ) {}
对我来说,“为”,“;” 和“++”里简单的外来词或符号。 后来我知道“for”意思是“para”,“while”意思是“mientras”等,但同时我不需要知道英文,但是在我的情况下,我需要知道的是“C”。
当然,当我需要学习更多东西时,我必须学习英语,因为文档是用这种语言编写的。
所以答案是:不,我不知道是否用我的母语等。 我用英语看他们,但他们对我来说并不代表他们对编程语言的意义。
就像bash中的switch语句:case .. esac。 什么是“esac”…对于我在bash中的switch语句的结尾。
我想这就是我们所说的“抽象”
我很难find引用,但我想起了三个故事。
Lisp黑客通过将它们与非本地语言编程进行比较,为“cdr”和“car”等无意义的函数辩护: http : //people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171。 HTML
当松本幸弘(“Matz”)开始开发Ruby时,他用英文关键字即使他用日文写所有文档! 。 几年来没有Ruby的英文文档,很less有美国人使用这种语言。 但现在这是世界级的语言,它出生在日本的事实只是历史的兴趣。 如果这个语言使用了平假名的关键词,那么它将会有一个更加困难的时期。
我曾经读过一篇文章 – 也许别人能find它,Google今天没有帮助 – 这表明翻译关键词被误导了,因为这些文字实际上并不是英文 – 它们是行话。 不仅如此(使用上面的例子)对于非程序员而言,“for循环”这个短语并不完全具有确切的意思, 即使是美国人也必须学习新的意义。 所以要把单词的表面意义翻译成另外一种语言更像是交叉语言的双关语,而不是实际的帮助。
在Java语言中,有些方法必须使用英语来命名(至less部分),因为JavaBeans约定。
这个约定要求通过一对getX()和setX()方法build立一个属性X. 在法国和加拿大,一些开发者有义务使用法语进行编码,这导致了下面的讽刺:
interface Foo { Color getCouleur(); void setCouleur(Color couleur); }
我之前并没有太多的关于日文编程的想法,但是在这里,我们使用问题的代码示例。
在日语中仅使用英语variables的语言语句:
// In Japanese, it makes more sense to put the keywords/modifiers as // postfix expressions rather than prefix expressions. (i < size)か { (l[i])は { 1だ: 「もしもし。」を書く;省略時値: 「いいえ、いいですよ。」を書く; } } ない { 「はい、ありがとうございます。」を書く; }
ます// In Japanese, it makes more sense to put the keywords/modifiers as // postfix expressions rather than prefix expressions. (i < size)か { (l[i])は { 1だ: 「もしもし。」を書く;省略時値: 「いいえ、いいですよ。」を書く; } } ない { 「はい、ありがとうございます。」を書く; }
编程语言定义了关键字和标准类名,最好给用户定义types,variables和函数还有英文名称(作为非母语的人,我可以说;-)。
所以是的,如果一切顺利的话,你可以阅读代码。
然而像Java和Perl这样的语言允许为标识符设置完整的Unicode,所以如果有人用汉字写他的类名,你可能会遇到问题。
更新:对于Perl,有一个笑话模块 ,可以让你用拉丁语写Perl。 但是,这只是一个笑话。 没有人认真对待这样的事情。
第二次更新:本地化编程语言的想法并不是那么荒谬。 Excel的macros语言是本地化的,但幸运的是它在文件中以一种规范的语言(英文)存储,因此本地化只是正常情况下的一层。 这样的事情只对小的“程序”有意义,因为“真实”的程序很难维护。
正如很多人已经指出的那样,在大多数编程语言中,你只需要学习一些关键字,所以如果他们是英文的(或者是非你的语言),那么这些关键字就不重要了。 这只是一个与某个构造相关的符号。 例如,在VB中你有“THEN”,在许多C风格的语言中是“{”,这在可读性方面并没有太大的区别(至less我是这么认为的,作为一个非英语母语)。
但是有些东西有时会变得毛茸茸的,并且(自然的)语言select在命名标识符的地方。 如果variables,函数,类等的名称由于语言障碍而没有一个有意义的名称,那么即使是最简单的代码也是相当具有挑战性的。
我记得有人曾经给我一个简短的Actionscript片段摘自一些博客。 这些名字是用德语写的,因为我不会说这种语言,所以这些东西可能被称为var_123,var_562或者func_333(也许我会更容易记住这些名字,或者至less有一个没有复制和粘贴的正确拼写的机会)。 由于这是一个简短的,自成一体的片段,我使用了一个在线翻译器,用我的母语(西class牙语)给这些variables和函数赋予有意义的名字,之后,一切都清楚了。 问题的关键在于代码实际上很简单,但是只要我克服了语言障碍,我就可以在没有太多(不必要的)额外工作的情况下理解它。
从那以后,我开始使用英文来命名标识符。 无论你喜不喜欢,这是编程,工程和一般技术性的东西的“koine”。 大多数的API都是用英文写的,所以大多数文档(也可能是英文版的最好的资源)。 作为一个很好的旁观者,它使你的代码与你可能与之交互的代码更加一致,而且我认为它比西class牙语等其他语言更为简洁和简洁(否则这将是我的自然select)。
当然,如果你至less不能理解一些英文,那么问题依然存在,所以这不是一个完美的解决scheme。 但是,由于来自不同国家的许多开发人员,他们沟通的通用语言(通过代码,当然还有其他方式)可能是英语。 所以,select英语也许是最好的select,尽pipe这不是解决这个问题的完美scheme。
其实有一些非英文编程语言 (维基百科)
我是挪威语,但我总是使用英语的所有代码,除了输出(忽略学校的一些愚蠢的代码)。 其实我通常用英文写所有的东西,然后用gettext(或者其他东西) 把它翻译成我的母语。
我是英国人,我们经常碰到的一个问题是美国/英国的拼写冲突。 这经常发生在编程相关的术语,如Initialise()或Initialize(),Analyze()或Analyze()等。这可能会导致尝试覆盖方法的问题,有时难以发现。
由于框架(在我们的例子中是C#)是由美国人devise的,我们发现最好是一致的,并使用美国的拼写。 我们甚至采用颜色。
我们的开发团队中有不同的国籍,大多数非英国人自然倾向于美国的拼写。
把这个提升到一个新的水平,能够代替符号怎么样?
在看到Brainf ** k和Whitespace之类的语言之后,我想到了这样一种语言:除了使用右括号来打开,打开要closures的括号,将+和 – ,*和/ ,; 和:,>和<等
这个概念不过是一个噱头改变的C编译器。 但是,就像关键字的思维方式不同,如果你以前从未想过这样的事情,它就会挑战你重新思考一些基本的假设。 例如:
int foo)int i, char c( } int six = 2 / 3: int two = six + 4: if )i > 0( } printf)"i is negative"(: { {
我已经看到VBA翻译成西class牙式的命令。 这是有史以来最丑陋的事情之一。 我会感到羞耻,在我的电脑上有这样的事情。
PD:我碰巧认为西class牙语比英语好得多, 但翻译是错误的
那么,正如其他人指出的那样,关键字和系统调用可能会保持英文。
但是,理解语言的关键字只是理解代码的一小部分。 variables名称,函数名称和注释都有可能以作者的母语使用。
编辑 :我刚回到我的年轻时,我在TRS-80内置BASIC的映射表中将关键字切换到法语。 我可以改变所有的关键字,但是我不能让它们变大。 制作有趣的节目。
AppleScript曾经有法语和日语方言。 我不知道为什么撤回。
我在一个法国团队在C#开发软件系统。 尽pipe编程语言关键字是表面上是英文的,但是我想你会很难阅读代码,因为所有的函数名称,variables,代码注释,数据库表格和列,技术规范,协议等都在法文,包括那些可爱的重音字符ç,é,è,ù等等。我甚至不确定系统是否会由于本地化错误而在别处运行,比如依靠逗号作为默认的十进制分隔符。
否则,WinDev是法国stream行的编程平台,其编程语言WLanguage具有法文或英文的关键字,请参阅以下示例: 链接文本
不要取笑这个。 几年前,微软已经宣布了德语关键字和API的G#(德语夏普) – C#。 当然,这是一个愚人节玩笑,但整个网站看起来如此真实和专业(并在microsoft.com上)。 害怕。
在工作中,我们使用两个现场总线系统,这两个系统都是在德语国家开发的,这些系统有一些可怕的德语和英语混合的标识符,包括一些可爱的假朋友。 一团糟。
不,英文关键字和标识符是好的。 虽然有些人可能会认为,如果它应该是颜色或颜色:)
在我工作过的几个VBA项目中(是的,在我的职业生涯早期),我们必须检测安装在用户机器上的办公版本,并相应地更改在speradsheet中使用的公式。
正如我在葡萄牙语“SUM”编程将不得不被翻译成“SOMA”等等等等。 我无法想象用多种语言来做这件事的必要工作。 有没有其他人遭受这个问题?
一般来说,大部分程序员都适应英文的forms。 我7岁时学会了编程,只讲希伯来语(这是左起),没有英文,这使得它非常有趣。
您通常会遇到的问题是文档,variables和函数名称。 我已经看到了我用英文字母在其他语言中的variables份额。
我熟悉的唯一真正被翻译的语言是好的旧Logo(至今仍然令人惊叹)。
你的问题对于Perl来说是一个有趣的问题,因为它的语法被devise为遵循(英语)自然语言。 我想知道这是否使非英语人士更难…
当然,Perl和Perlers拒绝按常规来玩。 疯狂的科学家Damian Conway写了Lingua :: Romana :: Perligata模块,它使用了源代码filter的黑魔法,允许你用拉丁语写Perl!
在澳大利亚,我们仍然需要拼色 。 然而,当其他(澳大利亚)开发人员从事澳大利亚项目时,我觉得这很烦人,他们认为内部variables名称需要用美式拼写。
我看到的唯一语言是Excel和它的macros。 如果您尝试使用意大利语版本的Office SOMMA(A1:A10)
列,则必须编写SOMMA(A1:A10)
而不是SUM。 这是一个耻辱。
顺便说一句,只是因为它很有趣,以下是你的代码应该如何与意大利的关键字:
se (i < size){ commuta caso 1: stampa "hi there" normalmente: stampa "no, thank you" } altrimenti { stampa "yes, thank you" }
有一些语言翻译了关键字。 Excel公式,例如。 如果您在电子表格中撰写一些计算结果,这将以您的语言。
幸运的是,这不是一个普遍的做法,甚至像我这样的非英语的人也感谢上帝,关键词有一个标准的语言:
- 分享你的工作更容易
- 它防止文档成为一个更大的噩梦,它已经是。
- 英语单词和句子通常短而语法实用。 在文学中,拉丁语言更美丽,但对于技术性的东西,英国的石头。
在哪里停止? 你能想象古希腊的C吗?
关键词必须保持一种语言,而且,从英语开始,让它保持这种方式。 这可能是最糟糕的(亚洲语言?)。 所以我们必须用英文撰写方法和评论。 好的,为我们做更多的工作,但至less国际代码库保持一致。
然而,有一种情况是使用母语方法名称和评论可能是一个好的做法:在第三世界国家。 我将在几个月前去塞内加尔pipe理一个Django项目。 塞内加尔的平均化程度非常高,因此他们已经很高兴能够提高他们的编程知识。 法语是这里的母语,所以迫使他们同时学习计算和新的语言是不够的。
顺便说一句,这将是你的法语关键字的代码:
Si (i < taille) { cas par cas : cas 1: afficher "salut" défaut: afficher "non merci" } sinon { afficher "oui, merci" }
不是翻译关键字与翻译string没有任何关系。 当然,我们有我们的语言翻译“嗨,那里”。 欧洲的编码者甚至倾向于使用I18N,而不是美国的Sot,他们的服务可以覆盖更广泛的受众。
恕我直言,这是毫无意义的语言语法 。 这只会杀死任何可移植性。
唯一的例外是教育语言,如LOGO。 它们是为了便于学习而devise的,因此便携性不是问题。
我读了很多代码,但问题总是在variables/方法名称和注释,如果他们用自己的语言评论他们的代码,使用像日语或西里尔语这样的语言特殊字符,我们就麻烦了! 但我认为他们会保持英文的关键字。
当我还是一个孩子的时候,我们去了法国,在一个博物馆里,我记得find一个展示你如何写电脑程序的展示。 该语言是某种BASIC变体,我清楚地记住它使用POUR而不是FOR,等等。 我7岁那年才刚刚学BASIC,法国人自己的方言就这样完全自然了!
我想这可能是我看到的LSE了吗?
Filemaker的脚本语言是本地化的。 脚本(和数据!)以可怕的“不规范”forms存储。
因此,如果您在美国版本中编写脚本,然后在法语版本中打开它,所有关键字和内置函数名称将以法语显示。 但为什么不运行?! 啊哈! 法文版使用“,”作为小数点,因此为避免歧义使用“;” 分离函数参数 – 美国版本使用“。”。 和“,”分别。 这个转换你必须自己做。
所以你通过令人难以置信的糟糕的脚本编辑界面(你不能写脚本作为文本文件)来解决所有这些问题。 它运行! 大! 结果都是错的! 不好了! 啊哈! 您在美国版本中input的date为2004年7月1日 – 显示date不仅显示,而且以与区域相关的顺序存储 。 我开玩笑吗 ? 没有。
[注:Filemaker 8和9可能是理智的 – 我只有3 – 7的工作。]
用意大利语
se (i < dimensione){ scegli caso 1: stampa "ciao" mancante: stampa "no, grazie" } altrimenti { stampa "sì, grazie" }
为了确认之前一些海报的担忧,我看到一个带有macros的Fortran代码包括将所有关键字从英文翻译成法文。 让我不要继续这个。
我还必须使用同时包含意大利语,德语,英语和法语标识符的代码,不仅因为它是在许多不同的地方开发的,而且还因为主开发人员认为这很有趣,并帮助他不复制标识符名称当然,例行2000线长….)
我认为WordBasic是本地化的。 在使用VBA之前,WordBasic用于在Word中写入macros。
如果我记得正确,只有用英文版写的WordBasic才能在所有本地化版本上执行。 如果您要编写荷兰语版本,则只能在荷兰语单词上执行。