我反对中文编程!

什么是中文编程?

我打开IDE,随手写了一段代码:

public class 账户服务{
  public void 转账(账户 发起账户, 账户 接收账户, int 转账金额){
    事务管理器 事务总管 = new 事务管理器();
    try{
      事务总管.开始事务();
      发起账户.扣除(转账金额);
      接收账户.增加(转账金额);
      事务总管.提交事务();
    }catch (事务异常 异常){
      事务总管.回滚事务();
    }
  }
}

大家先别嘲笑我,这可是正儿八经的Java代码,是可以编译通过,可以执行的!

如果你耐下心来,仔细看看这段代码,是不是还有点儿小可爱?

同理,你还可以用Python,JavaScript等其他语言写出类似的代码,代码中除了几个关键字(public ,class,new)之外,全部变成中文了!

如果对语言稍加改动,这些关键字也可以变成中文,完全中文编程。

上面的例子太简单,不过瘾,再看一个从Apache HttpClient“汉化”过来的代码:

可关闭的Http客户端 http客户端 = Http客户端.缺省创建();


HttpGet httpGet = new HttpGet("http://www.baidu.com/");


可关闭的Http响应 响应 = http客户端.执行(httpGet);


if(响应.获取状态行().获取状态码()==200){
    Http实体 entity = 响应.获取实体();
    字符串 响应内容 = 实体工具.转化为字符串(实体, "utf-8");
    System.out.println(响应内容);
}
响应.关闭();
http客户端.关闭();

但这是中文编程吗?

不是,我是在用Java编程。

因为它的语法、编程习惯、最佳实践都是Java。

可能有些小伙伴已经注意到了上面代码中的一些类(class)的名称。

可关闭的Http客户端 (CloseableHttpClient)

Http实体(HttpEntity)

可关闭的Http响应(CloseableHttpResponse)

HttpGet (这个我实在不知道用中文改怎么翻译了,就保留了)

这些类是怎么来的?它背后代表的含义和中文、英文、法文、德文、俄文.....有关系吗?

答案很明显:是对HTTP这个领域的概念抽象而来的,和中英法德文没有任何关系,这才是真正的编程思想。

即使你用了所谓的中文编程语言,如果没有掌握数据结构和算法,不会做设计,不会做抽象,那只能写点儿简单的程序,稍微复杂一点儿就难以应对,写出来的代码必定一锅粥。

中文也就是降低了一点点阅读代码的难度而已,编程的本质没有变化。

可能有人说,你这就不是中文编程,真正的中文编程应该是这样的:

从账户A向账户B转100元,账户A余额足的话,显示错误消息xxxx

对不起,这不叫中文编程了,这叫自然语言编程。

对于大部分程序员来说,学会一门编程语言中的关键字、语法根本不在话下,比较难的地方除了上面说的设计和抽象之外,还有就是英文的生态环境。

毕竟信息技术起源于美国,大部分软件的API接口,教程,帮助等都是英文的,中文的翻译不足、不准,这对于英文不好的同学是个挑战。

如果我们现在开始使用中文变量名、函数名、接口定义,根本无法和国外接轨,你开源一个到处是中文词汇的框架/类库,做得再好外国人也无法使用,相当于把自己封闭在一个小圈子里,和闭关锁国差不多了。

如果你用某些“中文编程语言”写点儿小脚本,完成点儿小任务,我不反对,如果真是想正规地从事软件开发这个行业,还是老老实实地学一门编程语言吧!

最后,做个小调查吧,你能忍受代码中把变量名、方法名、类名改成中文吗

(完)

最后,隆重介绍一下我的小号,“想躺平的程序员”,这个小号可比我的大号厉害多了,一定要关注啊。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值