我听说(同事们说过)每个人都“用英语编码”,无论他们来自哪里。我觉得很难相信,但是,如果对于大多数编程语言而言,受支持的字符集相对狭窄,我不会感到惊讶。

您曾经在一个英语不是主要语言的国家工作过吗语言?

如果是,他们的代码是什么样的?

评论

用英语命名所有事物代码是有意义的,以使其与框架更集成,甚至不提及非拉丁文字(我应该找到一些西里尔文或中文的代码;这很有趣)。问题当然是:应该是英式还是美式英语? .net框架中的某些部分使用英文拼写,而大多数使用美国的拼写。

真?英国的拼写在哪里?美国英语曾经惹恼我(我是澳大利亚人),但我现在已经习惯了...

此类问题的问题在于,在此英语问答网站上,对您的英语问题写英语答案的人可能并不代表非英语国家的所有程序员。

代码示例wonderfl.net/c/iUH0/read

@Larry Wang:是的,Stackoverflow用户可能没有代表性。但是,我们在具有正常同事和正常(请参阅:代表性)编码规则的正常公司工作。所以我认为这个问题的答案没有那么扭曲。

#1 楼

我来自加拿大,但现在居住在美国。

花了我一段时间习惯了使用前缀“ Is”而不是加拿大人使用的“ Eh”后缀编写布尔变量编程时。

例如:

MyObj.IsVisible

MyObj.VisibleEh


评论


这是一个玩笑,对吧?

–菲利普
2011年6月10日19:09

最好是,但它很有趣。

– HelloFictionalWorld
2011年9月16日在2:44

这是迄今为止我在互联网上看到的最有趣的事情

–乔治·卡根(George Kagan)
13年5月7日在8:13

我觉得令人毛骨悚然

–lukas.pukenis
13年6月26日在11:59

@Philip“这是个玩笑吧?”

– rlemon
2013年6月26日13:17

#2 楼

我是意大利人,总是用英语来写名字和评论。但是许多其他的意大利程序员使用意大利语,或更常见的是使用一种奇怪的英语-意大利语混合体(例如IsUtenteCopy)。

现实生活中的代码示例:

// Trovo la foto collegata al verbale
tblVerbali rsVerbale;
hr = rsVerbale.OpenByID(GetDBConn(), m_idVerbale);
if( FAILED(hr) )
    throw CErrorHR(hr);
hr = rsVerbale.MoveFirst();
if( S_OK != hr )
    throw CError(_T("Record del verbale non trovato."));



顺便说一下,Visual Studio MFC向导会创建带有本地化注释的框架应用程序:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CMDIFrameWndEx::PreCreateWindow(cs) )
        return FALSE;
    // TODO: modificare la classe o gli stili Window modificando 
    //  la struttura CREATESTRUCT

    return TRUE;
}


评论


Siamo messi proprio男:P

–Federico klez Culloca
2010-09-08 23:11



@klez:Hai真的是我的朋友。

–Wizard79
2010-09-08 23:15

像isUtenteCopy这样的@Lorenzo方法在意大利是必须的,哈哈!

–systempuntoout
2010年9月9日于7:13

这就是我永远不在意大利工作的原因之一。

–托马斯·博尼尼(Thomas Bonini)
2010年9月9日下午13:15

昨天我刚遇到一位开发人员,他偶然在一家国际公司工作,他们在为意大利电信公司构建的系统中添加了一些功能。不幸的是,他们几乎用意大利语编写了所有内容,包括变量,方法名称,注释甚至日志!甚至在某种移交会话中,只有来自意大利团队的一名开发人员才能说得很好的英语才能使人们熟悉代码。无论如何,现在Google Translator似乎在我朋友的团队中赢得了很高的声誉:D

– Shady M. Najib
2011年5月17日在12:01

#3 楼

我是从埃及来的。我认为我们在谈话或什至考虑代码时默认切换为英语。大多数学习资源(例如书籍,博客,播客等常规资源)都是英语。改用您的母语意味着您会转回许多宝贵的资源。

我想这篇文章可能通过Jeff Atwood传达了我的观点:
http://www.codinghorror.com/博客/2009/03/the-ugly-american-programmer.html

评论


