知识库问题
「中文编程」应当具备哪些特点,实用性如何,以目前的应用现状来看其未来发展会如何?
现实需求
前不久听到一位中文编程语言忠实用户的心声:
作为一个四十多岁的初中文化的大叔来说两句,如果没有中文编程没有易语言我真的就只能到工地搬砖了,事实上我三十岁以前真的在工地做木匠。后来机缘巧合我现在在一家企业用易语言编写ERP系统,平时我都用破解版的易语言,但是我买了3个易语言的加密狗,吴涛的火山移动刚出来我第一时间就买了一个(1050元),等吴涛的火山PC版出来只要价格在1万以内我肯定还是第一时间购买。因为我真的学不会英文编程! 你们说中文编程语言没有技术含量也好,说抄袭也好,有本事你弄一个出来,不要只是嘴炮,哪怕就是把C++ C#的关键字全部汉化,只要你能弄出来我会花真金白银支持你们的(当然不能像那个文言文编程玩票性质的),我相信我这样的人还挺多,真的!!!
英文水平是编程学习和使用的一个门槛,即使国外开发者也感同身受。
英文水平国情是中文编程的潜在需求量的一个决定性因素。这份2012年的论文数据:390.16 百万人学了英文,其中 20.94% 有日常会话或者以上的水平。
这仅占 5% 的国人人口。更不用说其中只有一小部分从事了编程工作。
再看一位退休人员编程走过的弯路:
中文编程最大的阻力就是输入法切换太麻烦,全角半角不通用。拿我身边的例子来说,我爸写程序用中文。退休了有的是时间,但是依然嫌麻烦。后来用拼音,结果发现时间长了看不懂。毕竟读的都是汉字,读拼音还是不习惯。最后还是用汉字了。
随着年龄增长,只要不是每天使用,第二语言的水平相对于母语来说会下降的更快。即使现在能够靠字典勉强应付的软件人员新进从业者,也往往存在今天起的英文命名过几天连自己都看不懂的状况,更不用说在 5 年甚至 20 年之后了。人口老龄化的趋势将使得越来越多人想用不依赖英文也能轻松使用的编程工具。
英文水平的差距不仅与年龄相关,还有东西地域差距、一线城市与小城市的差距、互联网公司与实业公司的差距,总的来说越是“富”的,越能够吸引英文水平更高的信息化从业人员,反过来更加拉大了发展差距。而恰恰是这些“后进”地区和行业,是信息产业更具有发展潜力、总体量更大的领域。
历史阻力
中文编程的阻力从中国软件业进入 21 世纪开始就如影随形。因素是复杂的,但主要根源并不是技术上的,而是占据主要市场地位的英文编程语言工具力图巩固垄断地位。
结合最近(2020 年 6 月)的各种国外专业软件在国内使用受限的风波,再回头看,就更能理解国内企业为何没有在易语言之后开发出更多的中文编程工具了。编程工具的“免费”使用,与默许使用盗版专业软件虽然是不同手段,但目的是完全相同的:尽快占据市场并打消后发者自行研发的动力。
一个常见质疑是:“国内互联网领头公司资源很丰富,为何不带头开发或者使用中文编程相关工具呢?” 一个重要原因也类似:对提高市场份额无益。英语水平是头部公司的人才优势重要部分。如果带头用中文编程相关技术实现了效率提升,它们的潜在对手自然也会立刻跟上。不仅会削弱人才优势,更会面对更加有竞争力的对手。
应用现状
消除误区
「中文编程」的内涵相当宽泛。下面是几个常见误解:
- “只能在中文编程语言中使用中文编程”,“关键字不是中文就不算中文编程”。事实是市面上大多数英文编程语言都早已支持中文命名标识符,这一实践在中文编程语言在商业市场成气候之前,对于国内项目降低开发维护成本有相当裨益。即使是开源项目,也绝不应一刀切用英文命名。后面的现状分析也为此分两部分。
- “中文编程语言只需要中文语法就够了“。仔细分析软件开发过程中的英文门槛所在,很明显能看到很多语法之外的痛点。包括标准库 API 的命名和文档、警告和报错信息等等,都有中文化的需求,而且保持术语一致成系统并非易事。在这方面,易语言的开发环境是现成的参考榜样。
- “没有底层的操作系统接口等等的中文化,中文编程语言就没有意义”。不是所有编程语言都必须依赖操作系统接口,尤其是在现有编程语言生态基础上改进、改造而成的中文编程语言工具。
英文编程语言开发中使用中文命名
从 2017 年创建“中文编程”知乎专栏开始,就一直关注并实践中文命名。期间有幸结识不少同道,也亲身体验了商业公司从英文命名改用中文的动力和可行性。
到了去年(2019 年)年末,明显感觉到社区对于中文命名的态度转变。我这个至今近五千赞的回答,可见公众对中文命名实践的共鸣。
中文编程语言与相关开发工具
开头的易语言用户反馈说明,即使易语言几乎自从问世起就被百般诟病,它仍然是中文编程至今的标杆,从实用性和用户群看还没有任何一个“后浪”可以比肩。它的技术路线有很多值得借鉴的,无论是长处还是短处。
更重要的是,易用户一直在改进易语言的周边生态。这意味着易语言社区的生命力还相当强大,甚至可能出现社区维护的易语言版本。
这几年也结识了不少有志于基于其他编程语言生态创立中文编程语言的开发者,看到了在特定细分领域有所建树的中文编程开发工具。
未来可期
编程语言和软件工程的发展到了一个相对平台期。各成熟英文编程语言的特性趋同,软件工程的各种理论和实践也基本成型。越来越多提升开发效率的投入是在 IDE(集成开发环境)以及框架改进。
在此背景下,中文命名标识符带来的立竿见影的开发效率提升效果,将会是业余和商业项目在大环境严峻形势压力下尝试该技术的最大动力。特别是已经有成系统的中文行业术语的行业,在信息化时使用中文命名将会尤其有优势。而中文 API 和框架、编程语言、相关 IDE 辅助功能等等生态系统的建设,将与中文命名的实践推广互相促进。
更重要的是,这一进程将会很大程度由开发者社区主导。这意味着国内软件业从业者将能对自己最重要的生产资料有更大的掌控。
十年之后回望,相信能看到从未见过的中文编程发展历程。