当前位置:  开发笔记 > 编程语言 > 正文

用其他(口语)语言编码

如何解决《用其他(口语)语言编码》经验,为你挑选了8个好方法。

这是我一直想知道的事情,我在网上任何地方都找不到它.当一家商店(比如日本)写代码时,我能用英文阅读吗?或者语言,如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"和" "用他们的母语?

编辑 - 是的,这很严重.我不知道语言的不同本地化是否有不同的关键字.或者如果甚至有不同的本地化.



1> OscarRyz..:

如果我理解的话,问题实际上就是:"世界上每一位编码人员都知道足够的英语能够使用与我完全相同的保留字吗?"

嗯..英语不是这里的主题,而是编程语言的保留词.我的意思是,当我大约10年前开始时,我没有任何英语线索,而且我仍然可以通过学习编程语言来编写简单的东西,即使我不知道它们是什么意思(用英语).事实上,这有助于我学习英语.

例如.我知道做一个"iteración"(迭代当然)我必须写:

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

给我"为",";" 和"++"里面的简单外来词或符号.后来我才知道"for"的意思是"para"和"while"的意思是"mientras"等等,但同时我不需要知道英语,但在我的情况下,我需要的是知道"C".

当然,当我需要学习更多东西时,我必须学习英语,因为文档是用那种语言编写的.

所以答案是:不,我不会用我的母语来看,等等.我用英语看到它们,但它们对我来说并不意味着它们对编程语言的反过来.

就像bash中的switch语句:case .. esac.什么是"esac"...对我来说bash中switch语句的结束.

我猜这就是我们所谓的"抽象"


顺便说一下,'esac'就是倒退的情况.我不知道你是否假装不知道该说些什么,但我能看出这对非英语人士来说会有多么混乱.
肯定的是,因为fi是if,但是,在某些时候,他们唯一的意思是"你通过写'esac'来结束一个开关状态"......他们不是在混淆或不是,但他们并不意味着什么用英语.但它们在C或bash或pascal中有意义.这才是重点.我们学习编程语言.
你总是会从非英语母语人士那里得到最好的答案.我是苏格兰人,对我来说学习英语也很困难;-)
+1当我开始编程时,我甚至不知道如何正确地发音goto.但后来,当我了解它的意思时,它在我脸上露出一个假笑.
注意在Excel中,该宏用本地语言翻译,"if"在法语中变为"si",这使得工具绝对无法使用.

2> Dónal..:

在Java语言中,由于JavaBeans约定,必须使用英语语言(至少部分地)命名一些方法.

此约定要求通过一对getX()和setX()方法建立属性X. 在法国 - 加拿大,一些开发人员必须使用法语进行编码,这导致以下讽刺:

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}


哦,皱纹!官僚主义再次获胜!:(
是的,在法国的学校,他们教你这样做.这太糟糕了,以至于学生们从不使用他们在课堂上所做的事情来编写现实世界中的代码,并且他们自己依靠简单的英语写作.
@Jonik:至少你不必争论ASCII /扩展字符集.在某些地方(这里),曾经有一个关于命名你的标识符的大辩论a)英文,b)捷克语没有重音符号,c)捷克语*带有重音*(大多数你不能没有捷克语键盘布局,非常适合任何人的可维护性).

3> jes5199..:

我找不到参考资料,但我想起了三个故事.

Lisp黑客通过将它们与您的非母语编程进行比较来捍卫无意义的功能,如"cdr"和"car":http: //people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171. HTML

当Yukihiro Matsumoto("Matz")开始开发Ruby时,他使用英语关键词,即使他用日语编写所有文档!.几年来Ruby没有英文文档,很少有美国人使用这种语言.但现在它是一种世界级的语言,它诞生于日本的事实只是历史的兴趣.如果该语言一直在平假名中使用关键词,那么它将更难以获得普及.

我曾经读过一篇文章 - 也许其他人可以找到它,谷歌今天没有帮助 - 这表明翻译关键词是错误的,因为这些词实际上并不是英语 - 它们是行话.不仅(使用上面的例子)parapour不完全具有英语中的确切含义,对于非程序员来说,"for loop"这个短语是乱七八糟的.甚至美国人也必须学习新的含义.因此,将词语的肤浅意义翻译成另一种语言更像是制作跨语言的双关语,而不是实际上有用.