我讨厌来自美国,但是“丑陋的美国人”在我们国家(尤其是对我们所有人的损害)上仍然具有很大的文化影响力(对我们所有人不利)。就像种族主义,性别歧视等一样,各州的文化进步与过去一样被衡量。一次一代。

–伊文·普莱斯
2010-09-11 9:45

我来自叙利亚,并同意@Shady的观点,在世界大部分地区,英语是影响最大的语言,如果您不懂英语,则无法有效使用互联网。如果我们看印第安人,他们在软件开发中排名第一,他们是否有Urdo编程语言?我猜不会。无论文化差异如何,重要的是用途和发展。越优雅,越会流行,这就是阿拉伯语面临着历史上最艰巨的挑战的原因。

– Ken D
2011年7月7日13:15

@LordCover您知道英语是印度的母语,对吗?

– Racheet
2013年6月26日12:55

#4 楼

我是法国人。正如评论中指出的那样,我的同胞倾向于表现出高于平均水平的母语:-)。我本人对此问题持务实态度:


我说的是目标受众最有可能会理解的语言。在为具有全球野心的开源软件编写代码时,我使用英语。对于不太有用的东西(例如,我的Emacs配置文件),我可能会使用法语。
我承认并非每个人都会精通英语。从这种角度来看,使用我的母语实际上可能会使我的代码更易于访问,而不是更少(在上面的示例中,没有人关心第n个.emacs,除非它恰巧是用他们理解的语言编写的。)写好法语比坏英语要好。我积极劝阻下属不要半途而废地写英语,尤其是在简洁性很重要的地方,例如在文档字符串和版本控制提交消息中。


评论


然后,有一天,您的公司被必须浏览您的代码的外国人收购。是的,不得不经历我们的法国同事的源代码并没有那么有趣...

–卡拉
2012年3月6日14:38

即使我不说越南语,但如果我的选择是在阅读带有正确越南语注释的代码,或者过度破坏和模棱两可的“英语”注释之间,那么我强烈希望使用前者。对于我来说,可能会使用多种自动翻译,越南语-英语词典和/或人工翻译来理解越南语,但是模棱两可的破碎英语的预期含义可能会永远消失。

–凯文·卡斯卡特(Kevin Cathcart)
2012年4月13日在17:29

如果可以的话,则表示“最好写好法语而不是坏英语”为-1。您将如何以这种思维方式提高英语水平?

– danijar
13年6月26日在11:57

@danijar在一些适合提高英语技能的论坛上吗?对于大多数代码库,我认为“幽默的家伙试图成为一名懂多种语言的人”在目标列表中没有很高的功能,尤其是在与“保持维护者理解”之类的目标不冲突的情况下。

– Shambulator
2013年6月26日14:45



@shambulator非常依赖。正如许多答案所指出的那样,用英语编写国际项目是有意义的。对于爱好项目,语法错误是可以接受的,因此养成用英语编码的习惯对我来说很有意义。而且,就个人而言,在您阅读的英语源和您的母语程序之间切换是很不方便的。

– danijar
2013年6月26日17:29

#5 楼

C#,它确实有效(西里尔文):

[Flags]
public enum Товары
{
    Непонятно = 0,
    Книги     = 1,
    Тетради   = 2,
    Карандаши = 4,
    Всё = Книги | Тетради | Карандаши
}

..
Товары карандаши = Товары.Карандаши;


Visual Studio允许它并且有人正在使用其母语编写代码,这很有趣(奇怪) (非英语)。

评论


对于那些不会说俄语或懒得查找译文的人来说,Товары是Items; Непонятно,未知; Книги,书籍; Тетради,笔记本; Карандашы,Pencils和Всё是All。我之所以只注意这一点,是因为讲浪漫语言的人往往会混淆其他浪漫语言,而且我认为斯拉夫语言在西方的代表性较低(我有波兰传统)。我还假设3应该是4。

–琼·普迪(Jon Purdy)
2010-09-16 0:25

@乔恩普迪你是正确的。我添加了[Flags]属性,并将3更改为4。但是问题不在开发中。 Visual Studio允许有一种有趣的(怪异的)功能,有人正在使用他/她的母语(非英语)编写代码。

– Zzz
2010-09-16 13:47



下次我需要使我的代码晦涩难懂时,我正在使用Cyrillic。

–塔尔维·瓦蒂亚(Talvi Watia)
2010-09-23在7:41

