我听说(同事)说,不管他们来自哪里,每个人都用“英语编码”。我发现很难相信,但是对于大多数编程语言来说,如果支持的字符集相对狭窄,我不会感到惊讶。
您是否曾经在英语不是主要语言的国家工作过?
如果是这样,他们的代码是什么样的?
我听说(同事)说,不管他们来自哪里,每个人都用“英语编码”。我发现很难相信,但是对于大多数编程语言来说,如果支持的字符集相对狭窄,我不会感到惊讶。
您是否曾经在英语不是主要语言的国家工作过?
如果是这样,他们的代码是什么样的?
Answers:
我来自加拿大,现在住在美国。
我花了一些时间习惯于编写带有“ Is”前缀的布尔变量,而不是加拿大人在编程时使用的“ Eh”后缀。
例如:
MyObj.IsVisible
MyObj.VisibleEh
我是意大利人,总是用英语来表示姓名和评论。但是许多其他的意大利程序员都使用意大利语,或更常见的是英语-意大利语的混合体(类似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;
}
我是法国人。正如评论中指出的那样,我的同胞倾向于表现出高于平均水平的母语:-)。我本人对此问题采取务实的立场:
.emacs
,除非它恰巧是用他们理解的语言编写的)。我是从埃及来的。我认为我们在交谈或什至考虑代码时默认切换为英语。大多数学习资源(例如书籍,博客,播客等常规资源)都是英语。改用母语意味着您会背弃许多宝贵的资源。
我想这篇文章可能通过Jeff Atwood传达了我的观点:http : //www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html
C#,它确实有效(西里尔文):
[Flags]
public enum Товары
{
Непонятно = 0,
Книги = 1,
Тетради = 2,
Карандаши = 4,
Всё = Книги | Тетради | Карандаши
}
..
Товары карандаши = Товары.Карандаши;
Visual Studio允许这样做很有趣(奇怪),并且有人正在使用其母语(非英语)编写代码。
Товары
是Items
; Непонятно
,Unknown
; Книги
,Books
; Тетради
,Notebooks
; Карандашы
,Pencils
和Всё
是All
。我仅注意到这一点,因为讲浪漫语言的人往往会混淆其他浪漫语言,而且我认为斯拉夫语言在西方的代表性不足(我有波兰传统)。我还认为那3
应该是一个4
。
西班牙在使用外语方面存在传统问题。40岁以下的西班牙人应该在学校学习英语,但是一个明显的事实是,几乎所有地方的英语水平都接近于零。
因此,基本上有两种类型的软件环境:应该与国际组织共享的代码(开源项目,外国跨国公司的西班牙办事处,在国外销售的供应商)和在本地销售的代码。前者当然是用英语写的,而后者通常是用西班牙语写的,包括变量名和文档。根据需要,配合到7位ASCII变量单词失去口音和波浪线(dirección
- > direccion
)和英国的比特可被用于当它们代表一个标准语言特性(getDireccion
)或概念没有普遍接受的翻译(abrirSocket
)。
当您删除波浪号时,西班牙语的年份(año)便变成了肛门。我在编写时没有任何问题,ano
但是大多数其他程序员不惜一切代价避免使用它,并产生各种有趣的替代方法,例如anno
或anyo
:)
一些样本:
/**
* 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, "$1" + separador_miles + "$2");
}
}
return numero;
}
在法国,如果与非英语同事合作,许多人倾向于使用法语对象/方法/变量名称进行编码。但是,这实际上取决于您的环境。
经验法则是“您工作的技术人员越多/您从事的项目越多,使用英语的可能性就越大” /
在德国似乎也是如此。
我来自瑞典,我和我的同事都用英语编写代码。我认为这是一件好事,但有时很难提出与客户特定的术语和表达形式相对应的英语版本。
我用英语编写代码的原因:
我曾经使用过的几乎所有编程语言都是用英语编写的(混合语言会使我更难以阅读代码)
最受欢迎的框架和第三方扩展都是用英语编写的(再次,混合语言只会分散注意力)
命名变量和函数时,通常不允许使用瑞典语字符(åäö)
如果其他团队成员来自不同国家,我们仍然可以合作
如果我需要平台供应商的支持,如果他们能够理解我的代码,那么对他们来说帮助我就容易得多。
外包支持更容易
我来自印度的班加罗尔。程序员来自不同的州,使用不同的语言。
我们用英文编码,用英文文件,用英文注释,命名约定用英文。在办公室聊天时,英语是我们的通用语言。
我是魁北克省的一名学生,我看到很多程序员喜欢用英语编写代码。我为你报价。
让他们用英语编程,您会看到他们不懂英语。
因此,您可以找到类似以下的宝石:
//putting the conter to 0
i=0
显然,如果您不掌握目标语言,最好使用您的母语进行编码。否则,只会混淆代码。
summery
transfar
sucess
仅举几例...
我来自英格兰,我尝试用美国英语编写代码(并在Stack Overflow之类的网站上发布),因为那是编程的公认国际语言。
我想我虽然是少数。我认识的一些英国程序员即使在与使用美国英语的其他编码人员合作时也坚持使用英式拼写,并且当美国或印度同事编辑其注释以将英式语言转换为美式英语时可能会感到沮丧(不要在Ward的Wiki上尝试这样做))
我在荷兰生活和工作,但是我们编写的所有代码都是英文的。我可以想到以下一些原因使我们用英语编码:
我能想到的为什么您不会用英语编写代码的唯一原因是在域驱动的设计环境中。练习DDD包括与客户定义一种通用语言。如果您的客户要求使用非英语术语,那么在您的代码中将这些术语翻译成英语是不明智的;它违反了无处不在的语言的目的。
我从未在以色列看到过有人在代码中使用非英语名称,但是我的经验仅限于大学项目。无论如何,我个人只用英语编写代码,实际上我还用英语键入了我的所有电子邮件和作业。这主要是因为希伯来语是从右到左书写的,将英语术语合并到文本中可能会很烦人。
我来自德国,我用英语写我的类,方法和变量名,我想大多数人也这样做。但是在评论中,这取决于我与谁一起工作。
而且我必须承认,如果我看到用英语以外的其他语言编写的代码,我真的很讨厌它,因为您无法“阅读代码”。就像有人用德语和英语混合写一个句子一样。
您在编码时绝对应该使用英语的另一个原因是,API调用和特定于语言的调用始终以英语编写。那么为什么要切换语言呢?我什至会说使用英语可以帮助您思考,因为您不必切换语言。
另外,所有这些文档以及互联网上的大多数问题和解答都是英语的,因此IMO您无论如何都必须使用英语。
我认为看到的一个可怕例子是
meinObst = "Apfel;Himbeere;Traube"
meinGeteiltesObst = meinObst.split(";")
for obst in meinGeteiltesObst:
...
您绝对可以在从一种语言切换到另一种语言的for语句中看到它,这对IMO来说不是一件好事。
我来自丹麦。
代码,文档,命名,设计文档等全部以英语完成。在业余爱好者和学生项目中,我从未见过其他情况-即便如此,也很少见。
我看到的唯一开放性问题是如何处理(可能是)用户可见的字符串:
window.setHeader("????");
throw new ThisMightBeSeenByTheUserInAnErrorMessageException("????");
对于例外情况,我更喜欢使用英文信息。它看起来更好,而且无论如何您都必须处理框架中的英语异常消息。
对于GUI文本,我更加不可知。用英语编写所有内容并使用本地化解决方案翻译成丹麦语是一种更优雅的解决方案,但是对于仅由丹麦用户使用的应用程序来说,这是很多工作。
我来自意大利,但不确定您要问什么。
如果您在谈论对象的命名,是的,我们使用英语。通常,学生出于学习目的用意大利语命名其对象。但是我个人觉得很难,更喜欢使用英语,因为某些技术术语在意大利语中极为糟糕。
我是意大利人。我通常对所有内容都使用英语(*),但是当我编写Web东西时,我无法对数据库对象使用英语。必须在“程序语言”和“文档/ URL / UI /客户语言”之间转换概念会增加太多负担。此外,有时您的数据库对象的名称取自那些难以翻译或无法翻译的官僚术语。因此,我将意大利语用于数据库对象以及与此相关的任何对象。注释也用意大利语表达,因为它们引用的是相同的对象,而且听起来很尴尬(意大利语中不存在许多英语专业词汇,但是DB是一个非常完整的词典领域)。
但是,当我编写要重用的类库时,我对所有类,变量和注释都严格使用英语(也许顶级注释除外,该注释具有代码示例并且是双语的)。
(*)一个例外:我始终将虚拟变量pippo和pluto命名为“ Goofy”和“ Pluto”,而不是foo和bar。:)
是的,我们愿意。我来自乌拉圭,我们通常用英语用变量名编码。有人用西班牙语发表评论,但我觉得有点尴尬。在上一份工作中,我们被迫将西班牙语用于变量和方法,我讨厌它。
我不到十年前来美国,英语不是我的母语。即使我在学校里学会了读写英语,但直到嫁给一个不会说我语言的人,我的英语水平还是不太好。嗯,英语不是她的母语,但我们发现使用英语进行交流比尝试学习其他语言更容易。我认为编程也是如此。如果每个人都用自己的语言表达自己的想法,那么知识将变得过于分散。英语应该是强制性的吗?可能不是。大多数人不需要它。我的家人大多是农民,他们大多数人永远不需要英语就能过上有益的生活。我不会说成功的生活,因为它在世界不同地区具有不同的含义。
我不想参加一场圣战,但是编程方面的英语可能与“丑陋的美国人”程序员无关。对于说不同语言的人来说,这可能只是一种方便的协作方式。可能是任何一种语言。将来可能会用中文编写代码并发表评论。如果发生这种情况,那可能不是因为“丑陋的中文”程序员,而是因为更多国家的更多人使用中文与外界进行交流。
我来自白俄罗斯,但我总是用英语发表评论。据我所知,许多白俄罗斯程序员使用英语作为主要的编码语言。
/// <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();
}
}
我肯定很奇怪:我使用的是标记化的语言,因此即使该语言本身也可以使用您自己的母语(法语,英语,德语,西班牙语和日语)显示。这是一种起源于1980年代的RBDMS语言,称为4th Dimension。单击标志图标,查看“语言命令”翻译。
在下面,您可以看到在法语和英语设置下看到的相同代码。
我来自魁北克,是一个会讲法语的人,但是我所有的代码,注释和文档始终都是用英语完成的。但我知道有些公司在魁北克省是加强法国在代码(注释和对象/变量命名)。
我一直用英文编码。另外,我也不想这样编码:
क = 1;
कुल = 0;
जब तक क छोटा है 10 से {
कुल += क;
}
छापो कुल
कार्य खाली मुख्य ( ) अंक समय लिखें "Enter current time"
पढें समय अगर [ समय < 12 ]
लिखें "Good Morning"
वरनाअगर [ समय >= 12 और समय < 16 ]
लिखें "Good Afternoon"
वरना लिखें "Good Evening"
खत्म अगर
खत्म कार्य