他用日语
.几年来Ruby没有英文文档,很少有美国人使用这种语言.但现在它是一种世界级的语言,它诞生于日本的事实只是历史的兴趣.如果该语言一直在平假名中使用关键词,那么它将更难以获得普及.

不完全具有英语中的确切含义,
非程序员来说,"for loop"这个短语是乱七八糟的.甚至美国人也必须学习新的含义.因此,将词语的肤浅意义翻译成另一种语言更像是制作跨语言的双关语,而不是实际上有用.

4> Lara Dougan..:

我之前对日语编程真的没有太多考虑,但是在这里,我们使用问题的代码示例.

仅使用日语中的语言语句和英语变量:

// In Japanese, it makes more sense to put the keywords/modifiers as
// postfix expressions rather than prefix expressions.
(i < size)? {
     (l[i])? {
     1?:
         ??????????;
     ????:
         ???????????????;
     }
} ?? {
     ???????????????????;
}



5> Juan Pablo C..:

正如许多人已经指出的那样,在大多数编程语言中,你只需要学习一些关键词,所以如果它们是英语(或者不是你的语言,那就没那么重要).它只是与某些构造相关联的符号.例如,在VB中你有"那么",在许多C风格的语言中都是"{"并且它在可读性方面没有太大的区别(好吧,至少我是这样看的,非英语母语人士).

但是,事情有时会变得多毛,而(自然)语言的选择在于命名标识符.如果变量,函数,类等的名称因语言障碍而没有有意义的名称,那么即使是最简单的代码也可能具有相当大的挑战性.

我记得有人曾经从一些博客中摘录了一小段Actionscript.这些名字是用德语写的,因为我不会说那种语言,所以东西也可以被称为var_123,var_562或func_333(也许我可能更容易记住这些名字或至少有一个名字在不复制和粘贴的情况下拼写正确的机会).由于这是一个简短的,独立的片段,我使用在线翻译器以我的母语(西班牙语)为这些变量和函数提供有意义的名称,之后,一切都很清楚.重点是代码实际上很简单,但是当我克服语言障碍时,我只能在没有太多(不必要的)额外努力的情况下理解它.

从那以后,我转而使用英语来命名标识符.无论你喜欢与否,它都是编程,工程和一般技术的"koine".大多数API都是用英语编写的,因此大多数文档都是用英语编写的(也许最好的资源也是英文版).作为一个好的方面,它可以使您的代码与您可能要与之交互的代码更加一致,而且我认为它比其他语言(如西班牙语(这将是我的自然选择)更紧凑和简洁).

当然,如果你不能理解至少一些英语,问题仍然是一样的,所以这不是一个完美的解决方案.但是,鉴于来自许多不同国家的一些开发人员,很可能他们的通用语言(通过代码,当然还有其他方式)将是英语.因此,选择英语也许是最好的选择,即使它不是解决这个问题的完美方案.



6> moritz..:

编程语言定义了关键字和标准类名,最佳做法是给用户定义的类型,变量和函数以及英文名称(作为非本地人,我可以告诉;-).

所以是的,如果一切顺利,你将能够阅读代码.

但是,像Java和Perl这样的语言允许为标识符设置完整的Unicode集,所以如果有人在汉字中写下他的类名,你可能会遇到问题.

更新:对于Perl,有一个笑话模块,允许您用拉丁语编写Perl.但它真的只是一个笑话.没有人认真对待这样的事情.

第二次更新:本地化编程语言的想法并不是那么荒谬.Excel的宏语言是本地化的,但幸运的是它在文件中以一种规范语言(英语)存储,因此本地化只是正常事物之上的一层.这些东西只对小型"程序"有意义,对于"真正的"程序来说,它变得难以维护.



7> Stein G. Str..:

其实有一些基于非英语的编程语言(维基百科)

我是挪威语,但我总是使用英语为除输出之外的所有代码(忽略学校的一些愚蠢的代码).实际上我通常用英语写一切,然后使用gettext(或其他东西)翻译成我的母语.



8> 小智..:

我是英国人,我们经常遇到的问题是美国/英国的拼写冲突.这通常发生在编程相关的术语,如Initialise()或Initialize(),Analyze()或Analyze()等.这可能(有)导致尝试覆盖方法的问题,有时很难发现.

由于框架(在我们的例子中是C#)是由美国人设计的,我们发现最好是保持一致并使用美国拼写.我们甚至采用Color.

我们的开发团队中有各种国籍,大多数非英国人自然倾向于美国拼写.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有