我是俄语,但是我讨厌用俄语写的代码成员名称。谁说我将一直支持该代码?可能是明天我将被解雇,而在我的地方将有来自其他国家的人。

–天才
2011-2-11在9:47

@JonPurdy在波兰没有西里尔字母,我们使用罗马字母且几乎没有特定字母,例如“Dzieńdobry”

– psur
2012年6月6日9:12

#6 楼

西班牙在使用外语方面存在传统问题。 40岁以下的西班牙人应该在学校学习英语,但一个明显的事实是,几乎所有地方的英语水平都接近于零。

所以基本上有两种类型的软件环境:假定的代码与国际组织(开源项目,外国跨国公司的西班牙办事处,在国外销售的供应商)共享,并在本地销售代码。前者当然是用英语写的,而后者通常是用西班牙语写的,包括变量名和文档。变量中的单词会丢失重音和波浪号以适合7位ASCII(dirección-> direccion),并且当它们代表标准语言功能(getDireccion)或没有普遍接受的翻译概念(abrirSocket)时,可以使用英语位。

删除波浪号时,西班牙语中的年份(año)变成了肛门。我在编写ano时没有任何问题,但大多数其他程序员不惜一切代价避免使用它,并产生了各种有趣的替代方法,例如annoanyo :) >
/**
 * Devuelve una cadena aleatoria de la longitud indicada elegidos entre la lista proporcionada;
 * contempla caracteres multi-byte
 */
function mb_cadena_aleatoria($longitud=16, $caracteres='0123456789abcdefghijklmnopqrstuvwxyz'){ // v2010-06-03
    $cadena = '';
    $max = mb_strlen($caracteres)-1;

    for($i=0; $i<$longitud; $i++){
        $cadena .= mb_substr($caracteres, mt_rand(0, $max), 1);
    }
    return $cadena;
}

/*
 * Da formato a un número para su visualización
 *
 * numero (Number o String) - Número que se mostrará
 * decimales (Number, opcional) - Nº de decimales (por defecto, auto)
 * separador_decimal (String, opcional) - Separador decimal (por defecto, coma)
 * separador_miles (String, opcional) - Separador de miles (por defecto, ninguno)
 */
function formato_numero(numero, decimales, separador_decimal, separador_miles){ // v2007-08-06
    numero=parseFloat(numero);
    if(isNaN(numero)){
        return "";
    }

    if(decimales!==undefined){
        // Redondeamos
        numero=numero.toFixed(decimales);
    }

    // Convertimos el punto en separador_decimal
    numero=numero.toString().replace(".", separador_decimal!==undefined ? separador_decimal : ",");

    if(separador_miles){
        // Añadimos los separadores de miles
        var miles=new RegExp("(-?[0-9]+)([0-9]{3})");
        while(miles.test(numero)) {
            numero=numero.replace(miles, "" + separador_miles + "");
        }
    }

    return numero;
}


评论


为ano位而投票,好笑:)

–朱利安
2010-09-20在11:03

非常好,翔实的答案!顺便说一句,在第二段中,似乎“后期”和“前者”混为一谈。

– Jonik
2010-09-20 14:33

我总是输入:“ anio”

– OscarRyz
2010-10-27 20:34

我(也是西班牙人)不理解使用波浪号的恐惧,我在一些同事中也看到了这一点。现代的IDE完全支持unicode,那么使用“año”怎么了?无论如何,我总是使用英语,看到西班牙语单词与英语关键字和框架类/成员混杂在一起对我来说很奇怪。

–科纳米曼
2011-09-16 7:38



至少“ anno”是“año”的(非常)老式拼写。也许这些说西班牙语的程序员应该使用拉丁语而不是西班牙语进行编码。毕竟,它是“拉丁”字母。

–phoog
2012年1月12日23:06

#7 楼

在法国,许多人与非英语国家的同事一起工作时往往会使用法语对象/方法/变量名称进行编码。
但这实际上取决于您的环境。

经验法则是“您工作的技术人员越多/正在从事的项目越多,它将成为英语的可能性//

在德国似乎也一样。

评论


不管怎么说,法语会用法语编程……对我来说都不足为奇……(不是说我讨厌说英语,但是,我想这就是我在说什么……)

–David_001
2010年9月9日上午10:11

作为一个讨厌英语的专业程序员,担任:-)并不是一个可持续的职位。

–DomQ
2010年9月9日上午11:27

@ David_001当场;-)

– Preets
2010年9月9日下午13:51

作为一个曾经在法国待了大约一个月的美国人,我实际上想与“法国仇恨说英语”的刻板印象相抵触。我的经验是,我会开始用法语讲话,然后我们经常会切换到英语,而不会造成社会摩擦。态度似乎是:“谢谢您尝试学习我的语言;我很感谢您的努力。不幸的是,您的法语确实很烂,而我的英语却没那么好,所以让我们使用它,因为我不想一直呆在这里* *国王日。”可能值得注意的是:1)我不在巴黎,而2)早在94年。

– BlairHippo
2010-09-16 15:46

@BlairHippo:作为搬家的法国公民,我经常遇到刻板印象(并遭受其刻板印象)。我的解释是(而且我不愿一概而论)人们太骄傲了,以至于无法表现出他们缺乏英语技能。如果您使用英语(或美国)来称呼他们,那么您将获得巨大的不公平优势。从法语开始-特别是如果法语不好,您表明您不会判断他们的英语不好,因为您敢于显示法语不好。大多数懂英语的法国人很可能会用它来炫耀:)

–Gauthier
2010-12-20 10:22



#8 楼

我来自瑞典,我和我的同事都用英语编写代码。我认为这是一件好事,但有时很难为客户特定的术语和表达提供等效的英语。

我用英语编写代码的原因:


我曾经使用过的几乎所有编程语言都是用英语编写的(混合语言会使我更难阅读代码)
大多数流行的框架和第三方扩展都是用英语编写的(同样,混合语言只会让人分心)
命名变量和函数时通常不允许瑞典字符(åäö)
如果其他团队成员来自不同国家/地区,我们仍然可以合作
如果我需要支持从平台供应商那里,如果他们能够理解我的代码,对他们来说帮助我就容易得多
更容易将支持外包出去


评论


我在1980年代准时访问了瑞典,但令我惊讶的是,我遇到的每个人都说很好的英语...包括售货员和出租车司机。你们真棒!

– Stephen C
2010-10-19 14:52



+1表示“要想出与客户特定的术语和表达形式相对应的英语可能很难” ...我也同意斯蒂芬C的话,他说瑞典人会说很好的英语...

– pgras
2011年2月11日12:12

#9 楼

我来自印度的班加罗尔。程序员来自各个州,使用不同的语言。

我们用英文编码,用英文文件,用英文注释,命名约定用英文。在办公室聊天时,英语是我们的通用语言。

评论


您是否认为您可以重新格式化答案,以便不使用水平滚动条就可以看到它?

– Autodidact
2010年9月9日在9:52

完成。我知道滚动条很烂!

–pramodc84
2010年9月9日上午10:20

我不知道为什么人们喜欢使用后壁虱来强调。他们看起来和工作在强调上,并且已经有两种非常好的强调样式。

–罗杰·佩特
2010年9月9日上午10:56

+1我的团队有至少7种不同语言的人。英语是唯一的选择-即使是闲聊:)

– Amarghosh
2010-09-13在7:18

我的印度同事和我偶尔对许多讲英语的印度人笑。它主要是英语,但明显不同。英文代码往往很好,而文档则带有一些偏心。

–沃宾爵士
2011-2-11在9:24

#10 楼

我是魁北克省的一名学生,我看到许多程序员喜欢用英语编写代码。我为您提供了很好的报价。


让他们用英语编程,您会看到他们不懂英语。


所以您可以找到像这样的宝石:

//putting the conter to 0
i=0


显然,如果您不掌握目标语言,则最好使用母语进行编码。否则,只会混淆代码。

评论


“很明显,如果您不掌握目标语言,最好使用您的母语进行编码。否则,只会使代码变得晦涩难懂。”哈哈哈经典。

–尼尔·弗利(Neil Foley)
2010-09-20 12:44

该注释向我表明,尽管如此,他们也不十分熟悉所用的编程语言-我认为该注释在完全法语中不会再有用。

–yatima2975
2010-09-20 14:26

@ yatima2975这不是一个真实的例子,这是我从脑海中构建出来的,以避免任何版权问题。

–DavRob60
2010-09-20 14:30

ug ..而且必须修正变量和文件名中的拼写错误是最糟糕的。夏季跨境成功仅举几例...

–塔尔维·瓦蒂亚(Talvi Watia)
2010-09-23在7:46

@Talvi:如果遵循编码准则,则修正拼写错误应与搜索并替换一样简单。

–rwong
2010-12-26 14:49

#11 楼

我来自英国,我尝试用美国英语编写代码(并在诸如StackOverflow之类的网站上发布),因为那是编程的公认国际语言。我认识的一些英国程序员即使在与使用美国英语的其他编码人员合作时也坚持使用英式拼写,并且当美国或印度同事编辑其注释以将英式语言转换为美式英语时可能会感到沮丧(不要在Ward的Wiki上尝试这样做) 。)

评论


同样-我是英语,在编程时通常使用美国英语。我仍然想要一个“颜色”属性,它只是Color的同义词,但除此之外,我已经克服了它。无论如何,我被教给我的是牛津式的-ize而不是剑桥式的-ise事实。

–理查德·加兹登(Richard Gadsden)
2010年9月9日在10:44

我到处都使用英式拼写,其原因无非就是我可以使用。

–丹·代尔
2010-09-12 14:35

我在所有地方都使用英式(读:国际)拼写,但在代码中(我非常恼火)是为了与国际事实上的标准保持一致。

–琼·普迪(Jon Purdy)
2010-09-16在0:27

@Jon当时看来,英国不像您让我们读的那样国际化。

– nohat
2010-10-6 17:50

我知道同事用英式英语写作只是为了惹恼美国同事。

–沃宾爵士
2011年2月11日在9:28

#12 楼

我在荷兰生活和工作,但是我们编写的所有代码都是英语。以下是我想到我们为什么用英语编码的一些原因:


我们使用的.NET框架是英语的。最好遵循所使用框架的约定,而且我相信其中包括该语言。

荷兰语是描述技术概念的可怕语言。英语中的单词可以准确地描述一些技术性的内容,例如一款软件,但是其中许多词没有荷兰语对等词。 “交互”一词就是一个例子。没有传达相同信息的常用荷兰语词。
公司中有一小部分人还不会说荷兰语。

我能想到的唯一原因就是英文代码是在域驱动设计的上下文中。练习DDD包括与客户定义一种通用语言。如果您的客户要求使用非英语术语,那么在您的代码中将这些术语翻译成英语是不明智的;它违反了无处不在的语言的目的。

评论


我不同意荷兰语是描述技术概念的可怕语言。只是如今,我们阅读的大多数技术文章都不是荷兰语,因此我们不再习惯荷兰语中的技术术语。但是其余的我都同意。该框架已经是英文的,谁知道您的代码可能会被不懂荷兰语的人阅读。因此,通常这是公司政策(也是文档)。但这并不是荷兰特有的。

–Matthijs Wessels
2010年9月9日在8:56

总体而言,荷兰语对技术语言来说还不错。它在物理和普通数学方面都很好。但是对于编程来说,肯定是这样。太多的英语术语难以翻译(例如,界面),荷兰语的术语还不够成熟,无法提供自己的术语。无论如何,我的所有代码都是英文的,除了对我的业余项目的注释。

– Joren
2010-09-20 14:35



与法兰德斯一样,英语是事实上的编程语言。我的同事可能会用荷兰语发表一些评论。

–卡拉
2012年3月6日15:32

#13 楼

我从未见过有人在以色列的代码中使用非英语名称,但是我的经验仅限于大学项目。无论如何,我个人只用英语编写代码,实际上我还用英语键入了我的所有电子邮件和作业。这主要是因为希伯来语是从右到左书写的,将英语术语合并到文本中可能会很烦人。

评论


那很有意思。我总是问自己,使用非拉丁脚本的人如何编写代码。从希伯来语字符转换为拉丁语字符是否可行?

–Federico klez Culloca
2010-09-08 23:11

我本人有时会进行音译。在极少数情况下,我发现翻译会造成混淆(特别是如果业务要求使用阿拉伯语)。但是,通常认为这是一种不好的做法

– Shady M. Najib
2010-09-08 23:15



