Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A general question: why not use Japanese naming in the code? #238

Open
nobodxbodon opened this issue Dec 26, 2017 · 4 comments
Open

A general question: why not use Japanese naming in the code? #238

nobodxbodon opened this issue Dec 26, 2017 · 4 comments

Comments

@nobodxbodon
Copy link

Hi, excuse me for posting this question here, because it's not really an issue/bug.
First, part of me is grateful that you write code in English and make it open source so that I have the chance to learn and be able to understand more easily. Thank you! Here's one article I just wrote about studying your implementation.
Still, as I'm working on some prototypes of Chinese programming languages, it seems reasonable to use Chinese naming in the code, simply because all the potential users and collaborators of these languages will be most likely Chinese developers, and code with Chinese naming would be more readable and maintainable to us.
So out of curiosity, do you ever consider using Japanese naming, and is there any particular reason that you chose to not do that?

@kujirahand
Copy link
Owner

Hi. Thank you for your comments. I am reading your posts interestingly.
其实我的英文不太好,不好意思。可能我的中文比英文好。
It is a good idea that making Chinese Programming language. 我很期待!!

About using Japanese naming ... I like Japanese naming for variables or functions.
I used it once... I think that it is easy to read, easy to write.
But some Japanese engineers do not like it, so we did not use.
Chinese engineers觉得怎么样?

@nobodxbodon
Copy link
Author

多谢回复. 很高兴知道您会中文. 残念在下的日语读写水平很差, 就冒昧用中文了.

开源的通用中文编程语言项目很少. 比较完整而且活跃的项目至今只发现了Z语言, 但还未推广. 我自己才刚刚开始尝试, 对语言设计和实践的经验很少, 以后还请多多指教!

我从两年前开始尝试使用在业余项目的代码中使用母语命名, 现在自己发起的项目中都尽量用中文命名. 也在专栏中演示在流行框架中使用中文命名(比如VueJs, Spring Boot等等).

现在多数中国国内开发者还是难以接受中文命名, 但我相信这会是个趋势. 最近看到的Python3支持非ASC码标识符的缘由也印证了母语命名的优势早已被Python社区发现. 建立"中文编程"讨论组的一个目的也是为了聚集对中文命名和对中文编程语言有兴趣的中国开发者.

如果有兴趣的话, 我们建立一个讨论组在国际开发者中探讨母语命名如何? 这里可以看到有不少各国开发者在实践母语命名.

@kujirahand
Copy link
Owner

kujirahand commented Jan 2, 2018

你好。谢谢你回复。
我知道了中国人开发者也是比较难接受用中文命名。

我觉得很多人不喜欢用母语命名有三个原因:

  • 1: 以前很多Programming Language不能用母语字母,所以很多人觉得现在也不能。
  • 2: 汉字转换(IME)工作很麻烦。
  • 3: 他们的英文水平很不错。
  • 4: 程序设计不是写文章而是写复杂的记号,所以不用母语命名。

可能是1和2的原因很大。你觉得呢?

需要母语Programming Language

我发觉了很多人需要母语的Programming Language.
这个Nadesiko公开了已经过10年了(2003年开始开发).
Nadesiko以前也有几个日语的Programming Language.
而且很多人想用。

结论,我觉得母语的Programming Language不是为了全部的Engineer用的。
很合适以下的人:

  • 1: 教育,为了学Programming
  • 2: 写batch file/script (好像母语文章)
  • 3: 不喜欢用英文来编程 (可能是英文不太好,或者喜欢母语)

我觉得,只用母语命名是不够的。母语Programming Language一定要看起来母语文章。
不是Enginner的人,一般的日本人都看得懂这个Program做什么。

Nadesiko的Program看起来日语文章。

比如说:

「c:¥test.txt」を「d:¥test.txt」にファイルコピー # FileCopy("c:¥test.txt", "d:¥test.txt")
# structure:
#       => arg1 助詞 arg2 助詞 动词

看起来日语的文章!

建议 Chinese Programming Language

我想,汉语Programming Language也用[从][到][把]等等的话很多人觉得有用。

比如说:

从"c:¥test.txt"到"d:¥test.txt"复制文件.

怎么样? 这样的Program看起来自然的汉语吗?(不过我不知道自然不自然的中文。)

@nobodxbodon
Copy link
Author

nobodxbodon commented Jan 3, 2018

多谢详细回复. 非常同意你的见解.

个人觉得在现有语言和框架中使用中文命名, 和新的中文编程语言确实是面向不同用户的两个方向.

母语命名

在新的母语(中文)编程语言成型和成熟之前, 现有的英文编程语言和框架会仍然占有很大的市场份额. 由于母语命名可以带来的可读性提升和可维护性提高, 实践母语命名是现在就可以实施并立刻获得好处的. 个人了解到有少数商业用户和个人项目已经在实践(比如这个语言处理工具, Android app开发框架等等).

关于你列出的几个母语命名的问题:

1: 以前很多Programming Language不能用母语字母,所以很多人觉得现在也不能。

感觉确实很多开发者, 尤其是新手, 会盲从现有的一些"语言风格规范", 而那些规范往往从英语国家的规范照搬而来. 甚至像Alibaba这样的业界领头公司, 在制定Java代码规范也会明确写"禁止中文命名"("Using Chinese, Pinyin, or Pinyin-English mixed spelling in naming is strictly prohibited." )

2: 汉字转换(IME)工作很麻烦。

输入法确实是个经常被提起的问题. 在下的拙文对在代码中使用中文命名的质疑与回应的"中文输入太慢, 降低开发效率"一节中有些回应. 个人认为随着IDE的支持逐渐完善, 比如基于拼音输入(应该是当前中国最普及的输入法)实现代码补全(演示), 这个问题会慢慢缓解.

3: 他们的英文水平很不错。

的确, 对中文编程/命名持反对态度的有不少是英文水平不错的开发者. 在拙文中文编程兴起的可能途径中也提到, 大公司因为往往可以招募到更多英文水平高的开发者, 作为公司来说, 对中文编程的需求往往就没那么高了.

4: 程序设计不是写文章而是写复杂的记号,所以不用母语命名。

这个也经常被提起, 在我之前的工作中, 参与过代码的可读性审核(readability review), 从那时起, 就感觉到母语对于提升代码可读性的重要性. 最近发现Python3选择支持非ASCII码标识符的缘由之后, 我更加相信母语命名的优势了.

母语编程语言

关于母语编程语言面向的用户群体, 我非常同意. 关于教育(尤其是中小学教育), 这是个想象起来对母语编程需求很大的领域, 以前听说过易语言(一个很早开始的商业中文编程语言)在小学试用的新闻, 但可惜它已经不再更新了. 我们在这里探讨过哪些领域对母语编程有需求. 的确非IT专业也有很多有自动化需求, 比如表格处理等等.

汉语Programming Language也用[从][到][把]等等的话很多人觉得有用

非常同意! 之前就讨论过类似这样的脚本语言:

拷贝c:\压缩文件.zip 到 d:\临时目录
解压它为 解压文件.txt
读它所有行
每行如果包含"错误"输出它到d:\错误记录.txt

但接近自然语言的语法设计感觉是个比较有挑战性的领域, 毕竟现在的多数主流(英文)编程语言的语法都离自然语言很远. 而接近东方自然语言的语法设计更是没有什么先例可询. 因此很荣幸结识对母语编程语言有信念和热情的同道, 也对Nadesiko能够坚持开源十数载并且不断推陈出新非常敬佩.

PS: 最近在尝试用JavaScript借助Antlr4来实现一些很简单的LOGO语言子集, 如最近文章. 欢迎建议和批评.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants