我也是中国人, 说中国话写中文字长大,此文章的读者们也都是中国人, 日常生活中使用的语言大部分是中文。 当看到要求讨厌反感自己的母语的时候,自然会不舒服,不高兴。 进而有可能对说出这样话的人怒不可遏,群起攻之:你也是中国人, 你怎么可以说出这样数典忘祖的话来?
但很不幸, 这是一个事实。 而且对于我们搞工控行业的工程师已经更高一级的IT行业的程序员来说, 这不仅仅是事实, 而且应该是一种常识, 时刻印在你我的脑子里,一时一刻都不能放松。否则,工作中就经常会要你好看。 所以, 我觉得有必要冒天下之大不韪,把这个真相揭示给大家,使得大家在工作中少踏入陷阱, 说实话, 被自家的宝贝坑,感觉那是相当不好受的。 工作中,曾经若干次的被中文坑。 出现乱字符的情况就不说啦!请参看我以前的文章:《【万泉河】WINCC 7.2 中文版--真的中文版》 比如我有开发过几款WINCC例程软件,项目名字原本是英文的,但生成了压缩文件发给购买者的时候, 名字叫做:《WINCC完美报表之日报表月报表专用版MonthlyReport_V1.20.rar》。然后就总有心不在焉的朋友, 直接给释放到当前文件夹, 虽然项目名字没有中文字符,但路径过程中有,就会导致各种错误, WINCC运行归档数据库不成功, 数据查询没有内容等等。 很多时候实在搞不定,找我帮忙远程登陆一看,就总有中文字符在里面捣乱。令我哭笑不得。 兄弟们, 中文字符问题一定要警惕呀! WINCC软件在很早的时候就支持中文了, 开始的时候是出专门加出一个亚洲版或者中文版, 后来在初始发行版就宣布中文为支持的多语言的一种。但如何算作支持中文,普通的用户和操作者可以不知道,但作为开发者和维护职责的工程师,可必须知道。 所谓的支持中文,其实主要讲的是终的用户操作界面。使用者可以在工作中完全无缝使用中文界面,不需要或者极少需要使用英文。 这包含两个方面,一个是项目的标识信息,操作提示等, 支持中文。 这些是我们在开发项目中录入进去的。 第二个是系统的标准应用, 一些控件的对话窗口中, 出现的界面被翻译为了中文, 系统的帮助信息, 也提供中文版本。 但在仅对开发者可见的内核部分,你可千万别迷信它会完全支持中文。 首要的一点, 语法和协议不可能是中文,而其它的函数,标签名等等,有可能为了便于开发者母语习惯, 给做了中文兼容, 但你工作中仍然要小心,时刻要警醒,使用英文绝不会出问题, 但使用中文字符有的时候就不可避免会出错误。 如果图起名字方便不需要痛苦地中英、英中双向翻译 ,在打算使用中文前,先求证确认。 万一工作已经开工, 上千个变量定义完了以后再发现不能用中文, 就只有哭了。 也不仅仅WINCC和STEP7, 也不仅仅外国公司的软件。 即便是国内软件公司出的各种软硬件产品,其底层代码也是英文的, 软件工程师对中文字符带来的乱七八糟的各种问题也是一头雾水,多他们做过的测试能更多些, 但真要有问题的特殊应用,乱字符等等也一样头疼。 中文字符这种弊端是从骨子里带来的。汉字的表达形式是并行的, 试图尽量在一个字符内表达更多的信息。 结果就是导致字符的种类变态到的扩大。 表现在字库的规模, 中文一级字库和二级字库GB2312-80包含6763个汉字,但实际使用中远远不够使用。 因为经常有人名地名物名等使用生僻字,导致混乱。 所以后来有了更全的GBK和GB18030,收录的汉字达到2万多个了,但也仍然不敢拍胸脯保证完全包含了所有的汉字。一个计算机系统,只要偶然一次遇到了不能识别的汉字, 那么这个系统就有缺陷。因为背后还有个康熙字典, 四万多个字。 你**预料不到那多出来的2万多个汉字啥时候会冒出来。 这对于开发计算机系统的公司来说, 汉字字符集本身成了大的负担。 要一个微型控制系统,总共内存容量只有几十KB的情况下, 还要包容几万个汉字,在还没开始计算呢, 绝大部分的系统资源先耗光了。 曾经有人认为当下的计算机系统诞生自英美国家, 被他们先入为主注入了英语元素,才导致汉字系统不兼容,需要外挂字库, 需要外挂输入法。 拜托, 在以KB为单位的操作系统里面, 你先表达几万个汉字字符,就已经先累死啦!这与英美有什么关系呢?况且了, 这--是充分自由竞争的。 如果存在可能性, 可以另起炉灶开发中国人方便使用的操作系统编程语言, 将近20亿的华人市场呢!这里面有巨大的利润空间,还符合民族荣誉诉求。 如果有可能, 早有公司开发出来了。 还有人认为,将来计算机系统飞跃发展, 量子计算机研发成功,所有计算量和容量都成数量级的提升,系统资源不再成为短板,中文字符的困难就不再是问题了。 呵呵, 当下的个人电脑,服务器,早就从容量上解决了这个问题。 但你能指望一个单片机, 小型PLC,也使用量子计算机?幼稚! 即便退一万步, 人类愿意在小小的车库门控制, 电视遥控器上面使用量子计算机, 但中文汉字系统比英文系统实现起来麻烦,开发工程师需要使用英文编程语言来开发设计系统, 这种大框架不会改变。那么中文就**是累赘,负担。 当然啦, 和我们同样难兄难弟的还有日文,韩文,泰文各种亚洲文字国家。 大家一起哭, 不累。