我肯定知道一些在聊天和短信中音译的人。但是,我真的会在代码中特别是在注释中对此感到烦恼。

– EpsilonVector
2010-09-08 23:18



#14 楼

我来自德国,我用英语写我的类,方法和变量名,我想大多数人也这样做。
但在注释中,这取决于我与谁一起工作。

我必须承认,如果我看到用英语以外的其他语言编写的代码,我真的很讨厌它,因为您无法“阅读代码”。这就像有人用德语混合英语写一个句子。那么为什么要切换语言呢?我什至会说使用英语可以帮助您思考,因为您不必切换语言。

所有这些文档以及互联网上的大多数问题和答案都是英语,因此IMO您必须使用英语工作无论如何。

我想看到的一个例子很恐怖。

meinObst = "Apfel;Himbeere;Traube"
meinGeteiltesObst = meinObst.split(";")

for obst in meinGeteiltesObst:
    ...


您绝对可以在要从的for语句中看到它一种语言对另一种语言来说,IMO并不是一件好事。

评论


+1表示“在编码时绝对应该使用英语的另一个原因是API调用和特定于语言的调用始终以英语编写。那么为什么要切换语言?”

–马丁·巴
2011年1月18日在8:48

同样在这里。不过,在某些评论中我确实使用德语。例如,我不写/ * WTF ??? /,但也许是verflucher Mist吗? * /

– Ingo
13年2月7日在19:55

#15 楼

我来自斯洛文尼亚,我严格用英语编码。我看到过用斯洛文尼亚语编码的不同程序,因为客户要求这样做。显然,这样阅读代码更容易。
是的,人们不仅使用英语编写代码。

我在说的是代码本身,而不是软件本地化。
/>

评论


有趣。我也是斯洛文尼亚人,我拒绝代码中所有非英语单词(甚至不包括注释)。我曾经在一家公司里工作,当时有人用瑞典语添加评论。想象一下!就注释解释而言,他的代码可维护性如何。据我所知,他可能会对其中的公司感到愤慨。

– Robert Koritnik
2010-09-15 19:06

为斯洛文尼亚添加链接是否必要? :-)

–Luc M
2012年5月2日17:19

#16 楼

我来自丹麦。

代码,文档,命名,设计文档等全部以英语完成。我在业余爱好者和学生项目中从未见过这种情况-甚至那时也很少见。 >
window.setHeader("????");

throw new ThisMightBeSeenByTheUserInAnErrorMessageException("????");


对于例外情况,我更喜欢使用英文消息。它看起来更好,而且您仍然必须处理来自框架的英语异常消息。

对于GUI文本,我比较不可知。用英语编写所有内容并使用本地化解决方案翻译成丹麦语是一种更优雅的解决方案,但是对于仅会被丹麦用户使用的应用程序来说,这是很多工作。

评论


+1。我来自芬兰,听起来很熟悉。即使团队中的每个人都说芬兰语,使用英语几乎是很自然的事情。我上一次需要用芬兰语编码的时间是在很久以前的某个大学项目上。

– Jonik
2010-09-20 14:08

无论如何,经常需要对用户可见的字符串进行本地化,以将其移出代码。

–user1249
2010-10-18 20:01

#17 楼

我来自意大利,但不确定您要问什么。

如果您在谈论对象的命名,是的,我们使用英语。通常,学生出于学习目的用意大利语命名其对象。但是我个人觉得很难,更喜欢使用英语,因为某些技术术语在意大利语中非常糟糕。

#18 楼

我是意大利人。我通常对所有内容都使用英语(*),但是当我编写Web东西时,我无法对数据库对象使用英语。必须在“程序语言”和“文档/ URL / UI /客户语言”之间转换概念会增加太多负担。此外,有时您的数据库对象的名称来源于难以翻译或无法翻译的官僚术语。因此,我将意大利语用于数据库对象以及与此相关的任何对象。注释也使用意大利语,因为它们引用的是相同的对象,而且听起来很尴尬(意大利语中不存在许多英语专业术语,但DB是词典非常完整的领域)。但是,当我编写要重用的类库时,我对所有类,变量和注释都严格使用英语(也许顶级注释除外,该注释具有代码示例并且是双语的)。 (*)一个例外:我始终将虚拟变量pippo和pluto命名为“ Goofy”和“ Pluto”,而不是foo和bar。 :)

#19 楼

是的,我们愿意。我来自乌拉圭,我们通常用英语用变量名编码。有人用西班牙语发表评论,但我觉得有点尴尬。在上一份工作中,我们被迫将西班牙语用于变量和方法,我讨厌它。

评论


我发现最好的折衷方法是将业务术语保留为西班牙语,而将所有其他内容保留为英语,因为西班牙语的业务术语可能无法很好地翻译,尤其是在程序员这样做时。我一直在做类似的事情:getPromotorFactory()。看起来很奇怪,但是如果样式保持一致,我发现该代码更容易被同一公司中的其他开发人员理解。

–塞尔吉奥·阿科斯塔(Sergio Acosta)
2010年9月9日在6:59



我也是乌拉圭人。在我工作的公司中,我们用英语编写所有代码。代码注释,类,方法,字段和变量名称均为英语。我们构建的产品的本地化使用英语(这将是一种商业策略),甚至在提交对存储库的更改时的评论也都使用英语。

–费德
10-11-4在11:22

#20 楼

我目前在荷兰,但最初来自俄罗斯。 11年前,俄罗斯的许多程序员对英语的掌握程度都不高,因此注释通常是俄语的。变量名和函数方法仍然是英文,或者人们认为是英文,仅仅是因为相应的俄语单词往往很长,有时似乎使含义模糊。现在到处都是这样:专业人士越多,他们用英语发表评论的机会就越多。

在荷兰,我在公司中看到荷兰语的评论和变量/方法名称,大部分程序员是荷兰人(这样的公司确实存在:))但这是唯一的情况。

顺便说一句,“在来西方之前,您是否知道拉丁字母”惹恼我,直到我学会嘲笑它为止:)

#21 楼

来自印度,就像别人说的我们是100%的英语!但是我也曾在德国工作了一段时间。德国人曾经像意大利人那样做过(就像洛伦佐所说)。但是更大的公司,例如西门子等,已经标准化了英语。当所有文档和代码均为英文时,将工作委派到您所在国家/地区之外要容易得多。

#22 楼

我不到十年前来美国,英语不是我的母语。即使我在学校学习了如何读写英语,但直到嫁给一个不会说我语言的人,我的英语水平还是不太好。嗯,英语不是她的母语,但我们发现使用英语进行交流比尝试学习其他语言更容易。我认为编程也是如此。如果每个人都用自己的语言表达自己的想法,那么知识将变得过于分散。英语应该是强制性的吗?可能不会。大多数人不需要它。我的家人主要是农民,他们大多数人永远不需要英语就能过上有益的生活。我不会说成功的生活,因为它在世界不同地区具有不同的含义。

我不想参加一场神圣的战争,但是编程方面的英语可能与“丑陋的美国人”程序员无关。对于说不同语言的人来说,这可能只是一种方便的协作方式。可能是任何一种语言。也许将来我们会用中文编码和评论。如果发生这种情况,那可能不是因为“丑陋的中文”程序员,而是因为更多国家的更多人使用中文与外界进行交流。

#23 楼

即使对于个人项目,我也倾向于使用英语,这是因为在Stack Overflow或其他网站上询问代码更容易。我的操作系统也是如此-我只使用英语。我曾经有一个荷兰的操作系统,用谷歌搜索错误或信息真的很可怕。保留字。

#24 楼

我来自白俄罗斯,但我总是用英语发表评论。据我所知,许多白俄罗斯程序员使用英语作为主要的编码语言。

    /// <summary>
    /// Get item quantity
    /// </summary>
    /// <param name="itemCode">Item code</param>
    /// <param name="grade">Grade</param>
    /// <param name="lpn">LPN</param>
    /// <returns>Returns item quantity</returns>
    private int GetQuantity(string itemCode, string grade, int lpn)
    {
        using (var db = new MappingDataContext(_connection))
        {
            db.ObjectTrackingEnabled = false;
            return (from i in db.INVENTORs
                    where i.ITEM_NO == itemCode
                    where i.CUSTCHAR12 == grade
                    select i.ITEM_NO).Count();
        }
    }


评论


OT:您的代码示例包含7行注释,除了重复函数名称和参数外,没有任何实际内容。我写这封信的原因是,过去我做过同样的事情,直到我意识到这对所有参与人员都完全浪费了时间。我知道像这样的“注释强制”是很难克服的,因为一旦您习惯了没有注释头的函数,它看起来就不会完成,但是仅关注重要注释将为您节省大量时间,并提高您的注释技巧。

–xsl
2010-09-20在12:08

@xsl,看起来像是用于进一步机械加工的东西。

–user1249
2010-10-18 20:05

@ xsl,Thorbjørn:这是C#中的XML文档。可以从这些XML注释中生成技术文档。有一个名为Ghostdoc的工具可以自动创建并填充这些存根,因此创建这7行文档完全不需要键入。尽管它通常无法为编辑代码的程序员提供价值,但从视觉上讲,它可以将方法分开并且不会造成干扰。

–马雷克
10-10-28在12:07

使用Java,请改为获取JavaDoc。

–stolsvik
2012年3月6日在2:03

#25 楼

我肯定很奇怪:我使用的是标记化的语言,因此即使该语言本身也可以使用您自己的母语(法语,英语,德语,西班牙语和日语)显示。这是一种起源于1980年代的RBDMS语言,称为4d Dimension。通过单击标志图标来查看语言命令翻译。

在这里,您可以看到使用法语和英语设置看到的相同代码。





评论


最好的答案在这里。对应的答案应该只有三个带投票的答案。 “我的语言”,“英语”以及这一项。特别是因为几乎没有人带来代码示例。

– Moshe
2010-09-12 14:15

我曾经用4D编程,但我不知道该保留字的语言可以更改。现在,您提到了语言的标记化性质,我记得发生在我身上的一件奇怪的事。我和另一个程序员必须在数据库的单独副本中工作。我们创建了两个表,但是创建顺序不同。然后,当我们从数据库中复制代码并粘贴到他的表中时,表的名称将被反转。 TableA是TableB,反之亦然。 ( 未完待续... )

–图兰斯·科尔多瓦(TulainsCórdova)
2013年6月26日13:31



(续)然后,我意识到,我们看到的代码实际上是对实际代码的直观解释,并且它是不可移植的。当我们看到一个表名时,代码实际上包含了表的序列号。这样,当您将代码粘贴到另一个数据库中时,表名是错误的,因为那里的表是按不同的顺序创建的,因此基础表的序列号是不同的。

–图兰斯·科尔多瓦(TulainsCórdova)
2013年6月26日13:31

#26 楼

我来自魁北克,是一个会讲法语的人,但是我所有的代码,注释和文档始终都是用英语完成的。但是我知道魁北克的一些公司在代码中使用法语(注释和对象/变量命名)。

评论


这些是什么公司?听起来很可怕。

–sixtyfootersdude
2010-09-12的2:01

#27 楼

我一直用英文编码。另外,我也不想这样编码:

क = 1;
कुल = 0;
जब तक क छोटा है 10 से  {
    कुल += क;
}
छापो कुल



कार्य खाली मुख्य ( )      अंक समय       लिखें "Enter current time"    
     पढें समय        अगर [ समय < 12 ]    
        लिखें "Good Morning"    
  वरनाअगर [ समय >= 12 और समय < 16 ]    
           लिखें "Good Afternoon"    
  वरना              लिखें "Good Evening"    
  खत्म अगर    
खत्म कार्य


#28 楼

来自荷兰,我曾被迫在学校里用荷兰语写评论(甚至是变量名),这令人讨厌。大多数时候,我都拒绝这种态度,并且用纯英语写所有这些内容,以及其他已经有编程经验或学得很快的学生。最终用户可以或会看到的字符串都使用荷兰语,所有其他文本(包括非用户文档)都是英语。

#29 楼

我来自挪威,我们用英语编码。含义变量名称,方法名称,注释等均为英文。但是有一些变化。您可能会在挪威语中找到注释,而在英语中则发现代码本身。通常,使用挪威语是非常不切实际的,因为公司会雇用不讲挪威语或可能想要外包的人员。使用挪威语代码只会使事情复杂化。对于大多数与国外客户打交道的具有一定规模的公司,英语是公司语言。尽管员工显然会互相说挪威语,但电子邮件,公告等的含义仍将是英语。

#30 楼

我是台湾人我们使用英语编码,并遵循特定语言的命名约定。